圖解HTTP四:返回結果的 HTTP 狀態碼

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

4.1 狀態碼告知從服務器端返回的請求結果

在這裏插入圖片描述

響應的狀態碼可描述請求的處理結果

狀態碼 類別 原因短語
1XX Informational(信息性狀態碼) 接收的請求正在處理
2XX Success(成功狀態碼) 請求正常處理完畢
3XX Redirection(重定向狀態碼) 需要進行附加操作以完成請求
4XX Client Error(客戶端錯誤狀態碼) 服務器無法處理請求
5XX Server Error(服務器錯誤狀態碼) 服務器處理請求出錯

4.2 2XX 成功

2XX 的響應結果表明請求被正常處理了。

  • 200 OK:表示從客戶端發來的請求在服務器端被正常處理了。
  • 204 No Content:該狀態碼代表服務器接收的請求已成功處理,但在返回的響應報文中不含實體的主體部分。另外,也不允許返回任何實體的主體。
  • 206 Partial Content:該狀態碼錶示客戶端進行了範圍請求,而服務器成功執行了這部分的 GET 請求。響應報文中包含由 Content-Range 指定範圍的實體內容。

4.3 3XX 重定向

3XX 響應結果表明瀏覽器需要執行某些特殊的處理以正確處理請求。

  • 301 Moved Permanently:永久性重定向。該狀態碼錶示請求的資源已被分配了新的 URI,以後應使用資源現在所指的 URI。也就是說,如果已經把資源對應的 URI 保存爲書籤了,這時應該按 Location 首部字段提示的 URI 重新保存。
  • 302 Found:臨時性重定向。該狀態碼錶示請求的資源已被分配了新的 URI,希望用戶(本次)能使用新的 URI 訪問。
  • 303 See Other:該狀態碼錶示由於請求對應的資源存在着另一個 URI,應使用 GET 方法定向獲取請求的資源。
  • 304 Not Modified:該狀態碼錶示客戶端發送附帶條件的請求時,服務器端允許請求訪問資源,但未滿足條件的情況。 304 狀態碼返回時,不包含任何響應的主體部分。
  • 307 Temporary Redirect:臨時重定向。該狀態碼與 302 Found 有着相同的含義。儘管 302 標準禁止 POST 變換成 GET,但實際使用時大家並不遵守。

4.4 4XX 客戶端錯誤

4XX 的響應結果表明客戶端是發生錯誤的原因所在。

  • 400 Bad Request:該狀態碼錶示請求報文中存在語法錯誤。當錯誤發生時,需修改請求的內容後再次發送請求。另外,瀏覽器會像 200 OK 一樣對待該狀態碼。
  • 401 Unauthorized:該狀態碼錶示發送的請求需要有通過 HTTP 認證(BASIC 認證、 DIGEST 認證)的認證信息。另外若之前已進行過 1 次請求,則表示用 戶認證失敗。
  • 403 Forbidden:該狀態碼錶明對請求資源的訪問被服務器拒絕了。服務器端沒有必要給出拒絕的詳細理由,但如果想作說明的話,可以在實體的主體部分對原因進行描述,這樣就能讓用戶看到了。
  • 4.4.4 404 Not Found:該狀態碼錶明服務器上無法找到請求的資源。除此之外,也可以在服務器端拒絕請求且不想說明理由時使用。

4.5 5XX 服務器錯誤

4.5 5XX 服務器錯誤

  • 500 Internal Server Error:該狀態碼錶明服務器端在執行請求時發生了錯誤。也有可能是 Web 應用存在的 bug 或某些臨時的故障。
  • 503 Service Unavailable:該狀態碼錶明服務器暫時處於超負載或正在進行停機維護,現在無法處理請求。如果事先得知解除以上狀況需要的時間,最好寫入 RetryAfter 首部字段再返回給客戶端。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章