常見的HTTP響應狀態碼解析


概要

狀態碼的職責是當客戶端向服務器端發送請求時,描述返回的請求結果。借助於狀態碼,瀏覽器(或者說用戶)可以知道服務器是正常的處理了請求,還是出現了錯誤。

狀態碼以3位數字和原因短語組成,例如 200 OK 。

數字的第一位指定了響應類型,后兩位無分類。響應類別一共有5種:

  • 1XX Informational(信息性狀態碼)
  • 2XX Success(成功狀態碼)
  • 3XX Redirection(重定向狀態碼)
  • 4XX Client Error(客戶端錯誤狀態碼)
  • 5XX Server Error(服務器錯誤狀態碼)

HTTP響應狀態碼有很多,但是實際經常使用的大概只有14個。

2XX Success
  • 200 OK 表示從客戶端發來的請求在服務器端被正常處理了。

  • 204 No Content 該狀態碼表示服務器接收的請求已成功處理,但在返回的響應報文中不含實體的主體部分。比如,當從瀏覽器發出請求處理后,返回204響應,那么瀏覽器顯示的頁面不發生更新。

  • 206 Partial Content 該狀態碼表示客戶端進行了范圍請求,而服務器成功執行了這部分的GET請求。

3XX Redirection
  • 301 Moved Permanently 永久性重定向。該狀態碼表示請求的資源已經被分配了新的URI,以后應使用資源現在所指的URI。 像下方給出的請求URI,當指定的資源路徑的最后忘記添加斜杠"/",就會產生301狀態碼
http://example.com/sample
  • 302 Found 臨時性重定向。該狀態碼表示請求的資源已被分配了新的URI,希望用戶(本次)能使用新的URI訪問。

  • 303 See Other 該狀態碼表示由於請求對應的資源存在另外一個URI,應使用GET方法定向獲取請求的資源。 303狀態碼和302狀態碼有着相同的功能,但303狀態碼明確表明客戶端應當采用GET方法獲取資源。 當301,302,303響應狀態碼返回時,幾乎所有的瀏覽器都會把POST改成GET,並刪除請求報文的主體,之后請求會自動再次發送。 301,302標准是禁止將POST方法改變成GET方法的,但實際上使用時大家都會這么做。

  • 304 Not Modified 該狀態碼表示客戶端發送附帶條件的請求時,服務器端允許請求訪問資源,但未滿足條件的情況。304狀態碼返回時,不包含任何響應的主體部分。304雖然被划分在3XX類別中,但是和重定向沒有關系。

  • 307 Temporary Redirect 臨時重定向。該狀態碼與302 Found有着相同的含義。307會遵照瀏覽器標准,不會從POST變成GET。

4XX Client Error
  • 400 Bad Request 該狀態碼表示請求報文中存在語法錯誤。當錯誤發生時,需要修改請求的內容后再次放松請求。

  • 401 Unauthorized 該狀態碼表示發送的請求需要有通過HTTP認證的認證信息,另外若之前已進行過1此請求,則表示用戶認證失敗。

  • 403 Forbidden 該狀態碼表明對請求資源的訪問被服務器拒絕了。

  • 404 Not Found 該狀態碼表明服務器上無法找到請求的資源。除此之外,也可以在服務器端拒絕請求且不想說明理由時使用。

5XX Server Error
  • 500 Internal Server Error 該狀態碼表明服務器端在執行請求時發生了錯誤。

  • 503 Service Unavailable 該狀態碼表明服務器暫時處於超負載或正在進行停機維護,現在無法處理請求。

寫在最后

狀態碼可能和實際發生的狀況不一致。比如Web應用程序內部發生了錯誤,狀態碼依然返回200 OK。

 

 

如果您覺得閱讀本文對您有幫助,歡迎轉載本文,但是轉載文章之后必須在文章頁面明顯位置保留此段聲明,否則保留追究法律責任的權利。

作  者:blog.jpdou.top

原文鏈接:http://blog.jpdou.top/http-status-code/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM