1. 程式人生 > >網絡知識&http協議

網絡知識&http協議

http協議 網絡 http原理

網絡七層模型中個各層 常見的協議:
技術分享圖片

常見的http協議工作於應用層

http協議的工作層:
HTTP協議通常承載於TCP協議之上,有時也承載於TLS或SSL協議層之上,這個時候,就成了我們常說的HTTPS。見下圖:
技術分享圖片

http協議的工作流:
一次HTTP操作稱為一個事務,其工作過程可分為四步:

1)首先客戶機與服務器需要建立連接。只要單擊某個超級鏈接,HTTP的工作開始。

2)建立連接後,客戶機發送一個請求給服務器,請求方式的格式為:統一資源標識符(URL)、協議版本號,後邊是MIME信息包括請求修飾符、客戶機信息和可能的內容。

3)服務器接到請求後,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,後邊是MIME信息包括服務器信息、實體信息和可能的內容。

4)客戶端接收服務器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然後客戶機與服務器斷開連接。

如果在以上過程中的某一步出現錯誤,那麽產生錯誤的信息將返回到客戶端,有顯示屏輸出。對於用戶來說,這些過程是由HTTP自己完成的,用戶只要用鼠標點擊,等待信息顯示就可以了。

TCP/IP
TCP 負責應用軟件(比如你的瀏覽器)和網絡軟件之間的通信。IP 負責計算機之間的通信。TCP 負責將數據分割並裝入 IP 包,IP 負責將包發送至接受者,傳輸過程要經IP路由器負責根據通信量、網絡中的錯誤或者其他參數來進行正確地尋址,然後在它們到達的時候重新組合它們。

一次HTTP操作整個過程詳解:

 1 ) 、地址解析,

 如用客戶端瀏覽器請求這個頁面:http://localhost.com:8080/index.htm

 從中分解出協議名、主機名、端口、對象路徑等部分,對於我們的這個地址,解析得到的結果如下:
 協議名:http
 主機名:localhost.com
 端口:8080
 對象路徑:/index.htm

  在這一步,需要域名系統DNS解析域名localhost.com,得主機的IP地址。

2)、封裝HTTP請求數據包

 把以上部分結合本機自己的信息,封裝成一個HTTP請求數據包

 3)封裝成TCP包,建立TCP連接(TCP的三次握手)

   在HTTP工作開始之前,客戶機(Web瀏覽器)首先要通過網絡與服務器建立連接,該連接是通過TCP來完成的,該協議與IP協議共同構建Internet,即著名的TCP/IP協議族,因此Internet又被稱作是TCP/IP網絡。HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層協議的連接,因此,首先要建立TCP連接,一般TCP連接的端口號是80。這裏是8080端口

 4)客戶機發送請求命令

   建立連接後,客戶機發送一個請求給服務器,請求方式的格式為:統一資源標識符(URL)、協議版本號,後邊是MIME信息包括請求修飾符、客戶機信息和可內容。

 5)服務器響應

 服務器接到請求後,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,後邊是MIME信息包括服務器信息、實體信息和可能的內容。

    實體消息是服務器向瀏覽器發送頭信息後,它會發送一個空白行來表示頭信息的發送到此為結束,接著,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據

 6)服務器關閉TCP連接

 一般情況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP連接,然後如果瀏覽器或者服務器在其頭信息加入了這行代碼

Connection:keep-alive

TCP連接在發送後將仍然保持打開狀態,於是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間,還節約了網絡帶寬。

網絡知識&http協議