1. 程式人生 > >http請求原理(一)

http請求原理(一)

雖然開啟網頁就是開始http請求,但是對於http的原理,瞭解的並不多。通過萬能的度娘找到了對應的知識,趕緊存下來做筆記

http的工作原理

客戶機與伺服器建立連線後,傳送一個請求給伺服器,請求格式為:統一資源識別符號、協議版本號。伺服器收到請求的資訊(包括請求行,請求頭,請求體)。伺服器接收到請求後,給予相應的響應資訊,格式為一個狀態行(包括響應行,響應頭,響應體)。
在internet上,http通訊通常發生在TCP/IP連線之上。預設埠是TCP的80埠。
基於HTTP協議的客戶/伺服器模式的資訊交換過程,分為四個過程:建立連線、傳送請求資訊、傳送響應資訊、關閉連線。
伺服器可能同時接受多個請求,這時就會產生多個sessoin,每個session分別處理各自的請求。
HTTP的工作過程
一次HTTP操作稱為一個事務,其工作整個過程如下:
1)、地址解析
  如用客戶端瀏覽器請求這個頁面:http://localhost.com:8080/index.htm
     從中分解出協議名、主機名、埠、物件路徑等部分,對於我們的這個地址,解析得到的結果如下:
     協議名: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連線
     一般情況下,一旦Web伺服器向瀏覽器傳送了請求資料,它就要關閉TCP連線,然後如果瀏覽器或者伺服器在其頭資訊加入了這行程式碼
    Connection:keep-alive
   TCP連線在傳送後將仍然保持開啟狀態,於是,瀏覽器可以繼續通過相同的連線傳送請求。保持連線節省了為每個請求建立新連線所需的時間,還節約了網路頻寬。

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