HTTP的工做原理

客戶機與服務器創建鏈接後,發送一個請求給服務器,請求格式爲:統一資源標識符、協議版本號。
服務器收到請求的信息(包括請求行,請求頭,請求體)。
服務器接收到請求後,給予相應的響應信息,格式爲一個狀態行(包括響應行,響應頭,響應體)。

在internet上,http通信一般發生在TCP/IP鏈接之上。缺省端口是TCP的80端口。
基於HTTP協議的客戶/服務器模式的信息交換過程,分爲四個過程:創建鏈接、發送請求信息、發送響應信息、關閉鏈接。
服務器可能同時接受多個請求,這時就會產生多個sessoin,每一個session分別處理各自的請求。
html

HTTP的工做過程瀏覽器


一次HTTP操做稱爲一個事務,其工做整個過程以下:
1)地址解析
  如用客戶端瀏覽器請求這個頁面:http://localhost.com:8080/index.html
  從中分解出協議名、主機名、端口、對象路徑等部分,對於咱們的這個地址,解析獲得的結果以下:
  協議名:http
  主機名:localhost.com
  端口:8080
  對象路徑:/index.html
在這一步,須要域名系統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鏈接(TCP的四次握手)
  通常狀況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP鏈接,而後若是瀏覽器或者服務器在其頭信息加入了這行代碼
  Connection:keep-alive
  TCP鏈接在發送後將仍然保持打開狀態,因而,瀏覽器能夠繼續經過相同的鏈接發送請求。保持鏈接節省了爲每一個請求創建新鏈接所需的時間,還節約了網絡帶寬。網絡

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

相關文章
相關標籤/搜索