一、 Http報文首部
1、HTTP報文首部
HTTP 協議的請求和響應報文中必定包含 HTTP 首部。首部內容爲客戶端和服務器分別處理請求和響應提供所需要的信息。
2、HTTP 請求報文
在請求中,HTTP 報文由方法、URI、HTTP 版本、HTTP 首部字段等部分構成。
3、HTTP 響應報文
在響應中,HTTP 報文由 HTTP 版本、狀態碼(數字和原因短語)、HTTP 首部字段 3 部分構成。
二、常見的Http狀態碼
HTTP 狀態碼負責表示客戶端 HTTP 請求的返回結果、標記服務器端的處理是否正常、通知出現的錯誤等工作。
1、類別
-
1XX(信息性狀態碼): 接收的請求正在執行
-
2XX(成功狀態碼):請求正常處理完畢
-
3XX(重定向狀態碼):需要附加操作以完成請求
-
4XX(客戶端錯誤狀態碼): 服務器無法處理請求
-
5XX(服務器錯誤狀態碼): 服務器處理請求出錯
2 常見的14種HTTP狀態碼
(1)2XX 成功
-
200
表示客戶端發送的請求已被服務器正常處理
-
204
表示服務器接收的請求已成功處理,但在返回的響應報文中不含實體的主體部分。
-
206
表示客戶端進行了範圍請求,而服務器成功執行了這部分的GET 請求。
(2)3XX 重定向
-
301
永久性重定向。表示請求的資源已被分配了新的 URI,以後應使用資源現在所指的 URI
-
302
臨時性重定向。該狀態碼錶示請求的資源已被分配了新的臨時 URI,希望用戶能使用新的臨時 URI 訪問
-
303
表示由於請求對應的資源存在着另一個 URI,應使用 GET方法定向獲取請求的資源。
-
304
表示客戶端發送附帶條件的請求時,服務器端允許請求訪問資源,但請求未滿足條件。返回304 狀態碼,不包含任何響應的主體部分,304 雖然被劃分在 3XX 類別中,但是和重定向沒有關係。
-
307
臨時重定向。該狀態碼與 302 Found 有着相同的含義。儘管 302 標準禁止 POST 變換成 GET,但實際使用時大家並不遵守。
307 會遵照瀏覽器標準,不會從 POST 變成 GET。
(3)4XX 客戶端錯誤
-
400
表示請求報文中存在語法錯誤
-
401
表示發送的請求需要有通過 HTTP 認證(BASIC 認證、DIGEST 認證)的認證信息。若之前已進行過 1 次請求,則表示用戶認證失敗
-
403
表示對請求資源的訪問被服務器拒絕了
-
404
表示服務器上無法找到請求的資源。
(4)5XX 服務器錯誤
-
500
表明服務器端在執行請求時發生了錯誤
-
501
服務器不支持請求的功能,無法完成請求 -
502
充當網關或代理的服務器,從遠端或上游服務器接收到了一個無效的請求 -
503
表明服務器暫時處於超負載或正在進行停機維護,現在無法處理請求。 -
504
充當網關或代理的服務器,未及時從遠端服務器收到響應 -
505
服務器不支持請求的HTTP協議的版本,無法完成處理
三、參考
《圖解HTTP》 [日] 上野·宣 著,於均良 譯 ,人民郵電出版社