常用的HTTP狀態碼

程式丸發表於2019-01-08

2XX:響應成功

  • 200:請求成功
  • 202:伺服器已接受請求,但尚未處理。請求可能處理也可能不處理.e.g:接到產品需求的程式設計師,可能實現,也可能不實現.
  • 206:伺服器已經成功處理了部分請求,用於斷點續傳的場景,例如迅雷等下載工具.請求頭中必須包含Range頭資訊來標識需要的內容範圍.響應必須包含Content-Range域以指示內容範圍.

3XX:重定向

  • 301:瀏覽器在拿到伺服器返回的這個狀態碼後會自動跳轉到一個新的URL地址,使用者看到的效果就是他輸入的地址A瞬間變成了另一個地址B.意味著舊的地址A的資源已經永久被移除.
  • 302:瀏覽器在拿到伺服器返回的這個狀態碼後會自動跳轉到一個新的URL地址,使用者看到的效果就是他輸入的地址A瞬間變成了另一個地址B.表示舊的地址A的資源還在,只是臨時從舊地址跳轉到新地址.新請求地址在 header 頭中的 Location 標示.
  • 303:303和302狀態碼有著相同的功能,但是303明確表示客戶端應當採用get方法再次獲取資源,請求地址在 header 頭中的 Location 標示.
  • 304:重定向
  • 307:要求瀏覽器繼續向 header 頭中Location的地址POST提交,可以被瀏覽器快取.與303的區別是303的重定向必須使用get請求再次獲取,307使用post獲取.

4XX:客戶端請求錯誤

  • 400:1.語義有誤,當前請求無法被伺服器理解 2.請求引數有誤
  • 401:請求要求身份驗證,對於需要登入的網頁,伺服器可能返回此響應.
  • 403:forbidden許可權不足
  • 404:請求失敗,請求所希望得到的資源未在伺服器上發現.
  • 405:請求行中指定的請求方法不能被用於請求相應的資源.e.g:伺服器指定的是post請求,瀏覽器發出的為get請求.
  • 406:指定的資源已經找到,但它在 Content-Type 中定義的型別和客戶端在 Accept 頭中所指定的型別不相容
  • 410:所請求的文件已經不再可用,而且伺服器不知道應該重定向到哪一個地址.表示文件已經永久的離開了指定的位置.
  • 416:伺服器不能滿足客戶在請求中指定的Range頭,Range頭資訊參照狀態碼206.e.g:伺服器上某資源大小為20 MB,客戶端請求中制定的Range範圍為30-40 MB.

5XX:伺服器端錯誤

  • 500:伺服器錯誤,無法完成客戶端的請求.(找bug吧 :-
  • 502:作為閘道器或者代理工作的伺服器嘗試執行請求時,從上游伺服器接收到無效的響應. e.g: Nginx 作為閘道器,負載均衡分發時,上游WEB伺服器無響應.
  • 503:伺服器由於維護或者負載過重未能應答.例如,Servlet 可能在資料庫連線池已滿的情況下返回503.伺服器返回503時可以提供一個Retry-After頭,用來表明延遲時間.

相關文章