常見的HTTP狀態(tài)碼

2020-4-2    seo達(dá)人

HTTP狀態(tài)碼

HTTP狀態(tài)碼(英語:HTTP Status Code)是用以表示網(wǎng)頁服務(wù)器超文本傳輸協(xié)議響應(yīng)狀態(tài)的3位數(shù)字代碼。它由 RFC 2616 規(guī)范定義的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 與 RFC 4918 等規(guī)范擴(kuò)展。所有狀態(tài)碼的第一個數(shù)字代表了響應(yīng)的五種狀態(tài)之一。所示的消息短語是典型的,但是可以提供任何可讀取的替代方案。 除非另有說明,狀態(tài)碼是HTTP / 1.1標(biāo)準(zhǔn)(RFC 7231)的一部分。



HTTP狀態(tài)碼的官方注冊表由互聯(lián)網(wǎng)號碼分配局(Internet Assigned Numbers Authority)維護(hù)。



微軟互聯(lián)網(wǎng)信息服務(wù) (Microsoft Internet Information Services)有時會使用額外的十進(jìn)制子代碼來獲取更多具體信息,但是這些子代碼僅出現(xiàn)在響應(yīng)有效內(nèi)容和文檔中,而不是代替實際的HTTP狀態(tài)代碼。



HTTP狀態(tài)碼分類



分類 分類描述

1 信息,服務(wù)器收到請求,需要請求者繼續(xù)執(zhí)行操作

2
成功,操作被成功接收并處理

3 重定向,需要進(jìn)一步的操作以完成請求

4
客戶端錯誤,請求包含語法錯誤或無法完成請求

5** 服務(wù)器錯誤,服務(wù)器在處理請求的過程中發(fā)生了錯誤

1xx 信息(消息)

這一類型的狀態(tài)碼,代表請求已被接受,需要繼續(xù)處理。這類響應(yīng)是臨時響應(yīng),只包含狀態(tài)行和某些可選的響應(yīng)頭信息,并以空行結(jié)束。由于 HTTP/1.0 協(xié)議中沒有定義任何 1xx 狀態(tài)碼,所以除非在某些試驗條件下,服務(wù)器禁止向此類客戶端發(fā)送 1xx 響應(yīng)。



100 Continue

繼續(xù)??蛻舳藨?yīng)當(dāng)繼續(xù)發(fā)送請求。

101 Switching Protocols

切換協(xié)議。服務(wù)器根據(jù)客戶端的請求切換協(xié)議。只能切換到更高級的協(xié)議,例如,切換到HTTP的新版本協(xié)議。



2xx 成功

這一類型的狀態(tài)碼,代表請求已成功被服務(wù)器接收、理解、并接受。



200 OK

請求成功。請求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回。出現(xiàn)此狀態(tài)碼是表示正常狀態(tài)。

201 Created

已創(chuàng)建。成功請求并創(chuàng)建了新的資源。

202 Accepted

已接受。已經(jīng)接受請求,但未處理完成。

203 Non-Authoritative Information

非授權(quán)信息。請求成功,但返回的meta信息不在原始的服務(wù)器,而是一個副本。

204 No Content

無內(nèi)容。服務(wù)器成功處理,但未返回內(nèi)容。在未更新網(wǎng)頁的情況下,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔。

205 Reset Content

重置內(nèi)容。服務(wù)器處理成功,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖??赏ㄟ^此返回碼清除瀏覽器的表單域。

206 Partial Content

部分內(nèi)容。服務(wù)器成功處理了部分GET請求,類似于 FlashGet 或者迅雷這類的 HTTP下載工具都是使用此類響應(yīng)實現(xiàn)斷點續(xù)傳或者將一個大文檔分解為多個下載段同時下載。



3xx 重定向

這類狀態(tài)碼代表需要客戶端采取進(jìn)一步的操作才能完成請求。通常,這些狀態(tài)碼用來重定向,后續(xù)的請求地址(重定向目標(biāo))在本次響應(yīng)的 Location 域中指明。

當(dāng)且僅當(dāng)后續(xù)的請求所使用的方法是 GET 或者 HEAD 時,用戶瀏覽器才可以在沒有用戶介入的情況下自動提交所需要的后續(xù)請求??蛻舳藨?yīng)當(dāng)自動監(jiān)測無限循環(huán)重定向(例如:A->A,或者A->B->C->A),因為這會導(dǎo)致服務(wù)器和客戶端大量不必要的資源消耗。按照 HTTP/1.0 版規(guī)范的建議,瀏覽器不應(yīng)自動訪問超過5次的重定向。



300 Multiple Choices

多種選擇。請求的資源可包括多個位置,相應(yīng)可返回一個資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇。

301 Moved Permanently

永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新URI。今后任何新的請求都應(yīng)使用新的URI代替。

302 Move Temporarily(Found)

臨時移動。與301類似,但資源只是臨時被移動,客戶端應(yīng)繼續(xù)使用原有URI。

303 See Other

查看其它地址。與301類似,使用GET和POST請求查看。

304 Not Modified

未修改。所請求的資源未修改,服務(wù)器返回此狀態(tài)碼時,不會返回任何資源。客戶端通常會緩存訪問過的資源,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源。

305 Use Proxy

使用代理。所請求的資源必須通過代理訪問。

306 Switch Proxy

在版的規(guī)范中,306狀態(tài)碼已經(jīng)不再被使用。它算是已經(jīng)被廢棄的HTTP狀態(tài)碼。

307 Temporary Redirect

臨時重定向。與302類似,使用GET請求重定向。



4xx 客戶端錯誤(請求錯誤)

這類的狀態(tài)碼代表了客戶端看起來可能發(fā)生了錯誤,妨礙了服務(wù)器的處理。除非響應(yīng)的是一個 HEAD 請求,否則服務(wù)器就應(yīng)該返回一個解釋當(dāng)前錯誤狀況的實體,以及這是臨時的還是永久性的狀況。這些狀態(tài)碼適用于任何請求方法。瀏覽器應(yīng)當(dāng)向用戶顯示任何包含在此類錯誤響應(yīng)中的實體內(nèi)容。

如果錯誤發(fā)生時客戶端正在傳送數(shù)據(jù),那么使用TCP的服務(wù)器實現(xiàn)應(yīng)當(dāng)仔細(xì)確保在關(guān)閉客戶端與服務(wù)器之間的連接之前,客戶端已經(jīng)收到了包含錯誤信息的數(shù)據(jù)包。如果客戶端在收到錯誤信息后繼續(xù)向服務(wù)器發(fā)送數(shù)據(jù),服務(wù)器的TCP棧將向客戶端發(fā)送一個重置數(shù)據(jù)包,以清除該客戶端所有還未識別的輸入緩沖,以免這些數(shù)據(jù)被服務(wù)器上的應(yīng)用程序讀取并干擾后者。



400 Bad Request

客戶端請求的語法錯誤,服務(wù)器無法理解。

401 Unauthorized

當(dāng)前請求需要用戶驗證。

402 Payment Required

該狀態(tài)碼是為了將來可能的需求而預(yù)留的。(保留,將來使用。)

403 Forbidden

服務(wù)器理解請求客戶端的請求,但是拒絕執(zhí)行此請求。

404 Not Found

請求失敗,請求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)。沒有信息能夠告訴用戶這個狀況到底是暫時的還是永久的。假如服務(wù)器知道情況的話,應(yīng)當(dāng)使用410狀態(tài)碼來告知舊資源因為某些內(nèi)部的配置機(jī)制問題,已經(jīng)永久的不可用,而且沒有任何可以跳轉(zhuǎn)的地址。404這個狀態(tài)碼被廣泛應(yīng)用于當(dāng)服務(wù)器不想揭示到底為何請求被拒絕或者沒有其他適合的響應(yīng)可用的情況下。出現(xiàn)這個錯誤的最有可能的原因是服務(wù)器端沒有這個頁面。

405 Method Not Allowed

客戶端請求中的方法被禁止,也就是請求行中指定的請求方法不能被用于請求相應(yīng)的資源。該響應(yīng)必須返回一個Allow 頭信息用以表示出當(dāng)前資源能夠接受的請求方法的列表。

406 Not Acceptable

服務(wù)器無法根據(jù)客戶端請求的內(nèi)容特性完成請求,也就是請求的資源的內(nèi)容特性無法滿足請求頭中的條件,因而無法生成響應(yīng)實體。

407 Proxy Authentication Required

與401響應(yīng)類似,只不過客戶端必須在代理服務(wù)器上進(jìn)行身份驗證。代理服務(wù)器必須返回一個 Proxy-Authenticate 用以進(jìn)行身份詢問??蛻舳丝梢苑祷匾粋€ Proxy-Authorization 信息頭用以驗證。參見RFC 2617。

408 Request Timeout

請求超時??蛻舳藳]有在服務(wù)器預(yù)備等待的時間內(nèi)完成一個請求的發(fā)送??蛻舳丝梢噪S時再次提交這一請求而無需進(jìn)行任何更改。

409 Conflict

由于和被請求的資源的當(dāng)前狀態(tài)之間存在沖突,請求無法完成。這個代碼只允許用在這樣的情況下才能被使用:用戶被認(rèn)為能夠解決沖突,并且會重新提交新的請求。該響應(yīng)應(yīng)當(dāng)包含足夠的信息以便用戶發(fā)現(xiàn)沖突的源頭。

沖突通常發(fā)生于對 PUT 請求的處理中。例如,在采用版本檢查的環(huán)境下,某次 PUT 提交的對特定資源的修改請求所附帶的版本信息與之前的某個(第三方)請求向沖突,那么此時服務(wù)器就應(yīng)該返回一個409錯誤,告知用戶請求無法完成。此時,響應(yīng)實體中很可能會包含兩個沖突版本之間的差異比較,以便用戶重新提交歸并以后的新版本。

410 Gone

客戶端請求的資源已經(jīng)不存在。410不同于404,如果資源以前有現(xiàn)在被永久刪除了可使用410代碼,網(wǎng)站設(shè)計人員可通過301代碼指定資源的新位置。

411 Length Required

服務(wù)器拒絕在沒有定義 Content-Length 頭的情況下接受請求。在添加了表明請求消息體長度的有效 Content-Length 頭之后,客戶端可以再次提交該請求。

412 Precondition Failed

客戶端請求信息的先決條件錯誤,也就是服務(wù)器在驗證在請求的頭字段中給出先決條件時,沒能滿足其中的一個或多個。這個狀態(tài)碼允許客戶端在獲取資源時在請求的元信息(請求頭字段數(shù)據(jù))中設(shè)置先決條件,以此避免該請求方法被應(yīng)用到其希望的內(nèi)容以外的資源上。

413 Request Entity Too Large

服務(wù)器拒絕處理當(dāng)前請求,因為該請求提交的實體數(shù)據(jù)大小超過了服務(wù)器愿意或者能夠處理的范圍。此種情況下,服務(wù)器可以關(guān)閉連接以免客戶端繼續(xù)發(fā)送此請求。

如果這個狀況是臨時的,服務(wù)器應(yīng)當(dāng)返回一個 Retry-After 的響應(yīng)頭,以告知客戶端可以在多少時間以后重新嘗試。

414 Request-URI Too Long

請求的URI過長(URI通常為網(wǎng)址),服務(wù)器無法處理。

415 Unsupported Media Type

服務(wù)器無法處理請求附帶的媒體格式,也就是對于當(dāng)前請求的方法和所請求的資源,請求中提交的實體并不是服務(wù)器中所支持的格式,因此請求被拒絕。

416 Requested Range Not Satisfiable

客戶端請求的范圍無效,也就是如果請求中包含了 Range 請求頭,并且 Range 中指定的任何數(shù)據(jù)范圍都與當(dāng)前資源的可用范圍不重合,同時請求中又沒有定義 If-Range 請求頭,那么服務(wù)器就應(yīng)當(dāng)返回416狀態(tài)碼。

417 Expectation Failed

服務(wù)器無法滿足Expect的請求頭信息,也就是在請求頭 Expect 中指定的預(yù)期內(nèi)容無法被服務(wù)器滿足,或者這個服務(wù)器是一個代理服務(wù)器,它有明顯的證據(jù)證明在當(dāng)前路由的下一個節(jié)點上,Expect 的內(nèi)容無法被滿足。



5xx 服務(wù)器錯誤

這類狀態(tài)碼代表了服務(wù)器在處理請求的過程中有錯誤或者異常狀態(tài)發(fā)生,也有可能是服務(wù)器意識到以當(dāng)前的軟硬件資源無法完成對請求的處理。除非這是一個HEAD 請求,否則服務(wù)器應(yīng)當(dāng)包含一個解釋當(dāng)前錯誤狀態(tài)以及這個狀況是臨時的還是永久的解釋信息實體。瀏覽器應(yīng)當(dāng)向用戶展示任何在當(dāng)前響應(yīng)中被包含的實體。這些狀態(tài)碼適用于任何響應(yīng)方法。



500 Internal Server Error

服務(wù)器內(nèi)部錯誤,無法完成請求。服務(wù)器遇到了一個未曾預(yù)料的狀況,導(dǎo)致了它無法完成對請求的處理。一般來說,這個問題都會在服務(wù)器端的源代碼出現(xiàn)錯誤時出現(xiàn)。

501 Not Implemented

服務(wù)器不支持當(dāng)前請求所需要的某個功能。當(dāng)服務(wù)器無法識別請求的方法,并且無法支持其對任何資源的請求。

502 Bad Gateway

作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時,從遠(yuǎn)程服務(wù)器接收到了一個無效的響應(yīng)。

503 Service Unavailable

由于臨時的服務(wù)器維護(hù)或者過載,服務(wù)器當(dāng)前無法處理請求。這個狀況是臨時的,并且將在一段時間以后恢復(fù)。如果能夠預(yù)計延遲時間,那么響應(yīng)中可以包含一個 Retry-After 頭用以標(biāo)明這個延遲時間。如果沒有給出這個 Retry-After 信息,那么客戶端應(yīng)當(dāng)以處理500響應(yīng)的方式處理它。

注意:503狀態(tài)碼的存在并不意味著服務(wù)器在過載的時候必須使用它。某些服務(wù)器只不過是希望拒絕客戶端的連接。

504 Gateway Timeout

作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時,未能及時從上游服務(wù)器(URI標(biāo)識出的服務(wù)器,例如HTTP、FTP、LDAP)或者輔助服務(wù)器(例如DNS)收到響應(yīng)。

505 HTTP Version Not Supported

服務(wù)器不支持,或者拒絕支持在請求中使用的 HTTP 版本。這暗示著服務(wù)器不能或不愿使用與客戶端相同的版本。響應(yīng)中應(yīng)當(dāng)包含一個描述了為何版本不被支持以及服務(wù)器支持哪些協(xié)議的實體。



感謝觀看!

參考資料:

https://www.runoob.com/http/http-status-codes.html

若想了解更多請參考:

HTTP狀態(tài)碼百度百科

https://blog.csdn.net/GarfieldEr007/article/details/77984065


分享本文至:

日歷

鏈接

個人資料

存檔