wiki百科對(duì)http狀態(tài)碼的總結(jié)很是全面列吼,權(quán)作搬運(yùn)參考
1xx 消息
這一類型的狀態(tài)碼,代表請(qǐng)求已被接受,需要繼續(xù)處理取刃。這類響應(yīng)是臨時(shí)響應(yīng),只包含狀態(tài)行和某些可選的響應(yīng)頭信息出刷,并以空行結(jié)束璧疗。由于HTTP/1.0協(xié)議中沒(méi)有定義任何1xx狀態(tài)碼,所以除非在某些試驗(yàn)條件下馁龟,服務(wù)器禁止向此類客戶端發(fā)送1xx響應(yīng)崩侠。[4] 這些狀態(tài)碼代表的響應(yīng)都是信息性的,標(biāo)示客戶應(yīng)該采取的其他行動(dòng)坷檩。
100 Continue
服務(wù)器已經(jīng)接收到請(qǐng)求頭却音,并且客戶端應(yīng)繼續(xù)發(fā)送請(qǐng)求主體(在需要發(fā)送身體的請(qǐng)求的情況下:例如,POST請(qǐng)求)矢炼,或者如果請(qǐng)求已經(jīng)完成系瓢,忽略這個(gè)響應(yīng)。服務(wù)器必須在請(qǐng)求完成后向客戶端發(fā)送一個(gè)最終響應(yīng)句灌。要使服務(wù)器檢查請(qǐng)求的頭部夷陋,客戶端必須在其初始請(qǐng)求中發(fā)送Expect: 100-continue作為頭部欠拾,并在發(fā)送正文之前接收100 Continue狀態(tài)代碼。響應(yīng)代碼417期望失敗表示請(qǐng)求不應(yīng)繼續(xù)骗绕。
101 Switching Protocols
服務(wù)器已經(jīng)理解了客戶端的請(qǐng)求藐窄,并將通過(guò)Upgrade消息頭通知客戶端采用不同的協(xié)議來(lái)完成這個(gè)請(qǐng)求。在發(fā)送完這個(gè)響應(yīng)最后的空行后酬土,服務(wù)器將會(huì)切換到在Upgrade消息頭中定義的那些協(xié)議荆忍。
只有在切換新的協(xié)議更有好處的時(shí)候才應(yīng)該采取類似措施。例如撤缴,切換到新的HTTP版本(如HTTP/2)比舊版本更有優(yōu)勢(shì)刹枉,或者切換到一個(gè)實(shí)時(shí)且同步的協(xié)議(如WebSocket)以傳送利用此類特性的資源。
102 Processing(WebDAV腹泌;RFC 2518)
WebDAV請(qǐng)求可能包含許多涉及文件操作的子請(qǐng)求嘶卧,需要很長(zhǎng)時(shí)間才能完成請(qǐng)求尔觉。該代碼表示??服務(wù)器已經(jīng)收到并正在處理請(qǐng)求凉袱,但無(wú)響應(yīng)可用。[6]這樣可以防止客戶端超時(shí)侦铜,并假設(shè)請(qǐng)求丟失专甩。
2xx 成功
這一類型的狀態(tài)碼,代表請(qǐng)求已成功被服務(wù)器接收钉稍、理解涤躲、并接受。
200 OK
請(qǐng)求已成功贡未,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回种樱。實(shí)際的響應(yīng)將取決于所使用的請(qǐng)求方法。在GET請(qǐng)求中俊卤,響應(yīng)將包含與請(qǐng)求的資源相對(duì)應(yīng)的實(shí)體嫩挤。在POST請(qǐng)求中,響應(yīng)將包含描述或操作結(jié)果的實(shí)體消恍。
201 Created
請(qǐng)求已經(jīng)被實(shí)現(xiàn)岂昭,而且有一個(gè)新的資源已經(jīng)依據(jù)請(qǐng)求的需要而創(chuàng)建,且其URI已經(jīng)隨Location頭信息返回狠怨。假如需要的資源無(wú)法及時(shí)創(chuàng)建的話约啊,應(yīng)當(dāng)返回'202 Accepted'。
202 Accepted
服務(wù)器已接受請(qǐng)求佣赖,但尚未處理恰矩。最終該請(qǐng)求可能會(huì)也可能不會(huì)被執(zhí)行,并且可能在處理發(fā)生時(shí)被禁止憎蛤。
203 Non-Authoritative Information(自HTTP / 1.1起)
服務(wù)器是一個(gè)轉(zhuǎn)換代理服務(wù)器(transforming proxy枢里,例如網(wǎng)絡(luò)加速器),以200 OK狀態(tài)碼為起源,但回應(yīng)了原始響應(yīng)的修改版本栏豺。
204 No Content
服務(wù)器成功處理了請(qǐng)求彬碱,沒(méi)有返回任何內(nèi)容。
205 Reset Content
服務(wù)器成功處理了請(qǐng)求奥洼,但沒(méi)有返回任何內(nèi)容巷疼。與204響應(yīng)不同,此響應(yīng)要求請(qǐng)求者重置文檔視圖灵奖。
206 Partial Content(RFC 7233)
服務(wù)器已經(jīng)成功處理了部分GET請(qǐng)求嚼沿。類似于FlashGet或者迅雷這類的HTTP 下載工具都是使用此類響應(yīng)實(shí)現(xiàn)斷點(diǎn)續(xù)傳或者將一個(gè)大文檔分解為多個(gè)下載段同時(shí)下載。
207 Multi-Status(WebDAV瓷患;RFC 4918)
代表之后的消息體將是一個(gè)XML消息骡尽,并且可能依照之前子請(qǐng)求數(shù)量的不同,包含一系列獨(dú)立的響應(yīng)代碼擅编。
208 Already Reported (WebDAV攀细;RFC 5842)
DAV綁定的成員已經(jīng)在(多狀態(tài))響應(yīng)之前的部分被列舉狭园,且未被再次包含鹉戚。
226 IM Used (RFC 3229)
服務(wù)器已經(jīng)滿足了對(duì)資源的請(qǐng)求,對(duì)實(shí)體請(qǐng)求的一個(gè)或多個(gè)實(shí)體操作的結(jié)果表示令花。
3xx 重定向
這類狀態(tài)碼代表需要客戶端采取進(jìn)一步的操作才能完成請(qǐng)求锦担。通常俭识,這些狀態(tài)碼用來(lái)重定向,后續(xù)的請(qǐng)求地址(重定向目標(biāo))在本次響應(yīng)的Location域中指明洞渔。
當(dāng)且僅當(dāng)后續(xù)的請(qǐng)求所使用的方法是GET或者HEAD時(shí)套媚,用戶瀏覽器才可以在沒(méi)有用戶介入的情況下自動(dòng)提交所需要的后續(xù)請(qǐng)求〈沤罚客戶端應(yīng)當(dāng)自動(dòng)監(jiān)測(cè)無(wú)限循環(huán)重定向(例如:A→B→C→……→A或A→A)堤瘤,因?yàn)檫@會(huì)導(dǎo)致服務(wù)器和客戶端大量不必要的資源消耗。按照HTTP/1.0版規(guī)范的建議衷快,瀏覽器不應(yīng)自動(dòng)訪問(wèn)超過(guò)5次的重定向宙橱。
300 Multiple Choices
被請(qǐng)求的資源有一系列可供選擇的回饋信息,每個(gè)都有自己特定的地址和瀏覽器驅(qū)動(dòng)的商議信息蘸拔。用戶或?yàn)g覽器能夠自行選擇一個(gè)首選的地址進(jìn)行重定向师郑。
除非這是一個(gè)HEAD請(qǐng)求,否則該響應(yīng)應(yīng)當(dāng)包括一個(gè)資源特性及地址的列表的實(shí)體调窍,以便用戶或?yàn)g覽器從中選擇最合適的重定向地址宝冕。這個(gè)實(shí)體的格式由Content-Type定義的格式所決定。瀏覽器可能根據(jù)響應(yīng)的格式以及瀏覽器自身能力邓萨,自動(dòng)作出最合適的選擇地梨。當(dāng)然菊卷,RFC 2616規(guī)范并沒(méi)有規(guī)定這樣的自動(dòng)選擇該如何進(jìn)行。
如果服務(wù)器本身已經(jīng)有了首選的回饋選擇宝剖,那么在Location中應(yīng)當(dāng)指明這個(gè)回饋的URI洁闰;瀏覽器可能會(huì)將這個(gè)Location值作為自動(dòng)重定向的地址。此外万细,除非額外指定扑眉,否則這個(gè)響應(yīng)也是可緩存的。
301 Moved Permanently
被請(qǐng)求的資源已永久移動(dòng)到新位置赖钞,并且將來(lái)任何對(duì)此資源的引用都應(yīng)該使用本響應(yīng)返回的若干個(gè)URI之一腰素。如果可能,擁有鏈接編輯功能的客戶端應(yīng)當(dāng)自動(dòng)把請(qǐng)求的地址修改為從服務(wù)器反饋回來(lái)的地址雪营。除非額外指定弓千,否則這個(gè)響應(yīng)也是可緩存的。
新的永久性的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回献起。除非這是一個(gè)HEAD請(qǐng)求洋访,否則響應(yīng)的實(shí)體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡(jiǎn)短說(shuō)明。
如果這不是一個(gè)GET或者HEAD請(qǐng)求征唬,因此瀏覽器禁止自動(dòng)進(jìn)行重定向捌显,除非得到用戶的確認(rèn)茁彭,因?yàn)檎?qǐng)求的條件可能因此發(fā)生變化总寒。
注意:對(duì)于某些使用HTTP/1.0協(xié)議的瀏覽器,當(dāng)它們發(fā)送的POST請(qǐng)求得到了一個(gè)301響應(yīng)的話理肺,接下來(lái)的重定向請(qǐng)求將會(huì)變成GET方式摄闸。
302 Found
要求客戶端執(zhí)行臨時(shí)重定向(原始描述短語(yǔ)為“Moved Temporarily”)。由于這樣的重定向是臨時(shí)的妹萨,客戶端應(yīng)當(dāng)繼續(xù)向原有地址發(fā)送以后的請(qǐng)求年枕。只有在Cache-Control或Expires中進(jìn)行了指定的情況下,這個(gè)響應(yīng)才是可緩存的乎完。
新的臨時(shí)性的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回熏兄。除非這是一個(gè)HEAD請(qǐng)求,否則響應(yīng)的實(shí)體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡(jiǎn)短說(shuō)明树姨。
如果這不是一個(gè)GET或者HEAD請(qǐng)求摩桶,那么瀏覽器禁止自動(dòng)進(jìn)行重定向,除非得到用戶的確認(rèn)帽揪,因?yàn)檎?qǐng)求的條件可能因此發(fā)生變化硝清。
注意:雖然RFC 1945和RFC 2068規(guī)范不允許客戶端在重定向時(shí)改變請(qǐng)求的方法,但是很多現(xiàn)存的瀏覽器將302響應(yīng)視作為303響應(yīng)转晰,并且使用GET方式訪問(wèn)在Location中規(guī)定的URI芦拿,而無(wú)視原先請(qǐng)求的方法士飒。因此狀態(tài)碼303和307被添加了進(jìn)來(lái),用以明確服務(wù)器期待客戶端進(jìn)行何種反應(yīng)蔗崎。
303 See Other
對(duì)應(yīng)當(dāng)前請(qǐng)求的響應(yīng)可以在另一個(gè)URI上被找到酵幕,當(dāng)響應(yīng)于POST(或PUT / DELETE)接收到響應(yīng)時(shí),客戶端應(yīng)該假定服務(wù)器已經(jīng)收到數(shù)據(jù)缓苛,并且應(yīng)該使用單獨(dú)的GET消息發(fā)出重定向裙盾。[23]這個(gè)方法的存在主要是為了允許由腳本激活的POST請(qǐng)求輸出重定向到一個(gè)新的資源。這個(gè)新的URI不是原始資源的替代引用他嫡。同時(shí)番官,303響應(yīng)禁止被緩存。當(dāng)然钢属,第二個(gè)請(qǐng)求(重定向)可能被緩存徘熔。
新的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回。除非這是一個(gè)HEAD請(qǐng)求淆党,否則響應(yīng)的實(shí)體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡(jiǎn)短說(shuō)明酷师。
注意:許多HTTP/1.1版以前的瀏覽器不能正確理解303狀態(tài)。如果需要考慮與這些瀏覽器之間的互動(dòng)染乌,302狀態(tài)碼應(yīng)該可以勝任山孔,因?yàn)榇蠖鄶?shù)的瀏覽器處理302響應(yīng)時(shí)的方式恰恰就是上述規(guī)范要求客戶端處理303響應(yīng)時(shí)應(yīng)當(dāng)做的。
304 Not Modified
表示資源未被修改荷憋,因?yàn)檎?qǐng)求頭指定的版本If-Modified-Since或If-None-Match台颠。在這種情況下,由于客戶端仍然具有以前下載的副本勒庄,因此不需要重新傳輸資源串前。
305 Use Proxy
被請(qǐng)求的資源必須通過(guò)指定的代理才能被訪問(wèn)。Location域中將給出指定的代理所在的URI信息实蔽,接收者需要重復(fù)發(fā)送一個(gè)單獨(dú)的請(qǐng)求荡碾,通過(guò)這個(gè)代理才能訪問(wèn)相應(yīng)資源。只有原始服務(wù)器才能創(chuàng)建305響應(yīng)局装。許多HTTP客戶端(像是Mozilla和Internet Explorer)都沒(méi)有正確處理這種狀態(tài)代碼的響應(yīng)坛吁,主要是出于安全考慮。
注意:RFC 2068中沒(méi)有明確305響應(yīng)是為了重定向一個(gè)單獨(dú)的請(qǐng)求铐尚,而且只能被原始服務(wù)器建立拨脉。忽視這些限制可能導(dǎo)致嚴(yán)重的安全后果。
306 Switch Proxy
在最新版的規(guī)范中塑径,306狀態(tài)碼已經(jīng)不再被使用女坑。最初是指“后續(xù)請(qǐng)求應(yīng)使用指定的代理”。
307 Temporary Redirect
在這種情況下统舀,請(qǐng)求應(yīng)該與另一個(gè)URI重復(fù)匆骗,但后續(xù)的請(qǐng)求應(yīng)仍使用原始的URI劳景。 與302相反,當(dāng)重新發(fā)出原始請(qǐng)求時(shí)碉就,不允許更改請(qǐng)求方法盟广。 例如,應(yīng)該使用另一個(gè)POST請(qǐng)求來(lái)重復(fù)POST請(qǐng)求瓮钥。
308 Permanent Redirect (RFC 7538)
請(qǐng)求和所有將來(lái)的請(qǐng)求應(yīng)該使用另一個(gè)URI重復(fù)筋量。 307和308重復(fù)302和301的行為,但不允許HTTP方法更改碉熄。 例如桨武,將表單提交給永久重定向的資源可能會(huì)順利進(jìn)行。
4xx 客戶端錯(cuò)誤
這類的狀態(tài)碼代表了客戶端看起來(lái)可能發(fā)生了錯(cuò)誤锈津,妨礙了服務(wù)器的處理呀酸。除非響應(yīng)的是一個(gè)HEAD請(qǐng)求,否則服務(wù)器就應(yīng)該返回一個(gè)解釋當(dāng)前錯(cuò)誤狀況的實(shí)體琼梆,以及這是臨時(shí)的還是永久性的狀況性誉。這些狀態(tài)碼適用于任何請(qǐng)求方法。瀏覽器應(yīng)當(dāng)向用戶顯示任何包含在此類錯(cuò)誤響應(yīng)中的實(shí)體內(nèi)容茎杂。[30]
如果錯(cuò)誤發(fā)生時(shí)客戶端正在傳送數(shù)據(jù)错览,那么使用TCP的服務(wù)器實(shí)現(xiàn)應(yīng)當(dāng)仔細(xì)確保在關(guān)閉客戶端與服務(wù)器之間的連接之前,客戶端已經(jīng)收到了包含錯(cuò)誤信息的數(shù)據(jù)包煌往。如果客戶端在收到錯(cuò)誤信息后繼續(xù)向服務(wù)器發(fā)送數(shù)據(jù)倾哺,服務(wù)器的TCP棧將向客戶端發(fā)送一個(gè)重置數(shù)據(jù)包,以清除該客戶端所有還未識(shí)別的輸入緩沖携冤,以免這些數(shù)據(jù)被服務(wù)器上的應(yīng)用程序讀取并干擾后者悼粮。
400 Bad Request
由于明顯的客戶端錯(cuò)誤(例如闲勺,格式錯(cuò)誤的請(qǐng)求語(yǔ)法曾棕,太大的大小,無(wú)效的請(qǐng)求消息或欺騙性路由請(qǐng)求)菜循,服務(wù)器不能或不會(huì)處理該請(qǐng)求翘地。
401 Unauthorized(RFC 7235)
參見(jiàn):HTTP基本認(rèn)證、HTTP摘要認(rèn)證
類似于403 Forbidden癌幕,401語(yǔ)義即“未認(rèn)證”衙耕,即用戶沒(méi)有必要的憑據(jù)。該狀態(tài)碼表示當(dāng)前請(qǐng)求需要用戶驗(yàn)證勺远。該響應(yīng)必須包含一個(gè)適用于被請(qǐng)求資源的WWW-Authenticate信息頭用以詢問(wèn)用戶信息橙喘。客戶端可以重復(fù)提交一個(gè)包含恰當(dāng)?shù)腁uthorization頭信息的請(qǐng)求胶逢。如果當(dāng)前請(qǐng)求已經(jīng)包含了Authorization證書(shū)厅瞎,那么401響應(yīng)代表著服務(wù)器驗(yàn)證已經(jīng)拒絕了那些證書(shū)饰潜。如果401響應(yīng)包含了與前一個(gè)響應(yīng)相同的身份驗(yàn)證詢問(wèn),且瀏覽器已經(jīng)至少嘗試了一次驗(yàn)證和簸,那么瀏覽器應(yīng)當(dāng)向用戶展示響應(yīng)中包含的實(shí)體信息彭雾,因?yàn)檫@個(gè)實(shí)體信息中可能包含了相關(guān)診斷信息。
注意:當(dāng)網(wǎng)站(通常是網(wǎng)站域名)禁止IP地址時(shí)锁保,有些網(wǎng)站狀態(tài)碼顯示的401薯酝,表示該特定地址被拒絕訪問(wèn)網(wǎng)站。
402 Payment Required
該狀態(tài)碼是為了將來(lái)可能的需求而預(yù)留的爽柒。該狀態(tài)碼最初的意圖可能被用作某種形式的數(shù)字現(xiàn)金或在線支付方案的一部分吴菠,但幾乎沒(méi)有哪家服務(wù)商使用,而且這個(gè)狀態(tài)碼通常不被使用浩村。如果特定開(kāi)發(fā)人員已超過(guò)請(qǐng)求的每日限制橄务,Google Developers API會(huì)使用此狀態(tài)碼。
403 Forbidden
主條目:HTTP 403
服務(wù)器已經(jīng)理解請(qǐng)求穴亏,但是拒絕執(zhí)行它蜂挪。與401響應(yīng)不同的是,身份驗(yàn)證并不能提供任何幫助嗓化,而且這個(gè)請(qǐng)求也不應(yīng)該被重復(fù)提交棠涮。如果這不是一個(gè)HEAD請(qǐng)求,而且服務(wù)器希望能夠講清楚為何請(qǐng)求不能被執(zhí)行刺覆,那么就應(yīng)該在實(shí)體內(nèi)描述拒絕的原因严肪。當(dāng)然服務(wù)器也可以返回一個(gè)404響應(yīng),假如它不希望讓客戶端獲得任何信息谦屑。
404 Not Found
主條目:HTTP 404
請(qǐng)求失敗驳糯,請(qǐng)求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn),但允許用戶的后續(xù)請(qǐng)求氢橙。[35]沒(méi)有信息能夠告訴用戶這個(gè)狀況到底是暫時(shí)的還是永久的酝枢。假如服務(wù)器知道情況的話,應(yīng)當(dāng)使用410狀態(tài)碼來(lái)告知舊資源因?yàn)槟承﹥?nèi)部的配置機(jī)制問(wèn)題悍手,已經(jīng)永久的不可用帘睦,而且沒(méi)有任何可以跳轉(zhuǎn)的地址。404這個(gè)狀態(tài)碼被廣泛應(yīng)用于當(dāng)服務(wù)器不想揭示到底為何請(qǐng)求被拒絕或者沒(méi)有其他適合的響應(yīng)可用的情況下坦康。
405 Method Not Allowed
請(qǐng)求行中指定的請(qǐng)求方法不能被用于請(qǐng)求相應(yīng)的資源竣付。該響應(yīng)必須返回一個(gè)Allow頭信息用以表示出當(dāng)前資源能夠接受的請(qǐng)求方法的列表。例如滞欠,需要通過(guò)POST呈現(xiàn)數(shù)據(jù)的表單上的GET請(qǐng)求古胆,或只讀資源上的PUT請(qǐng)求。
鑒于PUT筛璧,DELETE方法會(huì)對(duì)服務(wù)器上的資源進(jìn)行寫(xiě)操作逸绎,因而絕大部分的網(wǎng)頁(yè)服務(wù)器都不支持或者在默認(rèn)配置下不允許上述請(qǐng)求方法妖滔,對(duì)于此類請(qǐng)求均會(huì)返回405錯(cuò)誤。
406 Not Acceptable
參見(jiàn):內(nèi)容協(xié)商
請(qǐng)求的資源的內(nèi)容特性無(wú)法滿足請(qǐng)求頭中的條件桶良,因而無(wú)法生成響應(yīng)實(shí)體座舍,該請(qǐng)求不可接受。[36]
除非這是一個(gè)HEAD請(qǐng)求陨帆,否則該響應(yīng)就應(yīng)當(dāng)返回一個(gè)包含可以讓用戶或者瀏覽器從中選擇最合適的實(shí)體特性以及地址列表的實(shí)體曲秉。實(shí)體的格式由Content-Type頭中定義的媒體類型決定。瀏覽器可以根據(jù)格式及自身能力自行作出最佳選擇疲牵。但是承二,規(guī)范中并沒(méi)有定義任何作出此類自動(dòng)選擇的標(biāo)準(zhǔn)。
407 Proxy Authentication Required(RFC 2617)
與401響應(yīng)類似纲爸,只不過(guò)客戶端必須在代理服務(wù)器上進(jìn)行身份驗(yàn)證亥鸠。[37]代理服務(wù)器必須返回一個(gè)Proxy-Authenticate用以進(jìn)行身份詢問(wèn)∈独玻客戶端可以返回一個(gè)Proxy-Authorization信息頭用以驗(yàn)證负蚊。
408 Request Timeout
請(qǐng)求超時(shí)。根據(jù)HTTP規(guī)范颓哮,客戶端沒(méi)有在服務(wù)器預(yù)備等待的時(shí)間內(nèi)完成一個(gè)請(qǐng)求的發(fā)送家妆,客戶端可以隨時(shí)再次提交這一請(qǐng)求而無(wú)需進(jìn)行任何更改。
409 Conflict
表示因?yàn)檎?qǐng)求存在沖突無(wú)法處理該請(qǐng)求冕茅,例如多個(gè)同步更新之間的編輯沖突伤极。
410 Gone
表示所請(qǐng)求的資源不再可用,將不再可用姨伤。當(dāng)資源被有意地刪除并且資源應(yīng)被清除時(shí)哨坪,應(yīng)該使用這個(gè)。在收到410狀態(tài)碼后乍楚,用戶應(yīng)停止再次請(qǐng)求資源当编。但大多數(shù)服務(wù)端不會(huì)使用此狀態(tài)碼,而是直接使用404狀態(tài)碼炊豪。
411 Length Required
服務(wù)器拒絕在沒(méi)有定義Content-Length頭的情況下接受請(qǐng)求凌箕。在添加了表明請(qǐng)求消息體長(zhǎng)度的有效Content-Length頭之后,客戶端可以再次提交該請(qǐng)求词渤。
412 Precondition Failed(RFC 7232)
服務(wù)器在驗(yàn)證在請(qǐng)求的頭字段中給出先決條件時(shí),沒(méi)能滿足其中的一個(gè)或多個(gè)串绩。這個(gè)狀態(tài)碼允許客戶端在獲取資源時(shí)在請(qǐng)求的元信息(請(qǐng)求頭字段數(shù)據(jù))中設(shè)置先決條件缺虐,以此避免該請(qǐng)求方法被應(yīng)用到其希望的內(nèi)容以外的資源上。
413 Request Entity Too Large(RFC 7231)
前稱“Request Entity Too Large”礁凡,表示服務(wù)器拒絕處理當(dāng)前請(qǐng)求高氮,因?yàn)樵撜?qǐng)求提交的實(shí)體數(shù)據(jù)大小超過(guò)了服務(wù)器愿意或者能夠處理的范圍慧妄。此種情況下,服務(wù)器可以關(guān)閉連接以免客戶端繼續(xù)發(fā)送此請(qǐng)求剪芍。
如果這個(gè)狀況是臨時(shí)的塞淹,服務(wù)器應(yīng)當(dāng)返回一個(gè)Retry-After的響應(yīng)頭,以告知客戶端可以在多少時(shí)間以后重新嘗試罪裹。
414 Request-URI Too Long(RFC 7231)
前稱“Request-URI Too Long”饱普,表示請(qǐng)求的URI長(zhǎng)度超過(guò)了服務(wù)器能夠解釋的長(zhǎng)度,因此服務(wù)器拒絕對(duì)該請(qǐng)求提供服務(wù)状共。通常將太多數(shù)據(jù)的結(jié)果編碼為GET請(qǐng)求的查詢字符串套耕,在這種情況下,應(yīng)將其轉(zhuǎn)換為POST請(qǐng)求峡继。這比較少見(jiàn)冯袍,通常的情況包括:
本應(yīng)使用POST方法的表單提交變成了GET方法,導(dǎo)致查詢字符串過(guò)長(zhǎng)碾牌。
重定向URI“黑洞”康愤,例如每次重定向把舊的URI作為新的URI的一部分,導(dǎo)致在若干次重定向后URI超長(zhǎng)舶吗。
客戶端正在嘗試?yán)媚承┓?wù)器中存在的安全漏洞攻擊服務(wù)器翘瓮。這類服務(wù)器使用固定長(zhǎng)度的緩沖讀取或操作請(qǐng)求的URI,當(dāng)GET后的參數(shù)超過(guò)某個(gè)數(shù)值后裤翩,可能會(huì)產(chǎn)生緩沖區(qū)溢出资盅,導(dǎo)致任意代碼被執(zhí)行。沒(méi)有此類漏洞的服務(wù)器踊赠,應(yīng)當(dāng)返回414狀態(tài)碼呵扛。
415 Unsupported Media Type
對(duì)于當(dāng)前請(qǐng)求的方法和所請(qǐng)求的資源,請(qǐng)求中提交的互聯(lián)網(wǎng)媒體類型并不是服務(wù)器中所支持的格式筐带,因此請(qǐng)求被拒絕今穿。例如,客戶端將圖像上傳格式為svg伦籍,但服務(wù)器要求圖像使用上傳格式為jpg蓝晒。
416 Requested Range Not Satisfiable(RFC 7233)
前稱“Requested Range Not Satisfiable”√唬客戶端已經(jīng)要求文件的一部分(Byte serving)芝薇,但服務(wù)器不能提供該部分。例如作儿,如果客戶端要求文件的一部分超出文件尾端洛二。
417 Expectation Failed
在請(qǐng)求頭Expect中指定的預(yù)期內(nèi)容無(wú)法被服務(wù)器滿足,或者這個(gè)服務(wù)器是一個(gè)代理服顯的證據(jù)證明在當(dāng)前路由的下一個(gè)節(jié)點(diǎn)上,Expect的內(nèi)容無(wú)法被滿足晾嘶。
418 I'm a teapot(RFC 2324)
本操作碼是在1998年作為IETF的傳統(tǒng)愚人節(jié)笑話, 在RFC 2324超文本咖啡壺控制協(xié)議'中定義的妓雾,并不需要在真實(shí)的HTTP服務(wù)器中定義。當(dāng)一個(gè)控制茶壺的HTCPCP收到BREW或POST指令要求其煮咖啡時(shí)應(yīng)當(dāng)回傳此錯(cuò)誤垒迂。這個(gè)HTTP狀態(tài)碼在某些網(wǎng)站(包括Google.com)與項(xiàng)目(如Node.js械姻、ASP.NET和Go語(yǔ)言)中用作彩蛋。
420 Enhance Your Caim
Twitter Search與Trends API在客戶端被限速的情況下返回机断。
421 Misdirected Request (RFC 7540)
該請(qǐng)求針對(duì)的是無(wú)法產(chǎn)生響應(yīng)的服務(wù)器(例如因?yàn)檫B接重用)楷拳。
422 Unprocessable Entity(WebDAV;RFC 4918 )
請(qǐng)求格式正確毫缆,但是由于含有語(yǔ)義錯(cuò)誤唯竹,無(wú)法響應(yīng)。
423 Locked(WebDAV苦丁;RFC 4918)
當(dāng)前資源被鎖定浸颓。
424 Failed Dependency(WebDAV;RFC 4918)
由于之前的某個(gè)請(qǐng)求發(fā)生的錯(cuò)誤旺拉,導(dǎo)致當(dāng)前請(qǐng)求失敗产上,例如PROPPATCH。
425 Unordered Collection
在WebDAV Advanced Collections Protocol中定義蛾狗,但Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol中并不存在晋涣。
426 Upgrade Required(RFC 2817)
客戶端應(yīng)當(dāng)切換到TLS/1.0,并在HTTP/1.1 Upgrade header中給出沉桌。
428 Precondition Required (RFC 6585)
原服務(wù)器要求該請(qǐng)求滿足一定條件谢鹊。這是為了防止“‘未更新’問(wèn)題,即客戶端讀攘羝尽(GET)一個(gè)資源的狀態(tài)佃扼,更改它,并將它寫(xiě)(PUT)回服務(wù)器蔼夜,但這期間第三方已經(jīng)在服務(wù)器上更改了該資源的狀態(tài)兼耀,因此導(dǎo)致了沖突∏罄洌”
429 Too Many Requests (RFC 6585)
用戶在給定的時(shí)間內(nèi)發(fā)送了太多的請(qǐng)求瘤运。旨在用于網(wǎng)絡(luò)限速。
431 Request Header Fields Too Large (RFC 6585)
服務(wù)器不愿處理請(qǐng)求匠题,因?yàn)橐粋€(gè)或多個(gè)頭字段過(guò)大拯坟。
444 No Response
Nginx上HTTP服務(wù)器擴(kuò)展。服務(wù)器不向客戶端返回任何信息梧躺,并關(guān)閉連接(有助于阻止惡意軟件)似谁。
450 Blocked by Windows Parental Controls
這是一個(gè)由Windows家庭控制(Microsoft)HTTP阻止的450狀態(tài)代碼的示例傲绣,用于信息和測(cè)試掠哥。
451 Unavailable For Legal Reasons
該訪問(wèn)因法律的要求而被拒絕巩踏,由IETF在2015核準(zhǔn)后新增加。
494 Request Header Too Large
在錯(cuò)誤代碼431提出之前Nginx上使用的擴(kuò)展HTTP代碼续搀。
5xx 服務(wù)器錯(cuò)誤
表示服務(wù)器無(wú)法完成明顯有效的請(qǐng)求塞琼。[56]這類狀態(tài)碼代表了服務(wù)器在處理請(qǐng)求的過(guò)程中有錯(cuò)誤或者異常狀態(tài)發(fā)生,也有可能是服務(wù)器意識(shí)到以當(dāng)前的軟硬件資源無(wú)法完成對(duì)請(qǐng)求的處理禁舷。除非這是一個(gè)HEAD請(qǐng)求彪杉,否則服務(wù)器應(yīng)當(dāng)包含一個(gè)解釋當(dāng)前錯(cuò)誤狀態(tài)以及這個(gè)狀況是臨時(shí)的還是永久的解釋信息實(shí)體。瀏覽器應(yīng)當(dāng)向用戶展示任何在當(dāng)前響應(yīng)中被包含的實(shí)體牵咙。這些狀態(tài)碼適用于任何響應(yīng)方法派近。
500 Internal Server Error
通用錯(cuò)誤消息,服務(wù)器遇到了一個(gè)未曾預(yù)料的狀況洁桌,導(dǎo)致了它無(wú)法完成對(duì)請(qǐng)求的處理渴丸。沒(méi)有給出具體錯(cuò)誤信息。
501 Not Implemented
服務(wù)器不支持當(dāng)前請(qǐng)求所需要的某個(gè)功能另凌。當(dāng)服務(wù)器無(wú)法識(shí)別請(qǐng)求的方法谱轨,并且無(wú)法支持其對(duì)任何資源的請(qǐng)求。(例如吠谢,網(wǎng)絡(luò)服務(wù)API的新功能)
502 Bad Gateway
作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí)土童,從上游服務(wù)器接收到無(wú)效的響應(yīng)。
503 Service Unavailable
由于臨時(shí)的服務(wù)器維護(hù)或者過(guò)載工坊,服務(wù)器當(dāng)前無(wú)法處理請(qǐng)求献汗。這個(gè)狀況是暫時(shí)的,并且將在一段時(shí)間以后恢復(fù)王污。如果能夠預(yù)計(jì)延遲時(shí)間罢吃,那么響應(yīng)中可以包含一個(gè)Retry-After頭用以標(biāo)明這個(gè)延遲時(shí)間。如果沒(méi)有給出這個(gè)Retry-After信息玉掸,那么客戶端應(yīng)當(dāng)以處理500響應(yīng)的方式處理它刃麸。
504 Gateway Timeout
作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),未能及時(shí)從上游服務(wù)器(URI標(biāo)識(shí)出的服務(wù)器司浪,例如HTTP泊业、FTP、LDAP)或者輔助服務(wù)器(例如DNS)收到響應(yīng)啊易。
注意:某些代理服務(wù)器在DNS查詢超時(shí)時(shí)會(huì)返回400或者500錯(cuò)誤吁伺。
505 HTTP Version Not Supported
服務(wù)器不支持,或者拒絕支持在請(qǐng)求中使用的HTTP版本租谈。[63]這暗示著服務(wù)器不能或不愿使用與客戶端相同的版本篮奄。響應(yīng)中應(yīng)當(dāng)包含一個(gè)描述了為何版本不被支持以及服務(wù)器支持哪些協(xié)議的實(shí)體捆愁。
506 Variant Also Negotiates(RFC 2295)
由《透明內(nèi)容協(xié)商協(xié)議》(RFC 2295)擴(kuò)展,代表服務(wù)器存在內(nèi)部配置錯(cuò)誤窟却,被請(qǐng)求的協(xié)商變?cè)Y源被配置為在透明內(nèi)容協(xié)商中使用自己昼丑,因此在一個(gè)協(xié)商處理中不是一個(gè)合適的重點(diǎn)。
507 Insufficient Storage(WebDAV夸赫;RFC 4918)
服務(wù)器無(wú)法存儲(chǔ)完成請(qǐng)求所必須的內(nèi)容菩帝。這個(gè)狀況被認(rèn)為是臨時(shí)的。
508 Loop Detected (WebDAV茬腿;RFC 5842)
服務(wù)器在處理請(qǐng)求時(shí)陷入死循環(huán)呼奢。 (可代替 208狀態(tài)碼)
510 Not Extended(RFC 2774)
獲取資源所需要的策略并沒(méi)有被滿足。
511 Network Authentication Required (RFC 6585)
客戶端需要進(jìn)行身份驗(yàn)證才能獲得網(wǎng)絡(luò)訪問(wèn)權(quán)限切平,旨在限制用戶群訪問(wèn)特定網(wǎng)絡(luò)握础。(例如連接WiFi熱點(diǎn)時(shí)的強(qiáng)制網(wǎng)絡(luò)門(mén)戶)