1. 程式人生 > >4、http協議詳解

4、http協議詳解

server u 提供服務 found bad 詳解 trace 分享 head 流程

1、web 交互的基本流程

技術分享圖片

客戶端根據用戶輸入的地址信息請求服務器,服務器在接收到用戶的請求後進行處理,然後將處理結果響應給客戶端,客戶端將響應結果展示給用戶。

專業術語:

請求:客戶端根據用戶地址信息將數據發送給服務器的過程

響應:服務器將請求的處理結果發送給瀏覽器的過程

問題:

客戶端也就是瀏覽器的版本是有很多的,服務器的版本也是有很多的,如何實現不同版本的瀏覽器和不同版本的服務器之間的數據交互呢?

解決:

規範瀏覽器和服務器的數據交互的格式。

實現:

HTTP 協議

2、HTTP 的概念和介紹

概念:

超文本傳輸協議(Hyper Text Transfer Protocol)

作用:

規範了瀏覽器和服務器的數據交互

特點:

1、簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由於HTTP 協議簡單,使得HTTP 服務器的程序規模小,因而通信速度很快

2、靈活:HTTP 允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type 加以標記。

3、無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。采用這種方式可以節省傳輸時間。HTTP1.1 版本後支持可持續連接。

4、無狀態:HTTP 協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

5、支持B/S 及C/S 模式。

3、HTTP 的交互流程

HTTP 的交互流程一般分為四個步驟(一次完整的請求):

步驟一:客戶端和服務器端建立連接

步驟二:客戶端發送請求數據到服務器端(HTTP 協議)

步驟三:服務器端接收到請求後,進行處理,然後將處理結果響應客戶端(HTTP 協議)

步驟四:關閉連接客戶端和服務器端的連接(HTTP1.1 後不會立即關閉)

4、HTTP 協議之請求格式

請求格式的結構:

請求頭:請求方式、請求的地址和HTTP 協議版本

請求行:消息報頭,一般用來說明客戶端要使用的一些附加信息

空行: 位於請求行和請求數據之間,空行是必須的。

請求數據:非必須。

技術分享圖片

註意: 一張網頁的內容是極其豐富的,瀏覽器會遵循HTTP 請求的格式將有效數據發送給服務器。

示例(get 請求方式):

技術分享圖片

示例(post 請求方式):

技術分享圖片

5、HTTP 協議之請求方式

根據HTTP 標準,HTTP 請求可以使用多種請求方法。

HTTP1.0 定義了三種請求方法: GET, POST 和HEAD 方法。

HTTP1.1 新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和CONNECT 方法。

技術分享圖片

get 和post 請求方式的區別:

get請求方式:

請求數據會以?的形式隔開拼接在請求頭中,不安全,沒有請求實體部分。HTTP 協議雖然沒有規定請求數據的大小,但是瀏覽器對URL 的長度是有限制的,所以get 請求不能攜帶大量的數據。

post 請求方式:

請求數據在請求實體中進行發送,在URL 中看不到具體的請求數據,安全。適合數據量大的數據發送。

6、HTTP 協議之響應

響應格式的結構:

響應行(狀態行):HTTP 版本、狀態碼、狀態消息

響應頭:消息報頭,客戶端使用的附加信息

空行:響應頭和響應實體之間的,必須的。

響應實體:正文,服務器返回給瀏覽器的信息

示例:

技術分享圖片

HTTP 常見響應狀態碼含義:

HTTP 狀態碼由三個十進制數字組成,第一個十進制數字定義了狀態碼的類型,後兩個數字沒有分類的作用。HTTP 狀態碼共分為5 種類型:

技術分享圖片

常見狀態碼:

200 OK //客戶端請求成功

400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解

401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate 報頭域一起使用

403 Forbidden //服務器收到請求,但是拒絕提供服務

404 Not Found //請求資源不存在,eg:輸入了錯誤的URL

500 Internal Server Error //服務器發生不可預期的錯誤

503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間後可能恢復正常

4、http協議詳解