HTTP狀態碼、HTTP Status Code、HTTP常见狀態碼查询

類別 說明
1xx

1xx類型的狀態碼代表請求已被接受,需要繼續處理。這類響應是臨時響應,只包含狀態行和某些可選的響應頭信息,並以空行結束。

HTTP/1.0協議規範中沒有定義任何1xx狀態碼,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应。 这些狀態碼代表的响应都是信息性的,标示客户应该采取的其他行动。

2xx

2xx類型的狀態碼代表請求已成功被服務器接收、理解、並接受。

3xx

3xx類型的狀態碼代表需要客戶端采取進一步的操作才能完成請求。 通常,這些狀態碼用來重定向,後續的請求地址(重定向目標)在本次響應的Location域中指明。

當且僅當後續的請求所使用的方法是GET或者HEAD時,用戶浏覽器才可以在沒有用戶介入的情況下自動提交所需要的後續請求。按照HTTP/1.0協議規範的建議,浏覽器不應自動訪問超過5次的重定向。

4xx

4xx類型的狀態碼代表客戶端看起來可能發生了錯誤,妨礙了服務器的處理。

5xx

5xx類型的狀態碼代表服務器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是服務器意識到以當前的軟硬件資源無法完成對請求的處理。

常见的HTTP狀態碼

狀態碼 說明
200 OK 請求已成功 請求所希望的響應頭或數據體將隨此響應返回
206 Partial Content 服務器已經成功處理了部分GET請求

类似于FlashGet或者迅雷这类的HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。

該請求必須包含Range頭信息來指示客戶端希望得到的內容範圍,並且可能包含If-Range來作爲請求條件。

響應必須包含如下的頭部域:

  • Content-Range用以指示本次響應中返回的內容的範圍;如果是Content-Type爲multipart/byteranges的多段下載,則每一multipart段中都應包含Content-Range域用以指示本段的內容範圍。假如響應中包含Content-Length,那麽它的數值必須匹配它返回的內容範圍的真實字節數。
  • Date
  • ETag和/或Content-Location,假如同樣的請求本應該返回200響應。
  • Expires, Cache-Control,和/或Vary,假如其值可能与之前相同变量的其他响应对应的值不同的话。

假如本響應請求使用了If-Range強緩存驗證,那麽本次響應不應該包含其他實體頭;假如本響應的請求使用了If-Range弱緩存驗證,那麽本次響應禁止包含其他實體頭;這避免了緩存的實體內容和更新了的實體頭信息之間的不一致。否則,本響應就應當包含所有本應該返回200響應中應當返回的所有實體頭部域。

假如ETag或Last-Modified頭部不能精確匹配的話,則客戶端緩存應禁止將206響應返回的內容與之前任何緩存過的內容組合在一起。

任何不支持Range以及Content-Range頭的緩存都禁止緩存206響應返回的內容。

301 Moved Permanently

被請求的資源已永久移動到新位置,並且將來任何對此資源的引用都應該使用本響應返回的若幹個URI之一。如果可能,擁有鏈接編輯功能的客戶端應當自動把請求的地址修改爲從服務器反饋回來的地址。除非額外指定,否則這個響應也是可緩存的。

新的永久性的URI应当在响应的Location域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超链接及简短說明。

如果這不是一個GET或者HEAD請求,因此浏覽器禁止自動進行重定向,除非得到用戶的確認,因爲請求的條件可能因此發生變化。

注意:對于某些使用HTTP/1.0協議的浏覽器,當它們發送的POST請求得到了一個301響應的話,接下來的重定向請求將會變成GET方式。

302 Found

請求的資源現在臨時從不同的URI響應請求。由于這樣的重定向是臨時的,客戶端應當繼續向原有地址發送以後的請求。只有在Cache-Control或Expires中進行了指定的情況下,這個響應才是可緩存的。

新的临时性的URI应当在响应的Location域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超链接及简短說明。

如果這不是一個GET或者HEAD請求,那麽浏覽器禁止自動進行重定向,除非得到用戶的確認,因爲請求的條件可能因此發生變化。

304 Not Modified
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout