網絡知識&http協議

網絡七層模型中個各層 常見的協議:
網絡知識&http協議瀏覽器

常見的http協議工做於應用層服務器

http協議的工做層:
HTTP協議一般承載於TCP協議之上,有時也承載於TLS或SSL協議層之上,這個時候,就成了咱們常說的HTTPS。見下圖:
網絡知識&http協議網絡

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

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

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

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

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

若是在以上過程當中的某一步出現錯誤,那麼產生錯誤的信息將返回到客戶端,有顯示屏輸出。對於用戶來講,這些過程是由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鏈接在發送後將仍然保持打開狀態,因而,瀏覽器能夠繼續經過相同的鏈接發送請求。保持鏈接節省了爲每一個請求創建新鏈接所需的時間,還節約了網絡帶寬。

相關文章
相關標籤/搜索