1. 程式人生 > 其它 >《圖解HTTP》【4】HTTP狀態碼

《圖解HTTP》【4】HTTP狀態碼

1. 客戶端傳送請求給伺服器端,伺服器端響應內容給客戶端,而狀態碼用以描述伺服器端響應是否正常。

2. 狀態碼分類:

1xx:資訊性狀態碼    接收的請求正在處理

2xx:成功狀態碼     請求正常處理完畢

3xx:重定向狀態碼    需要附加操作以完成請求

4xx:客戶端錯誤狀態碼   伺服器無法處理請求

5xx:伺服器錯誤狀態碼   伺服器處理請求出錯

3. 常用的狀態碼:

【1】2xx類別:

(1)200 OK 表示請求正常處理,正常響應

(2)204 No Content 請求資源成功,但不返回任何資源,一般在只需要客戶端向伺服器傳送資訊,伺服器端不需要響應資源時使用.

(3)206 Partial Content 範圍請求成功,客戶端進行範圍請求,伺服器成功響應,需要使用 Range 欄位.

【2】3xx類別:

(1)301 Moved Permanently 永久性重定向:表示當前請求的資源已經不存在,被分配到了新的 URI,會通過返回的響應頭部 Location 地址值,自動跳轉到新的 URI.

(2)302 Found 臨時性重定向:規定如果使用者使用 POST 請求,返回 302,禁止瀏覽器將 POST 請求轉換為 GET 請求,再次訪問返回的響應頭部 Location 的地址值。303 和 307 是對 302 的規範細化,因為雖然 302 禁止那麼做,但多數瀏覽器實際上還是會將 POST 請求變為 GET 請求,去訪問返回的響應頭部 Location 的地址值。

(3)303 See Other 臨時性重定向:302 規定了不允許將使用者的請求方法變更,但多數瀏覽器都無視了這個規定,因此推出了 303 和 307,對 302 做規範化,303 實際上和 302 對請求的處理時一樣的,使用者使用 POST 請求,返回 303 將使用者的請求方法變更為 GET 請求後,重新請求響應頭部的 Location 地址值.

(4)307 Temporary Redirect 臨時性重定向:307 與 303 相反,它禁止將使用者 POST 請求方法變更為 GET,去再次請求返回的響應頭部 Location 的地址值,而是使用原來的 POST 方法。

(5)304 Not Modified :表示使用者傳送了帶有條件的請求,但是伺服器未滿足條件,雖然被劃分在3xx類別,但和重定向沒什麼關係。附帶條件的請求指的是,使用者在 GET 請求時 ,攜帶頭部欄位 If-Match,If-Modified-Since 等等【涉及瀏覽器快取部分】

【3】4xx類別:

(1)400 Bad Request 請求錯誤,表示請求報文存在語法錯誤,需要修改。

(2)401 Unauthorized 表示使用者請求未經授權,需要通過 HTTP 認證,返回 401 響應的頭部有一個 WWW-Authenticate 欄位用來質詢使用者資訊,初次接收到 401 響應會彈出一個對話方塊用以認證,如果二次收到 401 響應,表示認證失敗。

(3)403 Forbidden 表示禁止使用者請求此資源.

(4)404 Not Found 表示伺服器不存在要請求的資源.

【4】5xx類別:

(1)500 Internal Server Error 表示伺服器端在執行請求時發生錯誤.

(2)503 Service Unavailable 表示伺服器崩潰,超負荷運作,或者在進行停機維護.