服務器返回的 響應報文 中第一行為狀態行,包含了狀態碼以及原因短語,用來告知客戶端請求的結果。
狀態碼 | 類別 | 原因短語 |
---|---|---|
1XX | Informational(信息性狀態碼) | 接收的請求正在處理 |
2XX | Success(成功狀態碼) | 請求正常處理完畢 |
3XX | Redirection(重定向狀態碼) | 需要進行附加操作以完成請求 |
4XX | Client Error(客戶端錯誤狀態碼) | 服務器無法處理請求 |
5XX | Server Error(服務器錯誤狀態碼) | 服務器處理請求出錯 |
1XX 信息
- 100 Continue :表明到目前為止都很正常,客戶端可以繼續發送請求或者忽略這個響應。
2XX 成功
-
200 OK
-
204 No Content :請求已經成功處理,但是返回的響應報文不包含實體的主體部分。一般在只需要從客戶端往服務器發送信息,而不需要返回數據時使用。
-
206 Partial Content :表示客戶端進行了范圍請求。響應報文包含由 Content-Range 指定范圍的實體內容。
3XX 重定向
-
301 Moved Permanently :永久性重定向
-
302 Found :臨時性重定向
-
303 See Other :和 302 有着相同的功能,但是 303 明確要求客戶端應該采用 GET 方法獲取資源。
-
注:雖然 HTTP 協議規定 301、302 狀態下重定向時不允許把 POST 方法改成 GET 方法,但是大多數瀏覽器都會在 301、302 和 303 狀態下的重定向把 POST 方法改成 GET 方法。
-
304 Not Modified :如果請求報文首部包含一些條件,例如:If-Match,If-ModifiedSince,If-None-Match,If-Range,If-Unmodified-Since,如果不滿足條件,則服務器會返回 304 狀態碼。
(緩存的狀態碼,如果If-Match,If-ModifiedSince,If-None-Match,If-Range,If-Unmodified-Since的標識符改變了,代表是不緩存,沒改變代表緩存,緩存相關文章:https://segmentfault.com/a/1190000010690320) -
307 Temporary Redirect :臨時重定向,與 302 的含義類似,但是 307 要求瀏覽器不會把重定向請求的 POST 方法改成 GET 方法。
4XX 客戶端錯誤
-
400 Bad Request :請求報文中存在語法錯誤。
-
401 Unauthorized :該狀態碼表示發送的請求需要有認證信息(BASIC 認證、DIGEST 認證)。如果之前已進行過一次請求,則表示用戶認證失敗。(一般是未登錄才會出現)
-
403 Forbidden :請求被拒絕,服務器端沒有必要給出拒絕的詳細理由。(一般是登錄了,但是沒有權限,服務器拒絕請求,也就是被服務器端攔截器給攔截了)
-
404 Not Found:(一般是請求鏈接url拼錯了,請求路徑不對導致的)
5XX 服務器錯誤
-
500 Internal Server Error :服務器正在執行請求時發生錯誤。
-
503 Service Unavilable :服務器暫時處於超負載或正在進行停機維護,現在無法處理請求。
參考文章:https://github.com/CyC2018/Interview-Notebook/blob/master/notes/HTTP.md#web-%E5%9F%BA%E7%A1%80