1. 程式人生 > >圖解HTTP之返回結果的HTTP狀態(四)

圖解HTTP之返回結果的HTTP狀態(四)

HTTP狀態碼負責表示客戶端HTTP請求的返回結果、標記伺服器端的處理是否正常、通知出現的錯誤等工作。

狀態碼的職責是當客戶端向伺服器端傳送請求時,描述返回的請求結果。藉助狀態碼,使用者可以知道伺服器端是正常處理了請求,還是出現了錯誤。

僅記錄在 RFC2616 上的 HTTP 狀態碼就達 40 種,若再加上WebDAV(Web-based Distributed Authoring and Versioning,基於全球資訊網的分散式創作和版本控制)(RFC4918、5842) 和附加 HTTP 狀態碼(RFC6585)等擴充套件,數量就達 60 餘種。別看種類繁多,實際上經常使用的大概只有 14 種。

2XX成功 響應結果表明請求被正常處理

  • 200 OK 根據請求方法有正常的返回資源

  • 204 No Content 請求處理成功,但無資源返回

  • 206 Partial Content 對範圍請求的正確返回資源

3XX重定向 瀏覽器需要執行某些特殊的處理以正確處理請求

  • 301 Moved Permanently 永久性重定向 URI更新,以後應使用更新後的URI

  • 302 Found 臨時性重定向 URI更新,本次使用更新的URI

  • 303 See Other 請求對應的資源存在著另一個 URI,應使用 GET方法定向獲取請求的資源

當301、302、303響應狀態碼返回時,幾乎所有瀏覽器會把POST方法改為GET,並刪除請求報文內的主體,之後請求會自動再次傳送。

  • 304 Not Modified 資源已找到,但未符合條件請求,不包含任何響應的主體部分。距離上次,未修改用快取。

  • 307 Temporary Redirect 臨時重定向 該狀態碼與 302 Found 有著相同的含義,但不會從 POST 變成 GET

4XX客戶端發生錯誤

  • 400 Bad Request 請求報文中存在語法錯誤

  • 401 Unauthorized 需要有通過HTTP認證

  • 403 Forbidden不允許訪問那個資源

  • 404 Not Found 伺服器上沒有請求的資源,也可以在伺服器端拒絕請求且不想說明理由時使用

5XX伺服器錯誤

  • 500 Internal Server Error 內部資源出故障

  • 503 Service Unavailable 伺服器無法處理請求,超負載/停機中