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)。這些狀態(tài)碼代表的響應(yīng)都是信息性的我磁,標(biāo)示客戶應(yīng)該采取的其他行動孽文。
100Continue
客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請求。這個臨時響應(yīng)是用來通知客戶端它的部分請求已經(jīng)被服務(wù)器接收夺艰,且仍未被拒絕芋哭。客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請求的剩余部分郁副,或者如果請求已經(jīng)完成减牺,忽略這個響應(yīng)。服務(wù)器必須在請求完成后向客戶端發(fā)送一個最終響應(yīng)。
101Switching Protocols
服務(wù)器已經(jīng)理解了客戶端的請求拔疚,并將通過Upgrade消息頭通知客戶端采用不同的協(xié)議來完成這個請求肥隆。在發(fā)送完這個響應(yīng)最后的空行后,服務(wù)器將會切換到在Upgrade消息頭中定義的那些協(xié)議稚失。:只有在切換新的協(xié)議更有好處的時候才應(yīng)該采取類似措施栋艳。例如,切換到新的HTTP版本比舊版本更有優(yōu)勢句各,或者切換到一個實時且同步的協(xié)議以傳送利用此類特性的資源吸占。
102Processing
由WebDAV(RFC2518)擴(kuò)展的狀態(tài)碼,代表處理將被繼續(xù)執(zhí)行凿宾。
2xx成功
這一類型的狀態(tài)碼矾屯,代表請求已成功被服務(wù)器接收、理解菌湃、并接受问拘。
200OK
請求已成功,請求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回惧所。
201Created
請求已經(jīng)被實現(xiàn)骤坐,而且有一個新的資源已經(jīng)依據(jù)請求的需要而創(chuàng)建,且其URI已經(jīng)隨Location頭信息返回下愈。假如需要的資源無法及時創(chuàng)建的話纽绍,應(yīng)當(dāng)返回'202 Accepted'。
202Accepted
服務(wù)器已接受請求势似,但尚未處理拌夏。正如它可能被拒絕一樣,最終該請求可能會也可能不會被執(zhí)行履因。在異步操作的場合下障簿,沒有比發(fā)送這個狀態(tài)碼更方便的做法了。:返回202狀態(tài)碼的響應(yīng)的目的是允許服務(wù)器接受其他過程的請求(例如某個每天只執(zhí)行一次的基于批處理的操作)栅迄,而不必讓客戶端一直保持與服務(wù)器的連接直到批處理操作全部完成站故。在接受請求處理并返回202狀態(tài)碼的響應(yīng)應(yīng)當(dāng)在返回的實體中包含一些指示處理當(dāng)前狀態(tài)的信息液荸,以及指向處理狀態(tài)監(jiān)視器或狀態(tài)預(yù)測的指針仇冯,以便用戶能夠估計操作是否已經(jīng)完成鹿鳖。
203Non-Authoritative Information
服務(wù)器已成功處理了請求葱蝗,但返回的實體頭部元信息不是在原始服務(wù)器上有效的確定集合笔喉,而是來自本地或者第三方的拷貝逗栽。當(dāng)前的信息可能是原始版本的子集或者超集誊爹。例如芬首,包含資源的元數(shù)據(jù)可能導(dǎo)致原始服務(wù)器知道元信息的超集悦即。使用此狀態(tài)碼不是必須的吮成,而且只有在響應(yīng)不使用此狀態(tài)碼便會返回200OK的情況下才是合適的橱乱。
204No Content
服務(wù)器成功處理了請求,但不需要返回任何實體內(nèi)容赁豆,并且希望返回更新了的元信息仅醇。響應(yīng)可能通過實體頭部的形式,返回新的或更新后的元信息魔种。如果存在這些頭部信息析二,則應(yīng)當(dāng)與所請求的變量相呼應(yīng)。
如果客戶端是瀏覽器的話节预,那么用戶瀏覽器應(yīng)保留發(fā)送了該請求的頁面叶摄,而不產(chǎn)生任何文檔視圖上的變化,即使按照規(guī)范新的或更新后的元信息應(yīng)當(dāng)被應(yīng)用到用戶瀏覽器活動視圖中的文檔安拟。
由于204響應(yīng)被禁止包含任何消息體蛤吓,因此它始終以消息頭后的第一個空行結(jié)尾。
205Reset Content
服務(wù)器成功處理了請求糠赦,且沒有返回任何內(nèi)容会傲。但是與204響應(yīng)不同,返回此狀態(tài)碼的響應(yīng)要求請求者重置文檔視圖拙泽。該響應(yīng)主要是被用于接受用戶輸入后淌山,立即重置表單,以便用戶能夠輕松地開始另一次輸入顾瞻。
與204響應(yīng)一樣泼疑,該響應(yīng)也被禁止包含任何消息體,且以消息頭后的第一個空行結(jié)束荷荤。
206Partial Content
服務(wù)器已經(jīng)成功處理了部分GET請求退渗。類似于FlashGet或者迅雷這類的HTTP下載工具都是使用此類響應(yīng)實現(xiàn)斷點續(xù)傳或者將一個大文檔分解為多個下載段同時下載。
該請求必須包含Range頭信息來指示客戶端希望得到的內(nèi)容范圍蕴纳,并且可能包含If-Range來作為請求條件会油。
響應(yīng)必須包含如下的頭部域:
Content-Range用以指示本次響應(yīng)中返回的內(nèi)容的范圍;如果是Content-Type為multipart/byteranges的多段下載古毛,則每一multipart段中都應(yīng)包含Content-Range域用以指示本段的內(nèi)容范圍钞啸。假如響應(yīng)中包含Content-Length,那么它的數(shù)值必須匹配它返回的內(nèi)容范圍的真實字節(jié)數(shù)喇潘。
Date
ETag和/或Content-Location,假如同樣的請求本應(yīng)該返回200響應(yīng)梭稚。
Expires, Cache-Control颖低,和/或Vary,假如其值可能與之前相同變量的其他響應(yīng)對應(yīng)的值不同的話弧烤。
假如本響應(yīng)請求使用了If-Range強緩存驗證忱屑,那么本次響應(yīng)不應(yīng)該包含其他實體頭蹬敲;假如本響應(yīng)的請求使用了If-Range弱緩存驗證,那么本次響應(yīng)禁止包含其他實體頭莺戒;這避免了緩存的實體內(nèi)容和更新了的實體頭信息之間的不一致伴嗡。否則,本響應(yīng)就應(yīng)當(dāng)包含所有本應(yīng)該返回200響應(yīng)中應(yīng)當(dāng)返回的所有實體頭部域从铲。
假如ETag或Last-Modified頭部不能精確匹配的話瘪校,則客戶端緩存應(yīng)禁止將206響應(yīng)返回的內(nèi)容與之前任何緩存過的內(nèi)容組合在一起。
任何不支持Range以及Content-Range頭的緩存都禁止緩存206響應(yīng)返回的內(nèi)容名段。
207Multi-Status
由WebDAV(RFC2518)擴(kuò)展的狀態(tài)碼阱扬,代表之后的消息體將是一個XML消息,并且可能依照之前子請求數(shù)量的不同伸辟,包含一系列獨立的響應(yīng)代碼麻惶。
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→B→C→……→A或A→A)姊扔,因為這會導(dǎo)致服務(wù)器和客戶端大量不必要的資源消耗惠奸。按照HTTP/1.0版規(guī)范的建議,瀏覽器不應(yīng)自動訪問超過5次的重定向恰梢。
300Multiple Choices
被請求的資源有一系列可供選擇的回饋信息佛南,每個都有自己特定的地址和瀏覽器驅(qū)動的商議信息。用戶或瀏覽器能夠自行選擇一個首選的地址進(jìn)行重定向嵌言。
除非這是一個HEAD請求嗅回,否則該響應(yīng)應(yīng)當(dāng)包括一個資源特性及地址的列表的實體,以便用戶或瀏覽器從中選擇最合適的重定向地址摧茴。這個實體的格式由Content-Type定義的格式所決定绵载。瀏覽器可能根據(jù)響應(yīng)的格式以及瀏覽器自身能力,自動作出最合適的選擇苛白。當(dāng)然娃豹,RFC2616規(guī)范并沒有規(guī)定這樣的自動選擇該如何進(jìn)行。
如果服務(wù)器本身已經(jīng)有了首選的回饋選擇购裙,那么在Location中應(yīng)當(dāng)指明這個回饋的URI懂版;瀏覽器可能會將這個Location值作為自動重定向的地址。此外躏率,除非額外指定躯畴,否則這個響應(yīng)也是可緩存的民鼓。
301Moved Permanently
被請求的資源已永久移動到新位置,并且將來任何對此資源的引用都應(yīng)該使用本響應(yīng)返回的若干個URI之一蓬抄。如果可能丰嘉,擁有鏈接編輯功能的客戶端應(yīng)當(dāng)自動把請求的地址修改為從服務(wù)器反饋回來的地址。除非額外指定嚷缭,否則這個響應(yīng)也是可緩存的饮亏。
新的永久性的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回。除非這是一個HEAD請求峭状,否則響應(yīng)的實體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡短說明克滴。
如果這不是一個GET或者HEAD請求,因此瀏覽器禁止自動進(jìn)行重定向优床,除非得到用戶的確認(rèn)劝赔,因為請求的條件可能因此發(fā)生變化。
注意:對于某些使用HTTP/1.0協(xié)議的瀏覽器胆敞,當(dāng)它們發(fā)送的POST請求得到了一個301響應(yīng)的話着帽,接下來的重定向請求將會變成GET方式。
302Found
請求的資源現(xiàn)在臨時從不同的URI響應(yīng)請求移层。由于這樣的重定向是臨時的仍翰,客戶端應(yīng)當(dāng)繼續(xù)向原有地址發(fā)送以后的請求。只有在Cache-Control或Expires中進(jìn)行了指定的情況下观话,這個響應(yīng)才是可緩存的予借。
新的臨時性的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回。除非這是一個HEAD請求频蛔,否則響應(yīng)的實體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡短說明灵迫。
如果這不是一個GET或者HEAD請求,那么瀏覽器禁止自動進(jìn)行重定向晦溪,除非得到用戶的確認(rèn)瀑粥,因為請求的條件可能因此發(fā)生變化。
注意:雖然RFC1945和RFC2068規(guī)范不允許客戶端在重定向時改變請求的方法三圆,但是很多現(xiàn)存的瀏覽器將302響應(yīng)視作為303響應(yīng)狞换,并且使用GET方式訪問在Location中規(guī)定的URI,而無視原先請求的方法舟肉。狀態(tài)碼303和307被添加了進(jìn)來修噪,用以明確服務(wù)器期待客戶端進(jìn)行何種反應(yīng)。
303See Other
對應(yīng)當(dāng)前請求的響應(yīng)可以在另一個URI上被找到路媚,而且客戶端應(yīng)當(dāng)采用GET的方式訪問那個資源割按。這個方法的存在主要是為了允許由腳本激活的POST請求輸出重定向到一個新的資源。這個新的URI不是原始資源的替代引用磷籍。同時适荣,303響應(yīng)禁止被緩存。當(dāng)然院领,第二個請求(重定向)可能被緩存弛矛。
新的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回。除非這是一個HEAD請求比然,否則響應(yīng)的實體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡短說明丈氓。
注意:許多HTTP/1.1版以前的瀏覽器不能正確理解303狀態(tài)。如果需要考慮與這些瀏覽器之間的互動强法,302狀態(tài)碼應(yīng)該可以勝任万俗,因為大多數(shù)的瀏覽器處理302響應(yīng)時的方式恰恰就是上述規(guī)范要求客戶端處理303響應(yīng)時應(yīng)當(dāng)做的。
304Not Modified
如果客戶端發(fā)送了一個帶條件的GET請求且該請求已被允許饮怯,而文檔的內(nèi)容(自上次訪問以來或者根據(jù)請求的條件)并沒有改變闰歪,則服務(wù)器應(yīng)當(dāng)返回這個狀態(tài)碼。304響應(yīng)禁止包含消息體蓖墅,因此始終以消息頭后的第一個空行結(jié)尾库倘。
該響應(yīng)必須包含以下的頭信息:
Date,除非這個服務(wù)器沒有時鐘论矾。假如沒有時鐘的服務(wù)器也遵守這些規(guī)則教翩,那么代理服務(wù)器以及客戶端可以自行將Date字段添加到接收到的響應(yīng)頭中去(正如RFC2068中規(guī)定的一樣),緩存機制將會正常工作贪壳。
ETag和/或Content-Location饱亿,假如同樣的請求本應(yīng)返回200響應(yīng)。
Expires, Cache-Control闰靴,和/或Vary彪笼,假如其值可能與之前相同變量的其他響應(yīng)對應(yīng)的值不同的話。
假如本響應(yīng)請求使用了強緩存驗證传黄,那么本次響應(yīng)不應(yīng)該包含其他實體頭杰扫;否則(例如,某個帶條件的GET請求使用了弱緩存驗證)膘掰,本次響應(yīng)禁止包含其他實體頭章姓;這避免了緩存了的實體內(nèi)容和更新了的實體頭信息之間的不一致。
假如某個304響應(yīng)指明了當(dāng)前某個實體沒有緩存识埋,那么緩存系統(tǒng)必須忽視這個響應(yīng)凡伊,并且重復(fù)發(fā)送不包含限制條件的請求。
假如接收到一個要求更新某個緩存條目的304響應(yīng)窒舟,那么緩存系統(tǒng)必須更新整個條目以反映所有在響應(yīng)中被更新的字段的值系忙。
305Use Proxy
被請求的資源必須通過指定的代理才能被訪問。Location域中將給出指定的代理所在的URI信息惠豺,接收者需要重復(fù)發(fā)送一個單獨的請求银还,通過這個代理才能訪問相應(yīng)資源风宁。只有原始服務(wù)器才能創(chuàng)建305響應(yīng)。
注意:RFC2068中沒有明確305響應(yīng)是為了重定向一個單獨的請求蛹疯,而且只能被原始服務(wù)器創(chuàng)建戒财。忽視這些限制可能導(dǎo)致嚴(yán)重的安全后果。
306Switch Proxy
在最新版的規(guī)范中捺弦,306狀態(tài)碼已經(jīng)不再被使用饮寞。
307Temporary Redirect
請求的資源現(xiàn)在臨時從不同的URI響應(yīng)請求。由于這樣的重定向是臨時的列吼,客戶端應(yīng)當(dāng)繼續(xù)向原有地址發(fā)送以后的請求幽崩。只有在Cache-Control或Expires中進(jìn)行了指定的情況下,這個響應(yīng)才是可緩存的寞钥。
新的臨時性的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回慌申。除非這是一個HEAD請求,否則響應(yīng)的實體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡短說明凑耻。因為部分瀏覽器不能識別307響應(yīng)太示,因此需要添加上述必要信息以便用戶能夠理解并向新的URI發(fā)出訪問請求。
如果這不是一個GET或者HEAD請求香浩,那么瀏覽器禁止自動進(jìn)行重定向类缤,除非得到用戶的確認(rèn),因為請求的條件可能因此發(fā)生變化邻吭。
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)用程序讀取并干擾后者。
400Bad Request
由于包含語法錯誤淫痰,當(dāng)前請求無法被服務(wù)器理解最楷。除非進(jìn)行修改,否則客戶端不應(yīng)該重復(fù)提交這個請求。
401Unauthorized
當(dāng)前請求需要用戶驗證籽孙。該響應(yīng)必須包含一個適用于被請求資源的WWW-Authenticate信息頭用以詢問用戶信息烈评。客戶端可以重復(fù)提交一個包含恰當(dāng)?shù)腁uthorization頭信息的請求蚯撩。如果當(dāng)前請求已經(jīng)包含了Authorization證書础倍,那么401響應(yīng)代表著服務(wù)器驗證已經(jīng)拒絕了那些證書。如果401響應(yīng)包含了與前一個響應(yīng)相同的身份驗證詢問胎挎,且瀏覽器已經(jīng)至少嘗試了一次驗證,那么瀏覽器應(yīng)當(dāng)向用戶展示響應(yīng)中包含的實體信息忆家,因為這個實體信息中可能包含了相關(guān)診斷信息犹菇。參見RFC2617。
402Payment Required
該狀態(tài)碼是為了將來可能的需求而預(yù)留的芽卿。
403Forbidden
服務(wù)器已經(jīng)理解請求揭芍,但是拒絕執(zhí)行它。與401響應(yīng)不同的是卸例,身份驗證并不能提供任何幫助称杨,而且這個請求也不應(yīng)該被重復(fù)提交。如果這不是一個HEAD請求筷转,而且服務(wù)器希望能夠講清楚為何請求不能被執(zhí)行姑原,那么就應(yīng)該在實體內(nèi)描述拒絕的原因。當(dāng)然服務(wù)器也可以返回一個404響應(yīng)呜舒,假如它不希望讓客戶端獲得任何信息锭汛。
404Not Found
請求失敗,請求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)袭蝗。沒有信息能夠告訴用戶這個狀況到底是暫時的還是永久的唤殴。假如服務(wù)器知道情況的話,應(yīng)當(dāng)使用410狀態(tài)碼來告知舊資源因為某些內(nèi)部的配置機制問題到腥,已經(jīng)永久的不可用朵逝,而且沒有任何可以跳轉(zhuǎn)的地址。404這個狀態(tài)碼被廣泛應(yīng)用于當(dāng)服務(wù)器不想揭示到底為何請求被拒絕或者沒有其他適合的響應(yīng)可用的情況下乡范。
405Method Not Allowed
請求行中指定的請求方法不能被用于請求相應(yīng)的資源配名。該響應(yīng)必須返回一個Allow頭信息用以表示出當(dāng)前資源能夠接受的請求方法的列表。
鑒于PUT篓足,DELETE方法會對服務(wù)器上的資源進(jìn)行寫操作段誊,因而絕大部分的網(wǎng)頁服務(wù)器都不支持或者在默認(rèn)配置下不允許上述請求方法,對于此類請求均會返回405錯誤栈拖。
406Not Acceptable
請求的資源的內(nèi)容特性無法滿足請求頭中的條件连舍,因而無法生成響應(yīng)實體。
除非這是一個HEAD請求,否則該響應(yīng)就應(yīng)當(dāng)返回一個包含可以讓用戶或者瀏覽器從中選擇最合適的實體特性以及地址列表的實體索赏。實體的格式由Content-Type頭中定義的媒體類型決定盼玄。瀏覽器可以根據(jù)格式及自身能力自行作出最佳選擇。但是潜腻,規(guī)范中并沒有定義任何作出此類自動選擇的標(biāo)準(zhǔn)埃儿。
407Proxy Authentication Required
與401響應(yīng)類似,只不過客戶端必須在代理服務(wù)器上進(jìn)行身份驗證融涣。代理服務(wù)器必須返回一個Proxy-Authenticate用以進(jìn)行身份詢問童番。客戶端可以返回一個Proxy-Authorization信息頭用以驗證威鹿。參見RFC2617剃斧。
408Request Timeout
請求超時『瞿悖客戶端沒有在服務(wù)器預(yù)備等待的時間內(nèi)完成一個請求的發(fā)送幼东。客戶端可以隨時再次提交這一請求而無需進(jìn)行任何更改科雳。
409Conflict
由于和被請求的資源的當(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)實體中很可能會包含兩個沖突版本之間的差異比較躲舌,以便用戶重新提交歸并以后的新版本。
410Gone
被請求的資源在服務(wù)器上已經(jīng)不再可用性雄,而且沒有任何已知的轉(zhuǎn)發(fā)地址没卸。這樣的狀況應(yīng)當(dāng)被認(rèn)為是永久性的。如果可能秒旋,擁有鏈接編輯功能的客戶端應(yīng)當(dāng)在獲得用戶許可后刪除所有指向這個地址的引用约计。如果服務(wù)器不知道或者無法確定這個狀況是否是永久的,那么就應(yīng)該使用404狀態(tài)碼迁筛。除非額外說明煤蚌,否則這個響應(yīng)是可緩存的。
410響應(yīng)的目的主要是幫助網(wǎng)站管理員維護(hù)網(wǎng)站,通知用戶該資源已經(jīng)不再可用尉桩,并且服務(wù)器擁有者希望所有指向這個資源的遠(yuǎn)端連接也被刪除筒占。這類事件在限時、增值服務(wù)中很普遍蜘犁。同樣翰苫,410響應(yīng)也被用于通知客戶端在當(dāng)前服務(wù)器站點上,原本屬于某個個人的資源已經(jīng)不再可用这橙。當(dāng)然奏窑,是否需要把所有永久不可用的資源標(biāo)記為'410 Gone',以及是否需要保持此標(biāo)記多長時間屈扎,完全取決于服務(wù)器擁有者良哲。
411Length Required
服務(wù)器拒絕在沒有定義Content-Length頭的情況下接受請求。在添加了表明請求消息體長度的有效Content-Length頭之后助隧,客戶端可以再次提交該請求。
412Precondition Failed
服務(wù)器在驗證在請求的頭字段中給出先決條件時滑沧,沒能滿足其中的一個或多個并村。這個狀態(tài)碼允許客戶端在獲取資源時在請求的元信息(請求頭字段數(shù)據(jù))中設(shè)置先決條件,以此避免該請求方法被應(yīng)用到其希望的內(nèi)容以外的資源上滓技。
413Request Entity Too Large
服務(wù)器拒絕處理當(dāng)前請求哩牍,因為該請求提交的實體數(shù)據(jù)大小超過了服務(wù)器愿意或者能夠處理的范圍。此種情況下令漂,服務(wù)器可以關(guān)閉連接以免客戶端繼續(xù)發(fā)送此請求膝昆。
如果這個狀況是臨時的,服務(wù)器應(yīng)當(dāng)返回一個Retry-After的響應(yīng)頭叠必,以告知客戶端可以在多少時間以后重新嘗試荚孵。
414Request-URI Too Long
請求的URI長度超過了服務(wù)器能夠解釋的長度,因此服務(wù)器拒絕對該請求提供服務(wù)纬朝。這比較少見收叶,通常的情況包括:
本應(yīng)使用POST方法的表單提交變成了GET方法,導(dǎo)致查詢字符串(Query String)過長共苛。
重定向URI“黑洞”判没,例如每次重定向把舊的URI作為新的URI的一部分,導(dǎo)致在若干次重定向后URI超長隅茎。
客戶端正在嘗試?yán)媚承┓?wù)器中存在的安全漏洞攻擊服務(wù)器澄峰。這類服務(wù)器使用固定長度的緩沖讀取或操作請求的URI,當(dāng)GET后的參數(shù)超過某個數(shù)值后辟犀,可能會產(chǎn)生緩沖區(qū)溢出俏竞,導(dǎo)致任意代碼被執(zhí)行[1]。沒有此類漏洞的服務(wù)器,應(yīng)當(dāng)返回414狀態(tài)碼胞此。
415Unsupported Media Type
對于當(dāng)前請求的方法和所請求的資源臣咖,請求中提交的實體并不是服務(wù)器中所支持的格式,因此請求被拒絕漱牵。
416Requested Range Not Satisfiable
如果請求中包含了Range請求頭夺蛇,并且Range中指定的任何數(shù)據(jù)范圍都與當(dāng)前資源的可用范圍不重合,同時請求中又沒有定義If-Range請求頭酣胀,那么服務(wù)器就應(yīng)當(dāng)返回416狀態(tài)碼刁赦。
假如Range使用的是字節(jié)范圍,那么這種情況就是指請求指定的所有數(shù)據(jù)范圍的首字節(jié)位置都超過了當(dāng)前資源的長度闻镶。服務(wù)器也應(yīng)當(dāng)在返回416狀態(tài)碼的同時甚脉,包含一個Content-Range實體頭,用以指明當(dāng)前資源的長度铆农。這個響應(yīng)也被禁止使用multipart/byteranges作為其Content-Type牺氨。
417Expectation Failed
在請求頭Expect中指定的預(yù)期內(nèi)容無法被服務(wù)器滿足,或者這個服務(wù)器是一個代理服務(wù)器墩剖,它有明顯的證據(jù)證明在當(dāng)前路由的下一個節(jié)點上猴凹,Expect的內(nèi)容無法被滿足。
418I'm a teapot
本操作碼是在1998年作為IETF的傳統(tǒng)愚人節(jié)笑話,在RFC2324超文本咖啡壺控制協(xié)議中定義的岭皂,并不需要在真實的HTTP服務(wù)器中定義郊霎。
421There are too many connections from your internet address
從當(dāng)前客戶端所在的IP地址到服務(wù)器的連接數(shù)超過了服務(wù)器許可的最大范圍。通常爷绘,這里的IP地址指的是從服務(wù)器上看到的客戶端地址(比如用戶的網(wǎng)關(guān)或者代理服務(wù)器地址)书劝。在這種情況下,連接數(shù)的計算可能涉及到不止一個終端用戶土至。
422Unprocessable Entity
請求格式正確购对,但是由于含有語義錯誤,無法響應(yīng)毙籽。(RFC4918WebDAV)
423Locked
當(dāng)前資源被鎖定洞斯。(RFC4918WebDAV)
424Failed Dependency
由于之前的某個請求發(fā)生的錯誤,導(dǎo)致當(dāng)前請求失敗坑赡,例如PROPPATCH烙如。(RFC4918WebDAV)
425Unordered Collection
在WebDav Advanced Collections草案中定義,但是未出現(xiàn)在《WebDAV順序集協(xié)議》(RFC3658)中毅否。
426Upgrade Required
客戶端應(yīng)當(dāng)切換到TLS/1.0亚铁。(RFC2817)
449Retry With
由微軟擴(kuò)展,代表請求應(yīng)當(dāng)在執(zhí)行完適當(dāng)?shù)牟僮骱筮M(jìn)行重試螟加。
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)方法。
500Internal Server Error
服務(wù)器遇到了一個未曾預(yù)料的狀況曾雕,導(dǎo)致了它無法完成對請求的處理奴烙。一般來說,這個問題都會在服務(wù)器的程序碼出錯時出現(xiàn)剖张。
501Not Implemented
服務(wù)器不支持當(dāng)前請求所需要的某個功能切诀。當(dāng)服務(wù)器無法識別請求的方法,并且無法支持其對任何資源的請求搔弄。
502Bad Gateway
作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時幅虑,從上游服務(wù)器接收到無效的響應(yīng)。
503Service Unavailable
由于臨時的服務(wù)器維護(hù)或者過載顾犹,服務(wù)器當(dāng)前無法處理請求倒庵。這個狀況是臨時的,并且將在一段時間以后恢復(fù)炫刷。如果能夠預(yù)計延遲時間哄芜,那么響應(yīng)中可以包含一個Retry-After頭用以標(biāo)明這個延遲時間。如果沒有給出這個Retry-After信息柬唯,那么客戶端應(yīng)當(dāng)以處理500響應(yīng)的方式處理它。
504Gateway Timeout
作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時圃庭,未能及時從上游服務(wù)器(URI標(biāo)識出的服務(wù)器锄奢,例如HTTP、FTP剧腻、LDAP)或者輔助服務(wù)器(例如DNS)收到響應(yīng)拘央。
注意:某些代理服務(wù)器在DNS查詢超時時會返回400或者500錯誤
505HTTP Version Not Supported
服務(wù)器不支持,或者拒絕支持在請求中使用的HTTP版本书在。這暗示著服務(wù)器不能或不愿使用與客戶端相同的版本灰伟。響應(yīng)中應(yīng)當(dāng)包含一個描述了為何版本不被支持以及服務(wù)器支持哪些協(xié)議的實體。
506Variant Also Negotiates
由《透明內(nèi)容協(xié)商協(xié)議》(RFC2295)擴(kuò)展儒旬,代表服務(wù)器存在內(nèi)部配置錯誤:被請求的協(xié)商變元資源被配置為在透明內(nèi)容協(xié)商中使用自己栏账,因此在一個協(xié)商處理中不是一個合適的重點。
507Insufficient Storage
服務(wù)器無法存儲完成請求所必須的內(nèi)容栈源。這個狀況被認(rèn)為是臨時的挡爵。WebDAV(RFC4918)
509Bandwidth Limit Exceeded
服務(wù)器達(dá)到帶寬限制。這不是一個官方的狀態(tài)碼甚垦,但是仍被廣泛使用茶鹃。
510Not Extended
獲取資源所需要的策略并沒有沒滿足涣雕。