計算機網絡學習筆記

摘要

\quad 端口、IP、HTTP、URL、127.0.0.1...這些名詞幾乎每天都能聽到,可是真的讓我說出點什麼好像還真的不太知道。對於這些每天與咱們打交道的詞彙,花時間瞭解一下,仍是十分有必要的。html

1.名詞解釋

  • HTTP-(HyperText Transfer Protocol)-超文本傳輸協議
  • IP-(Interner Protocol)-網際協議
  • DNS-(Domain Name System)-網域名稱系統
  • URL-(Uniform Resource Locator)-統一資源定位符
  • HTML-(HyperText Markup language)-超文本標記語言

2.IP與端口:

2.1 IP協議與約定了兩件事情

  1. 如何定位一臺設備
  2. 如何封裝數據報文,以跟其餘設備交流

\quad 可以使用 www.ip138.com 查看本身的ip地址。
git

2.2 IP分爲內網和外網

如何獲取外網IP?

\quad 這個只能去找運營商買,而後路由器連上電信的服務器,那麼路由器就會有一個[外網IP]。可是注意,這個IP不是固定的,若是你重啓路由器,就可能會獲得一個新的IP,想要固定的IP地址,仍是得花錢。瀏覽器

如何獲取內網IP?
\quad 這個就很簡單了,路由器連上服務器以後,會在家裏建立一個內網,內網中的設備使用內網IP,IP格式通常都是192.168.xxx.xxx 好比192.168.1.1。而後路由器會給每個內網中的設備分配一個不一樣的內網IP。例如:
\quad 這個192.168.43.230就是咱們在內網中的地址,192.168.43.170就是路由器的地址。
bash

幾個特殊的IP
服務器

  1. 127.0.0.1 -表示本身
  2. localhost -經過host制定爲本身
  3. 0.0.0.0 -不表示任何設備
爲IP指定別名步驟

使用Nodepad++打開文件C:\Windows\System32\drivers\etc
修改其中的內容就好: 網絡

路由器的功能

  1. 如今的路由器有兩個IP,一個內網IP,覺得外網IP。
  2. 內網中的設備能夠相互訪問,可是不能直接訪問外網。
  3. 內網設備想要訪問外網,就必須經過路由器。
  4. 外網中的設備能夠相互訪問,可是不能訪問你的外網。
  5. 外網設備想要把內容推送到內網,也必須經過路由器。
  6. 內外網聯繫的惟一聯通點就是路由器,因此路由器又稱爲網關。
  7. 若是家裏有兩個路由器,那麼路由器之間也是隔絕的關係。

2.3 端口

一臺機器能夠提供不一樣的端口服務負載均衡

  1. 要提供HTTP服務最好使用80端口。
  2. 要提供HTTPS服務最好使用443端口。
  3. 要使用FIP服務最好使用21端口。
  4. 一共有65535個端口。
端口使用規則
  1. 0到1023號端口是留給系統用的,你只有擁有了管理員權限後,才能使用這1024個端口。
  2. 其餘端口能夠給普通用戶使用。
  3. http-server默認使用8080端口。
  4. 若是端口被佔用,那麼只能換一個端口。

使用hs -c-1 -p 1234命令在本地啓動一個端口,可使用該端口進入頁面。
如圖所示:
curl


\quad這個123.html是我桌面上新建的html文件。這時候我從新開一個git bash,再使用前面的命令,就能看到端口被佔用的報錯:
編碼

總而言之,對於端口和IP記住一句話: 端口和IP缺一不可。

3.域名、路徑、查詢參數、錨點

3.1 域名

域名就是對IP的別稱,查看百度對應的IP:url

$ ping baidu.com
正在 Ping baidu.com [220.181.38.148] 具備 32 字節的數據:
複製代碼

這個IP極可能不同,緣由在於:

  1. 一個域名能夠對應不一樣的IP,這個叫負載均衡,防止一臺機器扛不住。
  2. 一個IP能夠對應不一樣的域名,這個叫共享主機
  • 域名和IP是如何對應起來的呢?

\quad 首先當咱們在瀏覽器中輸入baidu.com而且按下回車的時候,瀏覽器會向(電信/聯通)提供的DNS服務器詢問baidu.com對應什麼IP,(電信/聯通)會回答一個IP,而後瀏覽器纔會向對應的(80/443)端口發送請求,請求的內容是是查看baidu.com的首頁。如圖所示:

\quad 也能夠手動設置DNS地址,(win10)步驟:打開網絡和Internet選項->以太網->更改適配器選項->選中本身經常使用的網絡鼠標右鍵屬性->Internet協議版本4(TCP/Ipv4)

  • 那麼爲何是80/443端口呢?
    服務器默認用80端口提供http服務,用443提供https服務。

  • www.xxxxx.com與xxxxx.com是同一個域名嘛?
    他們之間的關係是這樣的:

  1. com是頂級域名。(com是company的縮寫)
  2. xxxxx.com是二級域名。(俗稱一級域名)
  3. www.xxxxx.com是三級域名。(俗稱二級域名)
  4. 他們之間是父子關係,因此xxxxx.com與www.xxxxx.com頗有可能不是一家公司。

3.2 路徑、查詢參數、錨點

弄清楚這樣幾個問題:

  • 同一臺服務器上如何請求不一樣的頁面?
    使用不一樣的路徑:
    https://developer.mozilla.org/zh-CN/docs/Web/CSShttps://developer.mozilla.org/zh-CN/docs/Web/HTML
  • 同一個頁面如何顯示不一樣的內容?
    查詢參數能夠作到:
    https://www.baidu.com/s?wd=maohttps://www.baidu.com/s?wd=gou
  • 同一個內容如何定位到不一樣的位置?
    錨點能夠作到:
    https://developer.mozilla.org/zh-CN/docs/Web/CSS#參考書https://developer.mozilla.org/zh-CN/docs/Web/CSS#教程
    注意:
  1. 錨點看起來有中文但實際不支持中文,過程當中會被編碼成其餘字符。
  2. 因爲錨點是不會傳給服務器的,因此錨點是沒法在Network面板看到的。
  • 最終咱們能夠得出結論:
    URL=協議+域名或者IP+端口號+路徑+查詢字符串+錨點
    端口號默認80/443被省略了。

3.curl命令

  • 使用curl命令發送http請求
    例如:

curl https://www.baidu.com/命令發起http請求:


curl -v https://www.baidu.com/命令顯示細節:

\quad從響應的內容中能夠看出,這個過程是先根據url,請求DNS獲得對應的IP,而後進行TCP鏈接,鏈接成功再發起HTTP請求。相應結束後關閉TCP鏈接,實現真正的結束。

4.其餘

1.在git bash中使用ipconfig命令出現中文亂碼的狀況,如何解決:

相關文章
相關標籤/搜索