HTTP 的工作原理

HTTP簡介

HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是一個客戶端終端(用戶)和服務器端(網站)請求和應答的標準(TCP)。通過使用網頁瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個HTTP請求到服務器上指定端口(默認端口為80)。我們稱這個客戶端為用戶代理程序(user agent)。應答的服務器上存儲著一些資源,比如HTML文件和圖像。我們稱這個應答服務器為源服務器(origin server)。在用戶代理和源服務器中間可能存在多個“中間層”,比如代理服務器網關或者隧道(tunnel)。

在了解HTTP如何工作之前,我們需要先了解計算機之間的通信。

計算機之間的通信

互聯網的關鍵技術就是TCP/IP協議。兩臺計算機之間的通信是通過TCP/IP協議在因特網上進行的。實際上這是兩個協議:
TCP : Transmission Control Protocol 傳輸控制協議
IP: Internet Protocol 網際協議。

IP:計算機之間的通信
IP協議是計算機用來相互識別的通信的一種機制,每臺計算機都有一個IP.用來在internet上標識這臺計算機。 IP 負責在因特網上發送和接收數據包。通過 IP,消息(或者其他數據)被分割為小的獨立的包,并通過因特網在計算機之間傳送。IP 負責將每個包路由至它的目的地。
IP協議僅僅是允許計算機相互發消息,但它并不檢查消息是否以發送的次序到達而且沒有損壞(只檢查關鍵的頭數據)。為了提供消息檢驗功能,直接在IP協議上設計了傳輸控制協議TCP.

TCP : 應用程序之間的通信
TCP確保數據包以正確的次序到達,并且嘗試確認數據包的內容沒有改變。TCP在IP地址之上引端口(port),它允許計算機通過網絡提供各種服務。

當應用程序希望通過 TCP 與另一個應用程序通信時,它會發送一個通信請求。這個請求必須被送到一個確切的地址。在雙方“握手”之后,TCP 將在兩個應用程序之間建立一個全雙工 (full-duplex) 的通信,占用兩個計算機之間整個的通信線路。TCP 用于從應用程序到網絡的數據傳輸控制。TCP 負責在數據傳送之前將它們分割為 IP 包,然后在它們到達的時候將它們重組。

TCP/IP 就是TCP 和 IP 兩個協議在一起協同工作,有上下層次的關系。

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

基于HTTP協議的客戶/服務器模式的信息交換過程,分為四個過程:建立連接、發送請求信息、發送響應信息、關閉連接。

HTTP工作過程

一次HTTP操作稱為一個事物,整個工作過程如下:
以訪問https://www.google.co.jp/?gfe_rd=cr&ei=7pVcWfe0Guzd8Afx_JGQCg為例
1. 域名解析
從URL中解析出協議類型、主機名、端口、向服務端發送的參數
通過域名系統DNS解析域名得到IP地址。
2. 封裝HTTP請求數據包
把上面解析得到的信息結合本機信息封裝成一個HTTP請求數據包。
3. 封裝成TCP包,建立TCP
在HTTP開始工作之前,客戶端首先要與服務端建立連接,該連接是通過TCP來完成的,該協議與IP協議共同構建Internet,即TCP/IP協議族,HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之后才能,才能進行更層協議的連接,因此,首先要建立TCP連接,一般TCP連接的端口號是80。
4. 客戶端發送請求命令
連接后,客戶機發送一個請求給服務器,請求方式的格式為:URL(統一資源定位符)、協議版本號,后邊是MIME信息,包括請求修飾符、客戶端信息。
5. 服務器響應,服務器接到請求后,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,后邊是MIME信息包括服務器信息、實體信息和可能的內容。
6. 一般情況下,一旦web服務器向瀏覽器發送了請求數據,它就要關閉TCP連接,如果覽器或者服務器在其頭信息加入了Connection:keep-alive
這樣TCP連接在發送后將仍然保持打開狀態,于是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間,還節約了網絡帶寬。

服務器將響應信息傳給客戶端,響應體中的內容可能是一個html頁面,也可能是一張圖片,通過輸入流將其讀出,并寫回到顯示器上。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容