1. 程式人生 > >HTTP通訊機制解析

HTTP通訊機制解析

  • HTTP是一個應用層協議,HTTP無需操心網路通訊的具體細節,它把聯網的細節都交給了通用,可靠的因特網傳輸協議層TCP/IP

  • TCP:

    • TCP提供了

      • 無差錯的資料傳輸

      • 按序傳輸,資料總是會按照發送的順序到達

      • 未分段的資料流,可以在任意時刻以任意尺寸將資料傳送出去

    • TCP/IP隱藏了各種網路和硬體的特點和弱點,使各種型別的計算機和網路都能夠進行可靠通訊

    • 只要進行了TCP連線,客戶端和伺服器之間的報文就不會丟失,不會被破壞,也不會在接收時出現錯序

    • HTTP位於TCP的上層,HTTP使用TCP來傳輸其報文資料,與之類似,TCP則位於IP的上層 

  • HTTP網路協議棧

    • 層次從上至下依次為:HTTP應用層 —> TCP傳輸層 —> IP網路層 —> 網路特有的鏈路介面(資料鏈路層)—> 物理硬體層

  • 網路連線

    • 在HTTP客戶端向伺服器傳送報文前,需要使用網際協議地址和埠號在客戶端和伺服器之間建立一條TCP/IP連線

    • 在TCP中,你需要知道伺服器的IP地址,以及與伺服器上執行的特定軟體的TCP埠號,通過URL可以獲得HTTP伺服器的IP地址和埠號

    • 比如:http://207.200.83.29.80/index.html,這個URL就使用了機器的IP地址--207.200.83.29,埠號80

    • 又比如:http://www.baidu.com:80/index.html,這個URL沒有使用數字形式的IP地址,而是文字形式的域名,或者稱為主機名。

  • 輸入URL後的通訊過程

    1. 使用者輸入URL,比如:http://www.google.com

    2. 獲取主機名www.google.com

    3. DNS域名解析

    4. 獲取埠號80

    5. 連線到相應IP的埠80

    6. 客戶端傳送一條HTTP GET請求給伺服器

    7. 客戶端從伺服器讀取HTTP響應

    8. 關閉連線