...

HTTP狀态碼詳解

2021-07-03
狀态碼含義
100客戶端應當繼續發送請求。這(zhè)個(gè)臨時(shí)響應是(shì)用來(lái)通知客戶端它的(de)部分請求已經被服務器接收,且仍未被拒絕。客戶端應當繼續發送請求的(de)剩餘部分,或者如果請求已經完成,忽略這(zhè)個(gè)響應。服務器必須在(zài)請求完成後向客戶端發送一(yī / yì /yí)個(gè)最終響應。
101服務器已經理解了(le/liǎo)客戶端的(de)請求,并将通過Upgrade 消息頭通知客戶端采用不(bù)同的(de)協議來(lái)完成這(zhè)個(gè)請求。在(zài)發送完這(zhè)個(gè)響應最後的(de)空行後,服務器将會切換到(dào)在(zài)Upgrade 消息頭中定義的(de)那些協議。   隻有在(zài)切換新的(de)協議更有好處的(de)時(shí)候才應該采取類似措施。例如,切換到(dào)新的(de)HTTP 版本比舊版本更有優勢,或者切換到(dào)一(yī / yì /yí)個(gè)實時(shí)且同步的(de)協議以(yǐ)傳送利用此類特性的(de)資源。
102由WebDAV(RFC 2518)擴展的(de)狀态碼,代表處理将被繼續執行。
200請求已成功,請求所希望的(de)響應頭或數據體将随此響應返回。
201請求已經被實現,而(ér)且有一(yī / yì /yí)個(gè)新的(de)資源已經依據請求的(de)需要(yào / yāo)而(ér)建立,且其 URI 已經随Location 頭信息返回。假如需要(yào / yāo)的(de)資源無法及時(shí)建立的(de)話,應當返回 '202 Accepted'。
202服務器已接受請求,但尚未處理。正如它可能被拒絕一(yī / yì /yí)樣,最終該請求可能會也(yě)可能不(bù)會被執行。在(zài)異步操作的(de)場合下,沒有比發送這(zhè)個(gè)狀态碼更方便的(de)做法了(le/liǎo)。   返回202狀态碼的(de)響應的(de)目的(de)是(shì)允許服務器接受其他(tā)過程的(de)請求(例如某個(gè)每天隻執行一(yī / yì /yí)次的(de)基于(yú)批處理的(de)操作),而(ér)不(bù)必讓客戶端一(yī / yì /yí)直保持與服務器的(de)連接直到(dào)批處理操作全部完成。在(zài)接受請求處理并返回202狀态碼的(de)響應應當在(zài)返回的(de)實體中包含一(yī / yì /yí)些指示處理當前狀态的(de)信息,以(yǐ)及指向處理狀态監視器或狀态預測的(de)指針,以(yǐ)便用戶能夠估計操作是(shì)否已經完成。
203服務器已成功處理了(le/liǎo)請求,但返回的(de)實體頭部元信息不(bù)是(shì)在(zài)原始服務器上(shàng)有效的(de)确定集合,而(ér)是(shì)來(lái)自本地(dì / de)或者第三方的(de)拷貝。當前的(de)信息可能是(shì)原始版本的(de)子(zǐ)集或者超集。例如,包含資源的(de)元數據可能導緻原始服務器知道(dào)元信息的(de)超級。使用此狀态碼不(bù)是(shì)必須的(de),而(ér)且隻有在(zài)響應不(bù)使用此狀态碼便會返回200 OK的(de)情況下才是(shì)合适的(de)。
204服務器成功處理了(le/liǎo)請求,但不(bù)需要(yào / yāo)返回任何實體内容,并且希望返回更新了(le/liǎo)的(de)元信息。響應可能通過實體頭部的(de)形式,返回新的(de)或更新後的(de)元信息。如果存在(zài)這(zhè)些頭部信息,則應當與所請求的(de)變量相呼應。   如果客戶端是(shì)浏覽器的(de)話,那麽用戶浏覽器應保留發送了(le/liǎo)該請求的(de)頁面,而(ér)不(bù)産生任何文檔視圖上(shàng)的(de)變化,即使按照規範新的(de)或更新後的(de)元信息應當被應用到(dào)用戶浏覽器活動視圖中的(de)文檔。   由于(yú)204響應被禁止包含任何消息體,因此它始終以(yǐ)消息頭後的(de)第一(yī / yì /yí)個(gè)空行結尾。
205服務器成功處理了(le/liǎo)請求,且沒有返回任何内容。但是(shì)與204響應不(bù)同,返回此狀态碼的(de)響應要(yào / yāo)求請求者重置文檔視圖。該響應主要(yào / yāo)是(shì)被用于(yú)接受用戶輸入後,立即重置表單,以(yǐ)便用戶能夠輕松地(dì / de)開始另一(yī / yì /yí)次輸入。   與204響應一(yī / yì /yí)樣,該響應也(yě)被禁止包含任何消息體,且以(yǐ)消息頭後的(de)第一(yī / yì /yí)個(gè)空行結束。
206服務器已經成功處理了(le/liǎo)部分 GET 請求。類似于(yú) FlashGet 或者迅雷這(zhè)類的(de) HTTP 下載工具都是(shì)使用此類響應實現斷點續傳或者将一(yī / yì /yí)個(gè)大(dà)文檔分解爲(wéi / wèi)多個(gè)下載段同時(shí)下載。   該請求必須包含 Range 頭信息來(lái)指示客戶端希望得到(dào)的(de)内容範圍,并且可能包含 If-Range 來(lái)作爲(wéi / wèi)請求條件。   響應必須包含如下的(de)頭部域:   Content-Range 用以(yǐ)指示本次響應中返回的(de)内容的(de)範圍;如果是(shì) Content-Type 爲(wéi / wèi) multipart/byteranges 的(de)多段下載,則每一(yī / yì /yí) multipart 段中都應包含 Content-Range 域用以(yǐ)指示本段的(de)内容範圍。假如響應中包含 Content-Length,那麽它的(de)數值必須匹配它返回的(de)内容範圍的(de)真實字節數。   Date   ETag 和(hé / huò)/或 Content-Location,假如同樣的(de)請求本應該返回200響應。   Expires, Cache-Control,和(hé / huò)/或 Vary,假如其值可能與之(zhī)前相同變量的(de)其他(tā)響應對應的(de)值不(bù)同的(de)話。   假如本響應請求使用了(le/liǎo) If-Range 強緩存驗證,那麽本次響應不(bù)應該包含其他(tā)實體頭;假如本響應的(de)請求使用了(le/liǎo) If-Range 弱緩存驗證,那麽本次響應禁止包含其他(tā)實體頭;這(zhè)避免了(le/liǎo)緩存的(de)實體内容和(hé / huò)更新了(le/liǎo)的(de)實體頭信息之(zhī)間的(de)不(bù)一(yī / yì /yí)緻。否則,本響應就(jiù)應當包含所有本應該返回200響應中應當返回的(de)所有實體頭部域。   假如 ETag 或 Last-Modified 頭部不(bù)能精确匹配的(de)話,則客戶端緩存應禁止将206響應返回的(de)内容與之(zhī)前任何緩存過的(de)内容組合在(zài)一(yī / yì /yí)起。   任何不(bù)支持 Range 以(yǐ)及 Content-Range 頭的(de)緩存都禁止緩存206響應返回的(de)内容。
207由WebDAV(RFC 2518)擴展的(de)狀态碼,代表之(zhī)後的(de)消息體将是(shì)一(yī / yì /yí)個(gè)XML消息,并且可能依照之(zhī)前子(zǐ)請求數量的(de)不(bù)同,包含一(yī / yì /yí)系列獨立的(de)響應代碼。
300被請求的(de)資源有一(yī / yì /yí)系列可供選擇的(de)回饋信息,每個(gè)都有自己特定的(de)地(dì / de)址和(hé / huò)浏覽器驅動的(de)商議信息。用戶或浏覽器能夠自行選擇一(yī / yì /yí)個(gè)首選的(de)地(dì / de)址進行重定向。   除非這(zhè)是(shì)一(yī / yì /yí)個(gè) HEAD 請求,否則該響應應當包括一(yī / yì /yí)個(gè)資源特性及地(dì / de)址的(de)列表的(de)實體,以(yǐ)便用戶或浏覽器從中選擇最合适的(de)重定向地(dì / de)址。這(zhè)個(gè)實體的(de)格式由 Content-Type 定義的(de)格式所決定。浏覽器可能根據響應的(de)格式以(yǐ)及浏覽器自身能力,自動作出(chū)最合适的(de)選擇。當然,RFC 2616規範并沒有規定這(zhè)樣的(de)自動選擇該如何進行。   如果服務器本身已經有了(le/liǎo)首選的(de)回饋選擇,那麽在(zài) Location 中應當指明這(zhè)個(gè)回饋的(de) URI;浏覽器可能會将這(zhè)個(gè) Location 值作爲(wéi / wèi)自動重定向的(de)地(dì / de)址。此外,除非額外指定,否則這(zhè)個(gè)響應也(yě)是(shì)可緩存的(de)。
301被請求的(de)資源已永久移動到(dào)新位置,并且将來(lái)任何對此資源的(de)引用都應該使用本響應返回的(de)若幹個(gè) URI 之(zhī)一(yī / yì /yí)。如果可能,擁有鏈接編輯功能的(de)客戶端應當自動把請求的(de)地(dì / de)址修改爲(wéi / wèi)從服務器反饋回來(lái)的(de)地(dì / de)址。除非額外指定,否則這(zhè)個(gè)響應也(yě)是(shì)可緩存的(de)。   新的(de)永久性的(de) URI 應當在(zài)響應的(de) Location 域中返回。除非這(zhè)是(shì)一(yī / yì /yí)個(gè) HEAD 請求,否則響應的(de)實體中應當包含指向新的(de) URI 的(de)超鏈接及簡短說(shuō)明。   如果這(zhè)不(bù)是(shì)一(yī / yì /yí)個(gè) GET 或者 HEAD 請求,因此浏覽器禁止自動進行重定向,除非得到(dào)用戶的(de)确認,因爲(wéi / wèi)請求的(de)條件可能因此發生變化。   注意:對于(yú)某些使用 HTTP/1.0 協議的(de)浏覽器,當它們發送的(de) POST 請求得到(dào)了(le/liǎo)一(yī / yì /yí)個(gè)301響應的(de)話,接下來(lái)的(de)重定向請求将會變成 GET 方式。
302請求的(de)資源現在(zài)臨時(shí)從不(bù)同的(de) URI 響應請求。由于(yú)這(zhè)樣的(de)重定向是(shì)臨時(shí)的(de),客戶端應當繼續向原有地(dì / de)址發送以(yǐ)後的(de)請求。隻有在(zài)Cache-Control或Expires中進行了(le/liǎo)指定的(de)情況下,這(zhè)個(gè)響應才是(shì)可緩存的(de)。   新的(de)臨時(shí)性的(de) URI 應當在(zài)響應的(de) Location 域中返回。除非這(zhè)是(shì)一(yī / yì /yí)個(gè) HEAD 請求,否則響應的(de)實體中應當包含指向新的(de) URI 的(de)超鏈接及簡短說(shuō)明。   如果這(zhè)不(bù)是(shì)一(yī / yì /yí)個(gè) GET 或者 HEAD 請求,那麽浏覽器禁止自動進行重定向,除非得到(dào)用戶的(de)确認,因爲(wéi / wèi)請求的(de)條件可能因此發生變化。   注意:雖然RFC 1945和(hé / huò)RFC 2068規範不(bù)允許客戶端在(zài)重定向時(shí)改變請求的(de)方法,但是(shì)很多現存的(de)浏覽器将302響應視作爲(wéi / wèi)303響應,并且使用 GET 方式訪問在(zài) Location 中規定的(de) URI,而(ér)無視原先請求的(de)方法。狀态碼303和(hé / huò)307被添加了(le/liǎo)進來(lái),用以(yǐ)明确服務器期待客戶端進行何種反應。
303對應當前請求的(de)響應可以(yǐ)在(zài)另一(yī / yì /yí)個(gè) URI 上(shàng)被找到(dào),而(ér)且客戶端應當采用 GET 的(de)方式訪問那個(gè)資源。這(zhè)個(gè)方法的(de)存在(zài)主要(yào / yāo)是(shì)爲(wéi / wèi)了(le/liǎo)允許由腳本激活的(de)POST請求輸出(chū)重定向到(dào)一(yī / yì /yí)個(gè)新的(de)資源。這(zhè)個(gè)新的(de) URI 不(bù)是(shì)原始資源的(de)替代引用。同時(shí),303響應禁止被緩存。當然,第二個(gè)請求(重定向)可能被緩存。   新的(de) URI 應當在(zài)響應的(de) Location 域中返回。除非這(zhè)是(shì)一(yī / yì /yí)個(gè) HEAD 請求,否則響應的(de)實體中應當包含指向新的(de) URI 的(de)超鏈接及簡短說(shuō)明。   注意:許多 HTTP/1.1 版以(yǐ)前的(de) 浏覽器不(bù)能正确理解303狀态。如果需要(yào / yāo)考慮與這(zhè)些浏覽器之(zhī)間的(de)互動,302狀态碼應該可以(yǐ)勝任,因爲(wéi / wèi)大(dà)多數的(de)浏覽器處理302響應時(shí)的(de)方式恰恰就(jiù)是(shì)上(shàng)述規範要(yào / yāo)求客戶端處理303響應時(shí)應當做的(de)。
304如果客戶端發送了(le/liǎo)一(yī / yì /yí)個(gè)帶條件的(de) GET 請求且該請求已被允許,而(ér)文檔的(de)内容(自上(shàng)次訪問以(yǐ)來(lái)或者根據請求的(de)條件)并沒有改變,則服務器應當返回這(zhè)個(gè)狀态碼。304響應禁止包含消息體,因此始終以(yǐ)消息頭後的(de)第一(yī / yì /yí)個(gè)空行結尾。   該響應必須包含以(yǐ)下的(de)頭信息:   Date,除非這(zhè)個(gè)服務器沒有時(shí)鍾。假如沒有時(shí)鍾的(de)服務器也(yě)遵守這(zhè)些規則,那麽代理服務器以(yǐ)及客戶端可以(yǐ)自行将 Date 字段添加到(dào)接收到(dào)的(de)響應頭中去(正如RFC 2068中規定的(de)一(yī / yì /yí)樣),緩存機制将會正常工作。   ETag 和(hé / huò)/或 Content-Location,假如同樣的(de)請求本應返回200響應。   Expires, Cache-Control,和(hé / huò)/或Vary,假如其值可能與之(zhī)前相同變量的(de)其他(tā)響應對應的(de)值不(bù)同的(de)話。   假如本響應請求使用了(le/liǎo)強緩存驗證,那麽本次響應不(bù)應該包含其他(tā)實體頭;否則(例如,某個(gè)帶條件的(de) GET 請求使用了(le/liǎo)弱緩存驗證),本次響應禁止包含其他(tā)實體頭;這(zhè)避免了(le/liǎo)緩存了(le/liǎo)的(de)實體内容和(hé / huò)更新了(le/liǎo)的(de)實體頭信息之(zhī)間的(de)不(bù)一(yī / yì /yí)緻。   假如某個(gè)304響應指明了(le/liǎo)當前某個(gè)實體沒有緩存,那麽緩存系統必須忽視這(zhè)個(gè)響應,并且重複發送不(bù)包含限制條件的(de)請求。   假如接收到(dào)一(yī / yì /yí)個(gè)要(yào / yāo)求更新某個(gè)緩存條目的(de)304響應,那麽緩存系統必須更新整個(gè)條目以(yǐ)反映所有在(zài)響應中被更新的(de)字段的(de)值。
305被請求的(de)資源必須通過指定的(de)代理才能被訪問。Location 域中将給出(chū)指定的(de)代理所在(zài)的(de) URI 信息,接收者需要(yào / yāo)重複發送一(yī / yì /yí)個(gè)單獨的(de)請求,通過這(zhè)個(gè)代理才能訪問相應資源。隻有原始服務器才能建立305響應。   注意:RFC 2068中沒有明确305響應是(shì)爲(wéi / wèi)了(le/liǎo)重定向一(yī / yì /yí)個(gè)單獨的(de)請求,而(ér)且隻能被原始服務器建立。忽視這(zhè)些限制可能導緻嚴重的(de)安全後果。
306在(zài)最新版的(de)規範中,306狀态碼已經不(bù)再被使用。
307請求的(de)資源現在(zài)臨時(shí)從不(bù)同的(de)URI 響應請求。由于(yú)這(zhè)樣的(de)重定向是(shì)臨時(shí)的(de),客戶端應當繼續向原有地(dì / de)址發送以(yǐ)後的(de)請求。隻有在(zài)Cache-Control或Expires中進行了(le/liǎo)指定的(de)情況下,這(zhè)個(gè)響應才是(shì)可緩存的(de)。   新的(de)臨時(shí)性的(de)URI 應當在(zài)響應的(de) Location 域中返回。除非這(zhè)是(shì)一(yī / yì /yí)個(gè)HEAD 請求,否則響應的(de)實體中應當包含指向新的(de)URI 的(de)超鏈接及簡短說(shuō)明。因爲(wéi / wèi)部分浏覽器不(bù)能識别307響應,因此需要(yào / yāo)添加上(shàng)述必要(yào / yāo)信息以(yǐ)便用戶能夠理解并向新的(de) URI 發出(chū)訪問請求。   如果這(zhè)不(bù)是(shì)一(yī / yì /yí)個(gè)GET 或者 HEAD 請求,那麽浏覽器禁止自動進行重定向,除非得到(dào)用戶的(de)确認,因爲(wéi / wèi)請求的(de)條件可能因此發生變化。
4001、語義有誤,當前請求無法被服務器理解。除非進行修改,否則客戶端不(bù)應該重複提交這(zhè)個(gè)請求。   2、請求參數有誤。
401當前請求需要(yào / yāo)用戶驗證。該響應必須包含一(yī / yì /yí)個(gè)适用于(yú)被請求資源的(de) WWW-Authenticate 信息頭用以(yǐ)詢問用戶信息。客戶端可以(yǐ)重複提交一(yī / yì /yí)個(gè)包含恰當的(de) Authorization 頭信息的(de)請求。如果當前請求已經包含了(le/liǎo) Authorization 證書,那麽401響應代表着服務器驗證已經拒絕了(le/liǎo)那些證書。如果401響應包含了(le/liǎo)與前一(yī / yì /yí)個(gè)響應相同的(de)身份驗證詢問,且浏覽器已經至少嘗試了(le/liǎo)一(yī / yì /yí)次驗證,那麽浏覽器應當向用戶展示響應中包含的(de)實體信息,因爲(wéi / wèi)這(zhè)個(gè)實體信息中可能包含了(le/liǎo)相關診斷信息。參見RFC 2617。
402該狀态碼是(shì)爲(wéi / wèi)了(le/liǎo)将來(lái)可能的(de)需求而(ér)預留的(de)。
403服務器已經理解請求,但是(shì)拒絕執行它。與401響應不(bù)同的(de)是(shì),身份驗證并不(bù)能提供任何幫助,而(ér)且這(zhè)個(gè)請求也(yě)不(bù)應該被重複提交。如果這(zhè)不(bù)是(shì)一(yī / yì /yí)個(gè) HEAD 請求,而(ér)且服務器希望能夠講清楚爲(wéi / wèi)何請求不(bù)能被執行,那麽就(jiù)應該在(zài)實體内描述拒絕的(de)原因。當然服務器也(yě)可以(yǐ)返回一(yī / yì /yí)個(gè)404響應,假如它不(bù)希望讓客戶端獲得任何信息。
404請求失敗,請求所希望得到(dào)的(de)資源未被在(zài)服務器上(shàng)發現。沒有信息能夠告訴用戶這(zhè)個(gè)狀況到(dào)底是(shì)暫時(shí)的(de)還是(shì)永久的(de)。假如服務器知道(dào)情況的(de)話,應當使用410狀态碼來(lái)告知舊資源因爲(wéi / wèi)某些内部的(de)配置機制問題,已經永久的(de)不(bù)可用,而(ér)且沒有任何可以(yǐ)跳轉的(de)地(dì / de)址。404這(zhè)個(gè)狀态碼被廣泛應用于(yú)當服務器不(bù)想揭示到(dào)底爲(wéi / wèi)何請求被拒絕或者沒有其他(tā)适合的(de)響應可用的(de)情況下。
405請求行中指定的(de)請求方法不(bù)能被用于(yú)請求相應的(de)資源。該響應必須返回一(yī / yì /yí)個(gè)Allow 頭信息用以(yǐ)表示出(chū)當前資源能夠接受的(de)請求方法的(de)列表。   鑒于(yú) PUT,DELETE 方法會對服務器上(shàng)的(de)資源進行寫操作,因而(ér)絕大(dà)部分的(de)網頁服務器都不(bù)支持或者在(zài)默認配置下不(bù)允許上(shàng)述請求方法,對于(yú)此類請求均會返回405錯誤。
406請求的(de)資源的(de)内容特性無法滿足請求頭中的(de)條件,因而(ér)無法生成響應實體。   除非這(zhè)是(shì)一(yī / yì /yí)個(gè) HEAD 請求,否則該響應就(jiù)應當返回一(yī / yì /yí)個(gè)包含可以(yǐ)讓用戶或者浏覽器從中選擇最合适的(de)實體特性以(yǐ)及地(dì / de)址列表的(de)實體。實體的(de)格式由 Content-Type 頭中定義的(de)媒體類型決定。浏覽器可以(yǐ)根據格式及自身能力自行作出(chū)最佳選擇。但是(shì),規範中并沒有定義任何作出(chū)此類自動選擇的(de)标準。
407與401響應類似,隻不(bù)過客戶端必須在(zài)代理服務器上(shàng)進行身份驗證。代理服務器必須返回一(yī / yì /yí)個(gè) Proxy-Authenticate 用以(yǐ)進行身份詢問。客戶端可以(yǐ)返回一(yī / yì /yí)個(gè) Proxy-Authorization 信息頭用以(yǐ)驗證。參見RFC 2617。
408請求超時(shí)。客戶端沒有在(zài)服務器預備等待的(de)時(shí)間内完成一(yī / yì /yí)個(gè)請求的(de)發送。客戶端可以(yǐ)随時(shí)再次提交這(zhè)一(yī / yì /yí)請求而(ér)無需進行任何更改。
409由于(yú)和(hé / huò)被請求的(de)資源的(de)當前狀态之(zhī)間存在(zài)沖突,請求無法完成。這(zhè)個(gè)代碼隻允許用在(zài)這(zhè)樣的(de)情況下才能被使用:用戶被認爲(wéi / wèi)能夠解決沖突,并且會重新提交新的(de)請求。該響應應當包含足夠的(de)信息以(yǐ)便用戶發現沖突的(de)源頭。   沖突通常發生于(yú)對 PUT 請求的(de)處理中。例如,在(zài)采用版本檢查的(de)環境下,某次 PUT 提交的(de)對特定資源的(de)修改請求所附帶的(de)版本信息與之(zhī)前的(de)某個(gè)(第三方)請求向沖突,那麽此時(shí)服務器就(jiù)應該返回一(yī / yì /yí)個(gè)409錯誤,告知用戶請求無法完成。此時(shí),響應實體中很可能會包含兩個(gè)沖突版本之(zhī)間的(de)差異比較,以(yǐ)便用戶重新提交歸并以(yǐ)後的(de)新版本。
410被請求的(de)資源在(zài)服務器上(shàng)已經不(bù)再可用,而(ér)且沒有任何已知的(de)轉發地(dì / de)址。這(zhè)樣的(de)狀況應當被認爲(wéi / wèi)是(shì)永久性的(de)。如果可能,擁有鏈接編輯功能的(de)客戶端應當在(zài)獲得用戶許可後删除所有指向這(zhè)個(gè)地(dì / de)址的(de)引用。如果服務器不(bù)知道(dào)或者無法确定這(zhè)個(gè)狀況是(shì)否是(shì)永久的(de),那麽就(jiù)應該使用404狀态碼。除非額外說(shuō)明,否則這(zhè)個(gè)響應是(shì)可緩存的(de)。   410響應的(de)目的(de)主要(yào / yāo)是(shì)幫助網站管理員維護網站,通知用戶該資源已經不(bù)再可用,并且服務器擁有者希望所有指向這(zhè)個(gè)資源的(de)遠端連接也(yě)被删除。這(zhè)類事件在(zài)限時(shí)、增值服務中很普遍。同樣,410響應也(yě)被用于(yú)通知客戶端在(zài)當前服務器站點上(shàng),原本屬于(yú)某個(gè)個(gè)人(rén)的(de)資源已經不(bù)再可用。當然,是(shì)否需要(yào / yāo)把所有永久不(bù)可用的(de)資源标記爲(wéi / wèi)'410 Gone',以(yǐ)及是(shì)否需要(yào / yāo)保持此标記多長時(shí)間,完全取決于(yú)服務器擁有者。
411服務器拒絕在(zài)沒有定義 Content-Length 頭的(de)情況下接受請求。在(zài)添加了(le/liǎo)表明請求消息體長度的(de)有效 Content-Length 頭之(zhī)後,客戶端可以(yǐ)再次提交該請求。
412服務器在(zài)驗證在(zài)請求的(de)頭字段中給出(chū)先決條件時(shí),沒能滿足其中的(de)一(yī / yì /yí)個(gè)或多個(gè)。這(zhè)個(gè)狀态碼允許客戶端在(zài)獲取資源時(shí)在(zài)請求的(de)元信息(請求頭字段數據)中設置先決條件,以(yǐ)此避免該請求方法被應用到(dào)其希望的(de)内容以(yǐ)外的(de)資源上(shàng)。
413服務器拒絕處理當前請求,因爲(wéi / wèi)該請求提交的(de)實體數據大(dà)小超過了(le/liǎo)服務器願意或者能夠處理的(de)範圍。此種情況下,服務器可以(yǐ)關閉連接以(yǐ)免客戶端繼續發送此請求。   如果這(zhè)個(gè)狀況是(shì)臨時(shí)的(de),服務器應當返回一(yī / yì /yí)個(gè) Retry-After 的(de)響應頭,以(yǐ)告知客戶端可以(yǐ)在(zài)多少時(shí)間以(yǐ)後重新嘗試。
414請求的(de)URI 長度超過了(le/liǎo)服務器能夠解釋的(de)長度,因此服務器拒絕對該請求提供服務。這(zhè)比較少見,通常的(de)情況包括:   本應使用POST方法的(de)表單提交變成了(le/liǎo)GET方法,導緻查詢字符串(Query String)過長。   重定向URI “黑洞”,例如每次重定向把舊的(de) URI 作爲(wéi / wèi)新的(de) URI 的(de)一(yī / yì /yí)部分,導緻在(zài)若幹次重定向後 URI 超長。   客戶端正在(zài)嘗試利用某些服務器中存在(zài)的(de)安全漏洞攻擊服務器。這(zhè)類服務器使用固定長度的(de)緩沖讀取或操作請求的(de) URI,當 GET 後的(de)參數超過某個(gè)數值後,可能會産生緩沖區溢出(chū),導緻任意代碼被執行[1]。沒有此類漏洞的(de)服務器,應當返回414狀态碼。
415對于(yú)當前請求的(de)方法和(hé / huò)所請求的(de)資源,請求中提交的(de)實體并不(bù)是(shì)服務器中所支持的(de)格式,因此請求被拒絕。
416如果請求中包含了(le/liǎo) Range 請求頭,并且 Range 中指定的(de)任何數據範圍都與當前資源的(de)可用範圍不(bù)重合,同時(shí)請求中又沒有定義 If-Range 請求頭,那麽服務器就(jiù)應當返回416狀态碼。   假如 Range 使用的(de)是(shì)字節範圍,那麽這(zhè)種情況就(jiù)是(shì)指請求指定的(de)所有數據範圍的(de)首字節位置都超過了(le/liǎo)當前資源的(de)長度。服務器也(yě)應當在(zài)返回416狀态碼的(de)同時(shí),包含一(yī / yì /yí)個(gè) Content-Range 實體頭,用以(yǐ)指明當前資源的(de)長度。這(zhè)個(gè)響應也(yě)被禁止使用 multipart/byteranges 作爲(wéi / wèi)其 Content-Type。
417在(zài)請求頭 Expect 中指定的(de)預期内容無法被服務器滿足,或者這(zhè)個(gè)服務器是(shì)一(yī / yì /yí)個(gè)代理服務器,它有明顯的(de)證據證明在(zài)當前路由的(de)下一(yī / yì /yí)個(gè)節點上(shàng),Expect 的(de)内容無法被滿足。
421從當前客戶端所在(zài)的(de)IP地(dì / de)址到(dào)服務器的(de)連接數超過了(le/liǎo)服務器許可的(de)最大(dà)範圍。通常,這(zhè)裏的(de)IP地(dì / de)址指的(de)是(shì)從服務器上(shàng)看到(dào)的(de)客戶端地(dì / de)址(比如用戶的(de)網關或者代理服務器地(dì / de)址)。在(zài)這(zhè)種情況下,連接數的(de)計算可能涉及到(dào)不(bù)止一(yī / yì /yí)個(gè)終端用戶。
422從當前客戶端所在(zài)的(de)IP地(dì / de)址到(dào)服務器的(de)連接數超過了(le/liǎo)服務器許可的(de)最大(dà)範圍。通常,這(zhè)裏的(de)IP地(dì / de)址指的(de)是(shì)從服務器上(shàng)看到(dào)的(de)客戶端地(dì / de)址(比如用戶的(de)網關或者代理服務器地(dì / de)址)。在(zài)這(zhè)種情況下,連接數的(de)計算可能涉及到(dào)不(bù)止一(yī / yì /yí)個(gè)終端用戶。
422請求格式正确,但是(shì)由于(yú)含有語義錯誤,無法響應。(RFC 4918 WebDAV)423 Locked   當前資源被鎖定。(RFC 4918 WebDAV)
424由于(yú)之(zhī)前的(de)某個(gè)請求發生的(de)錯誤,導緻當前請求失敗,例如 PROPPATCH。(RFC 4918 WebDAV)
425在(zài)WebDav Advanced Collections 草案中定義,但是(shì)未出(chū)現在(zài)《WebDAV 順序集協議》(RFC 3658)中。
426客戶端應當切換到(dào)TLS/1.0。(RFC 2817)
449由微軟擴展,代表請求應當在(zài)執行完适當的(de)操作後進行重試。
500服務器遇到(dào)了(le/liǎo)一(yī / yì /yí)個(gè)未曾預料的(de)狀況,導緻了(le/liǎo)它無法完成對請求的(de)處理。一(yī / yì /yí)般來(lái)說(shuō),這(zhè)個(gè)問題都會在(zài)服務器的(de)程序碼出(chū)錯時(shí)出(chū)現。
501服務器不(bù)支持當前請求所需要(yào / yāo)的(de)某個(gè)功能。當服務器無法識别請求的(de)方法,并且無法支持其對任何資源的(de)請求。
502作爲(wéi / wèi)網關或者代理工作的(de)服務器嘗試執行請求時(shí),從上(shàng)遊服務器接收到(dào)無效的(de)響應。
503由于(yú)臨時(shí)的(de)服務器維護或者過載,服務器當前無法處理請求。這(zhè)個(gè)狀況是(shì)臨時(shí)的(de),并且将在(zài)一(yī / yì /yí)段時(shí)間以(yǐ)後恢複。如果能夠預計延遲時(shí)間,那麽響應中可以(yǐ)包含一(yī / yì /yí)個(gè) Retry-After 頭用以(yǐ)标明這(zhè)個(gè)延遲時(shí)間。如果沒有給出(chū)這(zhè)個(gè) Retry-After 信息,那麽客戶端應當以(yǐ)處理500響應的(de)方式處理它。   注意:503狀态碼的(de)存在(zài)并不(bù)意味着服務器在(zài)過載的(de)時(shí)候必須使用它。某些服務器隻不(bù)過是(shì)希望拒絕客戶端的(de)連接。
504作爲(wéi / wèi)網關或者代理工作的(de)服務器嘗試執行請求時(shí),未能及時(shí)從上(shàng)遊服務器(URI标識出(chū)的(de)服務器,例如HTTP、FTP、LDAP)或者輔助服務器(例如DNS)收到(dào)響應。   注意:某些代理服務器在(zài)DNS查詢超時(shí)時(shí)會返回400或者500錯誤
505服務器不(bù)支持,或者拒絕支持在(zài)請求中使用的(de) HTTP 版本。這(zhè)暗示着服務器不(bù)能或不(bù)願使用與客戶端相同的(de)版本。響應中應當包含一(yī / yì /yí)個(gè)描述了(le/liǎo)爲(wéi / wèi)何版本不(bù)被支持以(yǐ)及服務器支持哪些協議的(de)實體。
506由《透明内容協商協議》(RFC 2295)擴展,代表服務器存在(zài)内部配置錯誤:被請求的(de)協商變元資源被配置爲(wéi / wèi)在(zài)透明内容協商中使用自己,因此在(zài)一(yī / yì /yí)個(gè)協商處理中不(bù)是(shì)一(yī / yì /yí)個(gè)合适的(de)重點。
507服務器無法存儲完成請求所必須的(de)内容。這(zhè)個(gè)狀況被認爲(wéi / wèi)是(shì)臨時(shí)的(de)。WebDAV (RFC 4918)
509服務器達到(dào)帶寬限制。這(zhè)不(bù)是(shì)一(yī / yì /yí)個(gè)官方的(de)狀态碼,但是(shì)仍被廣泛使用。
510獲取資源所需要(yào / yāo)的(de)策略并沒有沒滿足。(RFC 2774)


來(lái)源:oschina