1、HTTP簡介
HTTP(hypertext transfer protocol,超文本傳輸協議),是HTML文檔的網絡傳輸協議,該協議規定了WEB的基本運作過程,以及瀏覽器與web服務器之間的通信細節。
作用:規範了瀏覽器和服務器數據交互的格式。
HTTP協議特點:
(1)端口號:在分層網絡體系結構中,HTTP位於應用層,建立在TCP/IP協議基礎上,默認端口號爲80。
(2)HTTP協議是無連接的:Http使用了面向連接的TCP協議作爲運輸層協議,保證了數據的傳輸可靠。但是HTTP協議是無連接的,即通信雙方在交換HTTP報文之前不需要建立HTTP連接。
(3)HTTP協議是無狀態的:同一個客戶第一次訪問同一個服務器上的界面時,服務器的響應與第一次被訪問時相同。
2、HTTP通信過程
客戶端與服務端進行一次信息交換,包括以下四個部分:
- 客戶端與服務端建立TCP連接(瀏覽器輸入網址點擊回車)
- 客服端發出HTTP請求
- 服務端發出HTTP響應
- 客戶端與服務端之間關閉TCP連接(HTTP1.1後不會立即關閉)
3、HTTP報文結構
HTTP有兩類報文:請求報文和響應報文。
- 請求報文:從客戶端向服務器發送請求報文。
- 響應報文:從服務器到客戶端的回答。
報文的每個字段都爲ASCII碼,HTTP的請求報文和響應報文都是由三部分組成的,由開始行、首部行和實體主體組成。
- 開始行用於區分是請求報文還是響應報文,請求報文的開始行叫做請求行,響應報文的開始行叫做狀態行。
- 首部行:用於說明瀏覽器、服務器或報文主體的一些信息。
- 實體主體
(1)請求行格式的結構
- 請求頭:請求方式、請求的地址和HTTP協議版本。
- 請求行:消息報頭。一般用來說明客戶端要使用的一些附加信息。
- 空行:位於請求行和請求數據之間。空行是必須的。
- 請求數據:非必須。
HTTP請求可以利用HTTP標準中定義的其中一個請求方法。請求方式共有8種:GET、POST、HEAD等。GET和POST是最常用的。
請求實例:
第一行:請求方法/URI/協議版本號
最後一行:請求主體
(2)響應行格式的結構
- 響應行:HTTP版本、狀態碼、狀態消息
- 響應頭:消息報頭、客戶端使用的附加信息。
- 空行:響應頭和響應實體之間,必須添加。
- 響應實體:正文,服務器返回給瀏覽器的信息。
狀態碼:
響應實例: