1. 程式人生 > >常見HTTP請求狀態碼及其意義

常見HTTP請求狀態碼及其意義

首先得明白狀態碼的幾個大類:

狀態碼 響應類別 出現原因
1XX 資訊性狀態碼(Informational) 伺服器正在處理請求
2XX 成功狀態碼(Success) 請求已正常處理完畢
3XX 重定向狀態碼(Redirection) 需要進行額外操作以完成請求
4XX 客戶端錯誤狀態碼(Client Error) 客戶端原因導致伺服器無法處理請求
5XX 伺服器錯誤狀態碼(Server Error) 伺服器原因導致處理請求出錯

200 OK  請求已成功。響應返回的資訊取決於請求中使用的方法,例如:在響應中傳送GET對應於所請求資源的實體;HEAD對應於所請求資源的實體頭欄位資訊只存在於響應報文首部,因為它不會返回報文實體,只返回報文首部;POST返回實體; 201 Created  請求已完成,並導致建立新資源。新建立的資源可以由響應實體中返回的URI引用,具有Location頭欄位給出的資源的最特定URI。響應應該包括一個實體,其中包含資源特徵和位置的列表,使用者或使用者代理可以從中選擇最合適的資源特徵和位置。實體格式由Content-Type頭欄位中給出的媒體型別指定。原始伺服器必須在返回201狀態程式碼之前建立資源。如果無法立即執行操作,伺服器應該響應202(已接受)響應。 202 Accepted  該請求已被接受處理,但處理尚未完成。該請求最終可能會或可能不會被執行,因為在實際處理時可能不允許該請求。沒有用於從諸如此類的非同步操作重新發送狀態程式碼的工具。  202回覆是故意不承諾的。其目的是允許伺服器接受對某些其他程序的請求(可能是每天只執行一次的面向批處理的程序),而不要求使用者代理與伺服器的連線一直持續到程序完成為止。使用此響應返回的實體應該包括請求的當前狀態的指示,以及指*向狀態監視器的指標或使用者可以期望滿足請求的某些估計。 204 No Content*  表示請求已成功處理,但是沒有內容返回(就應該沒有內容返回的狀況)  也就是返回的響應報文中沒有報文實體(其實是沒有報文實體的主體部分)  瀏覽器向伺服器傳送請求後收到了204,那麼瀏覽器頁面不會發生更新  一般用在只是客戶端向伺服器傳送資訊,而伺服器不用向客戶端返回什麼資訊的情況 206 Reset Content  表示伺服器已經完成了部分GET請求(客戶端進行了範圍請求)  響應報文中包含Content-Range指定範圍的實體內容 301 永久性轉移  瀏覽器在拿到伺服器返回的這個狀態碼後會自動跳轉到一個新的URL地址,這個地址可以從響應的Location首部中獲取(使用者看到的效果就是他輸入的地址A瞬間變成了另一個地址B),舊地址A的資源已經被永久地移除了(這個資源不可訪問了),搜尋引擎在抓取新內容的同時也將舊的網址交換為重定向之後的網址 302短暫性轉移  臨時重定向,表示請求的資源臨時搬到了其他位置  表示舊地址A的資源還在(仍然可以訪問),這個重定向只是臨時地從舊地址A跳轉到地址B,搜尋引擎會抓取新的內容而儲存舊的網址。 303 See Other  表示請求資源存在另一個URI,應使用GET定向獲取請求資源  303功能與302一樣,區別只是303明確客戶端應該使用GET訪問  303 表示請求的資源路徑發生改變,使用GET方法請求新url。她與302的功能一樣,但是明確指出使用GET方法請求新url(第一次請求返回的location)。 400 Bad Request  表示請求報文存在語法錯誤或引數錯誤,伺服器不理解,伺服器不應該重複提交這個請求,需要修改請求內容後再次傳送。  原因以及解決思路: 1:前端提交資料的欄位名稱或者是欄位型別和後臺的實體類不一致,導致無法封裝;最常見的可能就是後端使用@RequestBody 接收,先仔細排查一遍,不行的話,使用@RequestParam再逐一看一下是否可以封裝進去  2:前端提交的到後臺的資料應該是json字串型別,而前端沒有將物件轉化為字串型別;這個比較簡單,使用JSON.stringify(param) 轉換成json字串

401 Unauthorized  表示傳送的請求需要有HTTP認證資訊或者是認證失敗了  返回401的響應必須包含一個適用於被請求資源的WWW-Authenticate首部以質詢使用者資訊  瀏覽器初次接受401時,會彈出認證視窗

403 Forbidden      返回403狀態碼就是,拒絕或者禁止訪問。但是,伺服器雖然拒絕或者禁止訪問,但是它已經理解了你的請求。  具體原因有以下多種:       錯誤程式碼:403.1       HTTP 403.1 禁止訪問:禁止可執行訪問 Internet 資訊服務 原因是執行許可權不夠,解決的方法是: 開啟“管理工具”的“Internet 資訊服務”,右鍵選擇“WEB站點屬性”的“主目錄”選項卡,把“執行許可”的選項從“無”改為“純指令碼”就好了。       錯誤程式碼:403.2       403.2錯誤是由於”讀取”訪問被禁止而造成的。導致此錯誤是由於沒有可用的預設網頁並且沒有對目錄啟用目錄瀏覽,或者要顯示的 HTML 網頁所駐留的目錄僅標記為”可執行”或”指令碼”許可權。       錯誤程式碼:403.3       403.3錯誤是由於”寫入”訪問被禁止而造成的,當試圖將檔案上載到目錄或在目錄中修改檔案,但該目錄不允許”寫”訪問時就會出現此種錯誤。       錯誤程式碼:403.4       403.4錯誤是由於要求SSL而造成的,您必須在要檢視的網頁的地址中使用”https”。       錯誤程式碼:403.5       403.5錯誤是由於要求使用 128 位加密演算法的 Web 瀏覽器而造成的,如果您的瀏覽器不支援128位加密演算法就會出現這個錯誤,您可以連線微軟網站進行瀏覽器升級。       錯誤程式碼:403.6       403.6錯誤是由於IP 地址被拒絕而造成的。如果伺服器中有不能訪問該站點的 IP 地址列表,並且您使用的 IP 地址在該列表中時您就會返回這條錯誤資訊。       錯誤程式碼:403.7       403.7錯誤是因為要求客戶證書,當需要訪問的資源要求瀏覽器擁有伺服器能夠識別的安全套接字層 (SSL) 客戶證書時會返回此種錯誤。 404 Not Found       表示伺服器找不到你請求的資源。 405 Method Not Allowed        請求行中指定的方法不允許由Request-URI標識的資源。響應必須包含一個Allow標頭,其中包含所請求資源的有效方法列表。 413 Request Entity Too Large  伺服器拒絕處理請求,因為請求實體大於伺服器願意或能夠處理的請求實體。伺服器可以關閉連線以防止客戶端繼續請求。  如果條件是臨時的,伺服器應該包括一個Retry-After頭欄位,以指示它是臨時的,並且在客戶端可以再次嘗試之後。 414 Request-URI Too Long  伺服器拒絕為請求提供服務,因為Request-URI比伺服器願意解釋的長。這種罕見的情況是隻可能當客戶端已經不正確地將POST請求轉換到具有長查詢資訊的GET請求中,當客戶端已陷入URI重定向“黑洞”發生(例如,一個重定向的URI指向字首它本身的字尾,或者當伺服器受到試圖利用固定長度緩衝區來讀取或操作Request-URI的某些伺服器中存在的安全漏洞的客戶端的攻擊時。 415 Unsupported Media Type  伺服器拒絕為請求提供服務,因為請求的實體採用所請求方法的請求資源不支援的格式。 500 Internal Server Error  表示伺服器執行請求的時候出錯了,可能是伺服器端的bug,但是也可能是前端的問題,比如後臺報了序列化錯誤,可能就是因為你的前端沒有設定content-type=application/json

502 Bad Gateway  伺服器在充當閘道器或代理時,在嘗試完成請求時從其訪問的上游伺服器收到無效響應。

503 Bad Gateway  由於伺服器的臨時過載或維護,伺服器當前無法處理請求。這意味著這是一個暫時的條件,經過一段時間的延遲後會得到緩解。如果已知,延遲的長度可以在Retry-After報頭中指示。如果沒有給出Retry-After,客戶端應該像處理500響應一樣處理響應。

注意:503狀態程式碼的存在並不意味著a  伺服器必須在變得過載時使用它。有些伺服器可能希望  簡單地拒絕連線。 原文:https://blog.csdn.net/pulong0748/article/details/81838086