摘(zhāi)要:一(yī),定義(yì)HTTP狀態(tài)碼(HTTP Status Code)是用以表示網頁(yè)服務器HTTP響應(yīng)狀態的(dí)3位數字代(dài)碼(mǎ)。它由(yóu) RFC 2616 規(guī)範(fàn)定義(yì)的,並(bìng)得(dé)到(dào)RFC 2518,RFC 2817,RFC 2295...
HTTP狀(zhuàng)態(tài)碼(HTTP Status Code)是用以(yǐ)表示(shì)網(wǎng)頁(yè)服(fú)務器(qì)HTTP響(xiǎng)應狀態的3位(wèi)數(shù)字(zì)代(dài)碼(mǎ)。它(tā)由(yóu) RFC 2616 規範(fàn)定(dìng)義的,並得(dé)到RFC 2518,RFC 2817,RFC 2295,RFC 2774,RFC 4918等(děng)規範擴(kuò)展(zhǎn)。
所有狀態碼的(dí)第一個(gè)數字(zì)代表了響(xiǎng)應的五種狀(zhuàng)態之一(yī)。
二(èr),消(xiāo)息(xī)(1字頭)
這(zhè)一類型(xíng)的狀(zhuàng)態(tài)碼,代表(biǎo)請求(qiú)已(yǐ)被(bèi)接受,需要繼(jì)續處理(lǐ)。這(zhè)類(lèi)響應是(shì)臨時響應,隻(zhī)包(bāo)含(hán)狀(zhuàng)態(tài)行(háng)和某些(xiē)可選的(dí)響應頭信息,並(bìng)以空(kōng)行結(jié)束(shù)。由於 HTTP/1.0 協議中沒有定(dìng)義(yì)任何 1xx 狀態碼,所(suǒ)以除非在(zài)某些(xiē)試驗條(tiáo)件(jiàn)下(xià),服(fú)務(wù)器禁(jīn)止向此(cǐ)類客戶(hù)端發送 1xx 響(xiǎng)應。
100 Continue
客戶端(duān)應當(dāng)繼續發送請求。這個臨(lín)時(shí)響應是用(yòng)來通(tōng)知(zhī)客戶端它(tā)的部分(fēn)請求已經(jīng)被服務(wù)器接收,且仍未(wèi)被(bèi)拒絕。客戶(hù)端應(yīng)當繼續發送(sòng)請求(qiú)的剩(shèng)餘部分,或者如(rú)果請求已(yǐ)經完成(chéng),忽略(lüè)這個響(xiǎng)應。服(fú)務器必須在請求完(wán)成(chéng)後(hòu)向客戶端發送一(yī)個最終響應。
101 Switching Protocols
服務器已(yǐ)經理(lǐ)解了客戶(hù)端的請求,並(bìng)將(jiāng)通(tōng)過Upgrade 消息(xī)頭通知(zhī)客戶端(duān)采用(yòng)不同(tóng)的(dí)協議(yì)來(lái)完成(chéng)這個(gè)請(qǐng)求(qiú)。在(zài)發送(sòng)完這(zhè)個響應(yīng)最(zuì)後的空行(háng)後,服務器(qì)將會切(qiē)換到(dào)在Upgrade 消息(xī)頭(tóu)中(zhōng)定(dìng)義(yì)的(dí)那(nà)些協議(yì)。
隻有(yǒu)在切換(huàn)新的(dí)協議(yì)更有好(hǎo)處的時(shí)候(hòu)才應(yīng)該(gāi)采(cǎi)取(qǔ)類似措(cuò)施(shī)。例如,切換到(dào)新(xīn)的(dí)HTTP 版(bǎn)本比(bǐ)舊版本更有(yǒu)優勢,或者切(qiē)換(huàn)到(dào)一個實(shí)時(shí)且同步的(dí)協議以傳送(sòng)利用此類特性的資源。
102 Processing
由WebDAV(RFC 2518)擴展(zhǎn)的狀(zhuàng)態(tài)碼(mǎ),代(dài)表(biǎo)處理將被繼續(xù)執(zhí)行。
三(sān),成功(2字(zì)頭)
這一類(lèi)型(xíng)的狀態碼,代(dài)表請求已(yǐ)成功被(bèi)服務器接(jiē)收,理(lǐ)解,並(bìng)接受(shòu)。
200 OK
請(qǐng)求已(yǐ)成功(gōng),請(qǐng)求(qiú)所希(xī)望(wàng)的(dí)響應(yīng)頭或數據(jù)體將(jiāng)隨(suí)此(cǐ)響應(yīng)返回。
201 Created
請(qǐng)求已(yǐ)經(jīng)被實現(xiàn),而且(qiě)有一(yī)個新的資源已經依(yī)據(jù)請(qǐng)求的(dí)需要(yào)而(ér)建立(lì),且(qiě)其 URI 已經隨Location 頭信息(xī)返(fǎn)回。假如需(xū)要(yào)的資(zī)源(yuán)無法(fǎ)及(jí)時建立的(dí)話(huà),應(yīng)當返回 '202 Accepted'。
202 Accepted
服(fú)務器已接受(shòu)請求(qiú),但(dàn)尚未處(chǔ)理(lǐ)。正如(rú)它可能被(bèi)拒絕一樣,最終該(gāi)請求可(kě)能會也(yě)可能不(bù)會(huì)被執(zhí)行。在異(yì)步(bù)操作(zuò)的場合下(xià),沒有比發(fā)送這個狀態(tài)碼更方(fāng)便的(dí)做法了(liǎo)。
返回(huí)202狀(zhuàng)態碼(mǎ)的響應的目(mù)的是允許服(fú)務器接受(shòu)其他過程的請求(例如某(mǒu)個每天(tiān)隻執行一次的(dí)基於批處(chǔ)理的(dí)操(cāo)作(zuò)),而不必讓客戶(hù)端一直保持(chí)與服務器的(dí)連接(jiē)直到批處理操作全部(bù)完(wán)成。在接受請(qǐng)求處理並返回202狀(zhuàng)態(tài)碼的響應應當在(zài)返回的實體(tǐ)中包(bāo)含一(yī)些指示(shì)處(chǔ)理(lǐ)當(dāng)前狀態的(dí)信息,以(yǐ)及(jí)指(zhǐ)向處理狀態(tài)監(jiān)視器或(huò)狀態(tài)預測的(dí)指針,以便用(yòng)戶(hù)能(néng)夠(gòu)估計操(cāo)作(zuò)是(shì)否已經完成(chéng)。
203 Non-Authoritative Information
服(fú)務器已成(chéng)功處(chǔ)理了請求,但返(fǎn)回的(dí)實體(tǐ)頭部(bù)元(yuán)信(xìn)息不(bù)是在(zài)原(yuán)始服(fú)務器(qì)上有效的(dí)確(què)定集合,而是(shì)來自(zì)本地或(huò)者第(dì)三(sān)方(fāng)的拷(kǎo)貝。當前的(dí)信息可(kě)能是(shì)原(yuán)始(shǐ)版本的子(zǐ)集(jí)或者超(chāo)集。例(lì)如,包(bāo)含(hán)資(zī)源的(dí)元數(shù)據(jù)可能(néng)導(dǎo)致原(yuán)始(shǐ)服務器知(zhī)道元信息(xī)的超級。使(shǐ)用(yòng)此(cǐ)狀態(tài)碼不(bù)是(shì)必(bì)須的(dí),而且(qiě)隻有在響應(yīng)不(bù)使用此狀(zhuàng)態碼便(biàn)會(huì)返回200 OK的情況(kuàng)下才是合(hé)適的。
204 No Content
服務(wù)器(qì)成功處理了請(qǐng)求(qiú),但不需要返回任(rèn)何實體內容,並且希望(wàng)返(fǎn)回(huí)更新了的元(yuán)信(xìn)息。響(xiǎng)應可(kě)能通過(guò)實(shí)體(tǐ)頭(tóu)部的形式,返回(huí)新(xīn)的(dí)或更新(xīn)後的元信息。如(rú)果存(cún)在這些(xiē)頭部信息,則(zé)應當(dāng)與(yǔ)所(suǒ)請求(qiú)的變(biàn)量相(xiāng)呼(hū)應。
如(rú)果(guǒ)客(kè)戶端(duān)是瀏覽(lǎn)器的話(huà),那麼(mó)用戶(hù)瀏覽器應(yīng)保留發(fā)送了(liǎo)該(gāi)請(qǐng)求(qiú)的(dí)頁麵(miàn),而不產生(shēng)任何文(wén)檔(dàng)視(shì)圖(tú)上的變化,即使按(àn)照規範新的或(huò)更新後的(dí)元信(xìn)息應當被(bèi)應用(yòng)到用戶瀏(liú)覽器活(huó)動(dòng)視圖中的文檔。
由於(yú)204響應被(bèi)禁止(zhǐ)包含任何消(xiāo)息體(tǐ),因此它始終以(yǐ)消息頭(tóu)後的(dí)第(dì)一個空行結尾(wěi)。
205 Reset Content
服(fú)務(wù)器(qì)成功(gōng)處(chǔ)理了(liǎo)請求,且沒有(yǒu)返(fǎn)回(huí)任何(hé)內容。但是與204響應不同,返(fǎn)回(huí)此(cǐ)狀(zhuàng)態(tài)碼(mǎ)的響應要求(qiú)請求者(zhě)重置(zhì)文(wén)檔(dàng)視圖(tú)。該響(xiǎng)應(yīng)主要(yào)是被用於接受用戶輸(shū)入(rù)後(hòu),立(lì)即(jí)重(zhòng)置(zhì)表單(dān),以便用(yòng)戶(hù)能(néng)夠(gòu)輕鬆地開(kāi)始另一次(cì)輸(shū)入(rù)。
與(yǔ)204響應一樣,該響(xiǎng)應也被禁止包含任何(hé)消息體(tǐ),且(qiě)以(yǐ)消息頭(tóu)後的第一個空(kōng)行(háng)結束。
206 Partial Content
服務器(qì)已經成(chéng)功處理了(liǎo)部(bù)分 GET 請求。類(lèi)似於 FlashGet 或者(zhě)迅雷這類的(dí) HTTP下載(zǎi)工具都(dū)是使(shǐ)用此類(lèi)響(xiǎng)應實(shí)現斷點續傳或者將一個(gè)大(dà)文檔分(fēn)解(jiě)為多個下(xià)載段同時下載。
該(gāi)請求(qiú)必須包含 Range 頭(tóu)信息(xī)來指(zhǐ)示客(kè)戶(hù)端希望(wàng)得(dé)到的(dí)內容(róng)範圍(wéi),並且可(kě)能(néng)包含 If-Range 來作(zuò)為(wéi)請(qǐng)求(qiú)條件(jiàn)。
響(xiǎng)應必須(xū)包含如下(xià)的(dí)頭(tóu)部(bù)域:
Content-Range 用以(yǐ)指示(shì)本次(cì)響(xiǎng)應(yīng)中(zhōng)返(fǎn)回的(dí)內容(róng)的(dí)範圍;如(rú)果(guǒ)是 Content-Type 為 multIPart/byteranges 的多段(duàn)下載,則每(měi)一(yī) multipart 段(duàn)中都(dū)應包含(hán) Content-Range 域(yù)用(yòng)以指(zhǐ)示本段(duàn)的內容範(fàn)圍(wéi)。假如響應中(zhōng)包含(hán) Content-Length,那麼(mó)它的數(shù)值(zhí)必須匹(pǐ)配(pèi)它返回(huí)的內容(róng)範(fàn)圍的真實(shí)字節數(shù)。
Date
ETag 和/或 Content-Location,假如(rú)同(tóng)樣的(dí)請求本應(yīng)該(gāi)返(fǎn)回(huí)200響(xiǎng)應。
Expires, Cache-Control,和/或 Vary,假如其值(zhí)可(kě)能與之(zhī)前(qián)相(xiāng)同(tóng)變量的(dí)其他響應對應(yīng)的值不(bù)同(tóng)的話(huà)。
假(jiǎ)如(rú)本(běn)響(xiǎng)應(yīng)請求使(shǐ)用了(liǎo) If-Range 強緩存驗證,那(nà)麼(mó)本次(cì)響應(yīng)不(bù)應(yīng)該包(bāo)含其(qí)他實(shí)體頭(tóu);假如本(běn)響應的請求使用了 If-Range 弱緩存驗證,那麼(mó)本(běn)次(cì)響(xiǎng)應(yīng)禁止包含其他實體頭;這避免(miǎn)了緩存的實(shí)體(tǐ)內容(róng)和(hé)更(gēng)新了(liǎo)的(dí)實(shí)體頭(tóu)信息(xī)之間(jiān)的不(bù)一致(zhì)。否(fǒu)則,本響應(yīng)就(jiù)應當(dāng)包含(hán)所(suǒ)有(yǒu)本(běn)應(yīng)該返(fǎn)回(huí)200響應(yīng)中應當返回的所有實體(tǐ)頭部(bù)域。
假(jiǎ)如 ETag 或 Last-Modified 頭部(bù)不能精確匹配的話(huà),則(zé)客戶(hù)端(duān)緩存應禁(jīn)止(zhǐ)將(jiāng)206響(xiǎng)應返(fǎn)回的內容與之(zhī)前任(rèn)何(hé)緩存過(guò)的(dí)內容組(zǔ)合在一(yī)起。
任(rèn)何不(bù)支持(chí) Range 以(yǐ)及 Content-Range 頭的緩存(cún)都禁(jīn)止(zhǐ)緩(huǎn)存(cún)206響應返(fǎn)回(huí)的內容(róng)。
207 Multi-Status
由WebDAV(RFC 2518)擴(kuò)展(zhǎn)的(dí)狀(zhuàng)態(tài)碼(mǎ),代表之後(hòu)的消(xiāo)息體將是(shì)一(yī)個XML消息,並且(qiě)可能依照(zhào)之(zhī)前(qián)子(zǐ)請求數量(liáng)的(dí)不(bù)同,包(bāo)含一係列(liè)獨(dú)立的(dí)響應代碼。
四,重(zhòng)定(dìng)向(3字(zì)頭)
這類(lèi)狀(zhuàng)態碼代表需(xū)要客戶端采取(qǔ)進(jìn)一(yī)步的操作(zuò)才能(néng)完成(chéng)請求。通(tōng)常,這些(xiē)狀態(tài)碼用來(lái)重定(dìng)向(xiàng),後(hòu)續的請(qǐng)求地址(重定向目(mù)標(biāo))在(zài)本次響(xiǎng)應(yīng)的 Location 域(yù)中指(zhǐ)明。
當(dāng)且(qiě)僅(jǐn)當後續(xù)的(dí)請(qǐng)求(qiú)所使用(yòng)的方法(fǎ)是(shì) GET 或(huò)者(zhě) HEAD 時,用戶(hù)瀏覽器(qì)才可以在(zài)沒(méi)有用戶介入的(dí)情況下(xià)自動提(tí)交所(suǒ)需要(yào)的後續請(qǐng)求(qiú)。客戶(hù)端(duān)應當自(zì)動(dòng)監測(cè)無(wú)限(xiàn)循環重定(dìng)向(例(lì)如(rú):A->A,或者A->B->C->A),因為這(zhè)會(huì)導(dǎo)致服務器(qì)和客(kè)戶端大量不必(bì)要的資(zī)源(yuán)消耗(hào)。按(àn)照 HTTP/1.0 版規(guī)範的(dí)建議(yì),瀏(liú)覽(lǎn)器不(bù)應自(zì)動訪(fǎng)問(wèn)超(chāo)過5次的重定(dìng)向(xiàng)。
300 Multiple Choices
被請(qǐng)求的資(zī)源(yuán)有(yǒu)一係列可供選擇的回(huí)饋信息,每個(gè)都(dū)有自己特定(dìng)的地址(zhǐ)和瀏覽(lǎn)器驅動(dòng)的商議(yì)信息。用戶或瀏覽(lǎn)器能(néng)夠自行選擇一(yī)個首選的地址進(jìn)行(háng)重定向。
除非(fēi)這(zhè)是(shì)一(yī)個(gè) HEAD 請(qǐng)求,否則(zé)該(gāi)響應(yīng)應當包(bāo)括一個(gè)資源(yuán)特(tè)性及地址的(dí)列(liè)表的(dí)實體(tǐ),以便用戶或瀏(liú)覽(lǎn)器從(cóng)中(zhōng)選擇(zé)最合適的(dí)重(zhòng)定(dìng)向(xiàng)地址(zhǐ)。這個實體的格式由(yóu) Content-Type 定(dìng)義的格式所決(jué)定。瀏(liú)覽(lǎn)器可能根(gēn)據響應(yīng)的格式(shì)以及(jí)瀏覽器自身(shēn)能(néng)力(lì),自(zì)動(dòng)作(zuò)出(chū)最合(hé)適的(dí)選擇。當然(rán),RFC 2616規範(fàn)並沒有(yǒu)規(guī)定這(zhè)樣的自動選(xuǎn)擇該如何(hé)進行。
如果服(fú)務器本身已(yǐ)經(jīng)有了(liǎo)首(shǒu)選的(dí)回饋選(xuǎn)擇(zé),那麼在 Location 中應(yīng)當指明這(zhè)個回饋的 URI;瀏覽器可能(néng)會(huì)將(jiāng)這個(gè) Location 值作(zuò)為自動(dòng)重定(dìng)向的(dí)地(dì)址(zhǐ)。此外(wài),除非額外指(zhǐ)定(dìng),否則這個響(xiǎng)應(yīng)也是(shì)可(kě)緩存的。
301 Moved Permanently
被請(qǐng)求(qiú)的資(zī)源已永久(jiǔ)移(yí)動到新位置,並且將(jiāng)來(lái)任(rèn)何(hé)對(duì)此資源的(dí)引用都(dū)應該使(shǐ)用本響應返回(huí)的若幹個 URI 之(zhī)一。如(rú)果可能(néng),擁有鏈接編輯(jí)功(gōng)能的客(kè)戶端應(yīng)當自動(dòng)把(bǎ)請(qǐng)求(qiú)的地(dì)址修改為(wéi)從(cóng)服務器反饋(kuì)回來(lái)的(dí)地址。除非額外指定(dìng),否則這個響應(yīng)也是(shì)可緩(huǎn)存(cún)的。
新的(dí)永(yǒng)久性的URI 應(yīng)當在響應的 Location 域中(zhōng)返回。除非這是(shì)一(yī)個(gè) HEAD 請求,否(fǒu)則響(xiǎng)應(yīng)的(dí)實體中(zhōng)應(yīng)當包(bāo)含(hán)指(zhǐ)向(xiàng)新(xīn)的 URI 的超鏈(liàn)接及簡短說明(míng)。
如(rú)果這不是(shì)一(yī)個 GET 或者(zhě) HEAD 請求,因(yīn)此(cǐ)瀏(liú)覽(lǎn)器(qì)禁止自動進行重定向(xiàng),除非得到用戶的確(què)認,因為請(qǐng)求(qiú)的(dí)條件可能因此(cǐ)發生變(biàn)化。
注(zhù)意:對於(yú)某些使用 HTTP/1.0 協議(yì)的(dí)瀏覽器,當(dāng)它(tā)們發(fā)送的 POST 請(qǐng)求得到(dào)了一個301響應的話,接下來(lái)的(dí)重(zhòng)定向請(qǐng)求(qiú)將會變成 GET 方(fāng)式(shì)。
302 Found
請(qǐng)求的資(zī)源(yuán)現(xiàn)在臨(lín)時(shí)從(cóng)不同的 URI 響應(yīng)請求。由於這(zhè)樣的重(zhòng)定向是臨時的,客戶(hù)端(duān)應當(dāng)繼(jì)續向(xiàng)原有(yǒu)地(dì)址發送以後的請(qǐng)求。隻(zhī)有(yǒu)在Cache-Control或(huò)Expires中(zhōng)進行了指定的情況(kuàng)下(xià),這個(gè)響應(yīng)才(cái)是(shì)可緩(huǎn)存(cún)的。
新的(dí)臨(lín)時性的URI 應當(dāng)在響應的(dí) Location 域中返回。除(chú)非這是一個(gè) HEAD 請求(qiú),否(fǒu)則響(xiǎng)應(yīng)的實體中(zhōng)應當包(bāo)含(hán)指向(xiàng)新的(dí) URI 的(dí)超(chāo)鏈(liàn)接及簡(jiǎn)短(duǎn)說(shuō)明。
如果這不是一(yī)個 GET 或者(zhě) HEAD 請(qǐng)求(qiú),那(nà)麼瀏覽器禁(jīn)止(zhǐ)自動進行(háng)重定向,除非得到(dào)用(yòng)戶的(dí)確(què)認(rèn),因為請(qǐng)求的條件(jiàn)可能(néng)因此(cǐ)發(fā)生變(biàn)化。
注意(yì):雖(suī)然RFC 1945和(hé)RFC 2068規(guī)範(fàn)不允(yǔn)許(xǔ)客戶(hù)端(duān)在重(zhòng)定(dìng)向時改變(biàn)請求的(dí)方法,但(dàn)是很多現存(cún)的瀏覽器將302響應(yīng)視作為(wéi)303響應(yīng),並且使用 GET 方(fāng)式訪(fǎng)問在 Location 中規定的(dí) URI,而無視原(yuán)先(xiān)請(qǐng)求(qiú)的(dí)方(fāng)法(fǎ)。狀態(tài)碼(mǎ)303和(hé)307被添(tiān)加(jiā)了進來,用以明確(què)服(fú)務器期待(dài)客戶(hù)端(duān)進(jìn)行何種(zhǒng)反應(yīng)。
303 See Other
對應(yīng)當前(qián)請求的(dí)響(xiǎng)應可以(yǐ)在另一個(gè) URI 上(shàng)被找到(dào),而(ér)且客(kè)戶(hù)端(duān)應當(dāng)采用 GET 的(dí)方式訪問那個(gè)資源。這(zhè)個(gè)方法(fǎ)的存(cún)在(zài)主(zhǔ)要是(shì)為(wéi)了(liǎo)允許由腳本激(jī)活的(dí)POST請(qǐng)求輸(shū)出重定(dìng)向到一(yī)個新的資源(yuán)。這個新(xīn)的(dí) URI 不是原始資(zī)源(yuán)的替(tì)代引用。同(tóng)時,303響(xiǎng)應禁止被緩存。當然(rán),第二個請(qǐng)求(qiú)(重定向)可能被(bèi)緩(huǎn)存。
新(xīn)的(dí)URI 應(yīng)當(dāng)在響(xiǎng)應的 Location 域中返回(huí)。除(chú)非這是(shì)一(yī)個(gè) HEAD 請(qǐng)求(qiú),否(fǒu)則(zé)響(xiǎng)應(yīng)的實(shí)體中應當包含(hán)指向新的 URI 的(dí)超(chāo)鏈(liàn)接(jiē)及簡短說明。
注意:許(xǔ)多(duō) HTTP/1.1 版以(yǐ)前的瀏覽器不能正確理解303狀態。如果(guǒ)需(xū)要考(kǎo)慮與這些瀏覽(lǎn)器(qì)之間的互動,302狀(zhuàng)態碼應該(gāi)可以勝(shèng)任(rèn),因(yīn)為大(dà)多(duō)數(shù)的瀏覽器處理302響(xiǎng)應時的(dí)方式恰恰就(jiù)是(shì)上述(shù)規(guī)範要求(qiú)客(kè)戶(hù)端(duān)處理(lǐ)303響(xiǎng)應時應當(dāng)做(zuò)的。
304 Not Modified
如果(guǒ)客戶(hù)端發送了一個帶條件的(dí) GET 請求且(qiě)該請求(qiú)已被(bèi)允(yǔn)許(xǔ),而文檔的內(nèi)容(自上(shàng)次(cì)訪問以來(lái)或者(zhě)根據請求(qiú)的條件(jiàn))並沒(méi)有(yǒu)改(gǎi)變,則(zé)服(fú)務(wù)器應當返回(huí)這個(gè)狀態碼(mǎ)。304響應禁(jīn)止包含消息(xī)體,因(yīn)此(cǐ)始(shǐ)終(zhōng)以消息頭後(hòu)的(dí)第一個空行結尾(wěi)。
該響應(yīng)必(bì)須(xū)包含(hán)以(yǐ)下的(dí)頭信息(xī):
Date,除(chú)非這(zhè)個(gè)服(fú)務器(qì)沒有時(shí)鐘。假(jiǎ)如(rú)沒有時(shí)鐘的服務器也(yě)遵守(shǒu)這些規則,那(nà)麼代理(lǐ)服(fú)務器(qì)以(yǐ)及客戶(hù)端可以自行將 Date 字段添(tiān)加到(dào)接(jiē)收(shōu)到的(dí)響應頭中去(正如RFC 2068中(zhōng)規定(dìng)的(dí)一樣(yàng)),緩存機製(zhì)將(jiāng)會(huì)正常工作。
ETag 和(hé)/或 Content-Location,假(jiǎ)如(rú)同(tóng)樣的請(qǐng)求(qiú)本應返(fǎn)回200響(xiǎng)應(yīng)。
Expires, Cache-Control,和/或Vary,假如(rú)其值可能與(yǔ)之(zhī)前(qián)相(xiāng)同(tóng)變(biàn)量(liáng)的其(qí)他響(xiǎng)應對(duì)應(yīng)的值(zhí)不(bù)同的話。
假(jiǎ)如本(běn)響(xiǎng)應請求使(shǐ)用了強緩存驗證,那(nà)麼本(běn)次(cì)響應不應該包(bāo)含(hán)其(qí)他實(shí)體頭(tóu);否(fǒu)則(zé)(例如(rú),某(mǒu)個帶條件的 GET 請求(qiú)使用了弱緩存(cún)驗證(zhèng)),本次響(xiǎng)應(yīng)禁止包含(hán)其(qí)他實(shí)體頭;這(zhè)避(bì)免了(liǎo)緩(huǎn)存了的實(shí)體內容和更新(xīn)了的(dí)實體頭信息(xī)之(zhī)間(jiān)的不一(yī)致(zhì)。
假如(rú)某(mǒu)個304響(xiǎng)應指(zhǐ)明了當(dāng)前某個實體沒(méi)有(yǒu)緩(huǎn)存(cún),那麼緩(huǎn)存係(xì)統必(bì)須(xū)忽視(shì)這(zhè)個(gè)響應,並(bìng)且重(zhòng)復(fù)發送不包含限製條(tiáo)件(jiàn)的請求(qiú)。
假如接(jiē)收(shōu)到一個要(yào)求(qiú)更(gēng)新某(mǒu)個(gè)緩(huǎn)存(cún)條(tiáo)目的304響(xiǎng)應,那麼緩(huǎn)存係統(tǒng)必(bì)須(xū)更新(xīn)整(zhěng)個條目以(yǐ)反(fǎn)映所(suǒ)有(yǒu)在(zài)響(xiǎng)應中被(bèi)更(gēng)新(xīn)的(dí)字(zì)段的(dí)值。
305 Use Proxy
被請求的資源必(bì)須通過指定的(dí)代理才(cái)能(néng)被訪問(wèn)。Location 域中(zhōng)將(jiāng)給出(chū)指(zhǐ)定的代理所在(zài)的 URI 信息,接收者(zhě)需(xū)要重(zhòng)復(fù)發送(sòng)一個單獨的請(qǐng)求(qiú),通(tōng)過這(zhè)個代理才(cái)能訪問(wèn)相(xiāng)應資源(yuán)。隻(zhī)有原始(shǐ)服務(wù)器(qì)才能建立(lì)305響(xiǎng)應(yīng)。
注(zhù)意(yì):RFC 2068中(zhōng)沒有(yǒu)明(míng)確(què)305響應(yīng)是(shì)為了(liǎo)重(zhòng)定向一個單獨的請求(qiú),而(ér)且(qiě)隻(zhī)能被(bèi)原始服務(wù)器(qì)建立(lì)。忽(hū)視(shì)這些限(xiàn)製可能導(dǎo)致(zhì)嚴重的安全後果。
306 Switch Proxy
在(zài)最新版的(dí)規範中(zhōng),306狀(zhuàng)態(tài)碼已(yǐ)經(jīng)不再(zài)被(bèi)使(shǐ)用。
307 Temporary Redirect
請(qǐng)求(qiú)的資源現(xiàn)在臨時從(cóng)不同的(dí)URI 響應(yīng)請求。由於(yú)這樣(yàng)的重(zhòng)定向是臨時的(dí),客(kè)戶端(duān)應當繼續(xù)向原有地址發(fā)送以後(hòu)的(dí)請求。隻(zhī)有在Cache-Control或Expires中進行了指(zhǐ)定的(dí)情況(kuàng)下,這個(gè)響(xiǎng)應才(cái)是(shì)可(kě)緩存的(dí)。
新的(dí)臨時(shí)性(xìng)的URI 應當在(zài)響應(yīng)的 Location 域(yù)中返回。除(chú)非這是一(yī)個(gè)HEAD 請求(qiú),否(fǒu)則響應的實(shí)體中應當(dāng)包含(hán)指(zhǐ)向新的(dí)URI 的(dí)超鏈(liàn)接及簡(jiǎn)短(duǎn)說明。因為部分瀏(liú)覽器不能識別(bié)307響應,因此需(xū)要(yào)添加(jiā)上述(shù)必要(yào)信(xìn)息以便用戶能夠理解並(bìng)向新(xīn)的 URI 發出(chū)訪問(wèn)請求。
如果這不是(shì)一個GET 或(huò)者 HEAD 請求,那(nà)麼瀏覽(lǎn)器禁(jīn)止自(zì)動進(jìn)行重(zhòng)定(dìng)向,除(chú)非得(dé)到用戶的(dí)確認,因為請求的(dí)條件可能(néng)因(yīn)此(cǐ)發生變化(huà)。
五(wǔ),請(qǐng)求錯誤(4字頭)
這(zhè)類的狀態碼(mǎ)代表了客戶(hù)端(duān)看(kàn)起來(lái)可能(néng)發(fā)生(shēng)了(liǎo)錯誤,妨礙了(liǎo)服務器(qì)的處理。除(chú)非響(xiǎng)應(yīng)的是(shì)一個 HEAD 請(qǐng)求,否則服(fú)務(wù)器(qì)就應(yīng)該(gāi)返回一(yī)個解釋當(dāng)前錯誤(wù)狀況(kuàng)的實體,以及(jí)這是臨時的還是永久(jiǔ)性的狀(zhuàng)況。這些狀(zhuàng)態碼適(shì)用於任何請(qǐng)求方法(fǎ)。瀏(liú)覽(lǎn)器(qì)應當(dāng)向用(yòng)戶(hù)顯示(shì)任何包含(hán)在此類錯(cuò)誤(wù)響(xiǎng)應(yīng)中的實體內容(róng)。
如(rú)果(guǒ)錯誤(wù)發生(shēng)時客戶(hù)端正在傳送(sòng)數(shù)據(jù),那麼使用(yòng)TCP的(dí)服務(wù)器實(shí)現應(yīng)當仔細(xì)確(què)保(bǎo)在關閉客(kè)戶(hù)端與(yǔ)服務(wù)器之間的(dí)連接之(zhī)前(qián),客戶端已經(jīng)收(shōu)到(dào)了包含(hán)錯誤信息(xī)的數(shù)據包(bāo)。如(rú)果客戶端在收(shōu)到錯(cuò)誤信(xìn)息後(hòu)繼續(xù)向服(fú)務器(qì)發送(sòng)數據,服務器的(dí)TCP棧將向客戶(hù)端發(fā)送(sòng)一個重置(zhì)數據(jù)包,以清除該(gāi)客(kè)戶(hù)端所有(yǒu)還(huán)未識別的輸入(rù)緩衝,以(yǐ)免這些數(shù)據被(bèi)服(fú)務器(qì)上的應用程序讀(dú)取並幹擾(rǎo)後(hòu)者(zhě)。
400 Bad Request
1,語義有誤,當前請求(qiú)無法被服務(wù)器理解。除非進行(háng)修(xiū)改,否(fǒu)則客戶端不(bù)應該重復(fù)提(tí)交這個(gè)請求(qiú)。
2,請(qǐng)求(qiú)參數有(yǒu)誤。
401 Unauthorized
當前(qián)請(qǐng)求需要(yào)用戶(hù)驗(yàn)證。該(gāi)響(xiǎng)應(yīng)必(bì)須包含一個(gè)適用於(yú)被(bèi)請(qǐng)求資(zī)源的 WWW-Authenticate 信息(xī)頭用(yòng)以(yǐ)詢(xún)問(wèn)用戶(hù)信(xìn)息。客(kè)戶(hù)端可(kě)以重(zhòng)復提(tí)交一個(gè)包(bāo)含恰當的(dí) Authorization 頭(tóu)信(xìn)息的請(qǐng)求(qiú)。如果(guǒ)當前請求(qiú)已經(jīng)包含了 Authorization 證(zhèng)書,那(nà)麼(mó)401響(xiǎng)應(yīng)代表著(zhuó)服務(wù)器驗(yàn)證已(yǐ)經(jīng)拒絕(jué)了(liǎo)那(nà)些證(zhèng)書(shū)。如果(guǒ)401響應包含(hán)了與前(qián)一(yī)個響應相同(tóng)的身份驗證(zhèng)詢問(wèn),且(qiě)瀏(liú)覽器已經至少嘗試了(liǎo)一次(cì)驗(yàn)證(zhèng),那(nà)麼(mó)瀏(liú)覽(lǎn)器(qì)應當(dāng)向(xiàng)用(yòng)戶(hù)展示(shì)響應(yīng)中(zhōng)包含的(dí)實體信(xìn)息,因(yīn)為(wéi)這個實(shí)體信息(xī)中(zhōng)可(kě)能包(bāo)含了(liǎo)相(xiāng)關診斷(duàn)信息。參見RFC 2617。
402 Payment Required
該(gāi)狀態碼(mǎ)是為(wéi)了將來可能(néng)的(dí)需求而(ér)預(yù)留(liú)的(dí)。
403 Forbidden
服務器(qì)已(yǐ)經(jīng)理(lǐ)解請求,但是拒(jù)絕執(zhí)行它(tā)。與(yǔ)401響(xiǎng)應(yīng)不同(tóng)的是,身份驗證並(bìng)不能(néng)提供任何(hé)幫(bāng)助(zhù),而且這個請(qǐng)求(qiú)也不應該(gāi)被重復提(tí)交。如果(guǒ)這不(bù)是(shì)一個(gè) HEAD 請(qǐng)求(qiú),而且服務器希望能夠講(jiǎng)清楚為何(hé)請(qǐng)求不(bù)能(néng)被(bèi)執(zhí)行,那(nà)麼就(jiù)應該(gāi)在實(shí)體內描(miáo)述(shù)拒(jù)絕(jué)的原因(yīn)。當然服(fú)務器也(yě)可以返回一(yī)個404響應,假如(rú)它不(bù)希望(wàng)讓客戶端(duān)獲得任(rèn)何(hé)信(xìn)息(xī)。
404 Not Found
請(qǐng)求失(shī)敗,請(qǐng)求(qiú)所希望(wàng)得到(dào)的(dí)資(zī)源未被在服務(wù)器(qì)上(shàng)發(fā)現。沒有信(xìn)息能夠告(gào)訴(sù)用戶這個狀況到底(dǐ)是(shì)暫時(shí)的(dí)還(huán)是(shì)永久的(dí)。假(jiǎ)如服(fú)務(wù)器知道(dào)情(qíng)況(kuàng)的(dí)話,應(yīng)當使用(yòng)410狀態碼(mǎ)來(lái)告知舊資源因為某(mǒu)些(xiē)內部的(dí)配(pèi)置機製問題(tí),已經永(yǒng)久的不可(kě)用,而且(qiě)沒(méi)有任何可(kě)以(yǐ)跳(tiào)轉(zhuǎn)的地(dì)址。404這個(gè)狀(zhuàng)態(tài)碼被(bèi)廣(guǎng)泛應用於當(dāng)服務器(qì)不想揭(jiē)示(shì)到底(dǐ)為(wéi)何請求(qiú)被(bèi)拒(jù)絕(jué)或者(zhě)沒(méi)有其他(tā)適合(hé)的(dí)響應可(kě)用的情況(kuàng)下。出現這個(gè)錯誤(wù)的(dí)最(zuì)有(yǒu)可能(néng)的原因(yīn)是服務器(qì)端沒有(yǒu)這(zhè)個頁麵。
405 Method Not Allowed
請求(qiú)行中指定的請求方法不能被(bèi)用於請求(qiú)相應(yīng)的(dí)資源(yuán)。該響(xiǎng)應必須返(fǎn)回一(yī)個Allow 頭信息用(yòng)以表示(shì)出(chū)當(dāng)前(qián)資源能夠接(jiē)受的(dí)請(qǐng)求(qiú)方法(fǎ)的列(liè)表(biǎo)。
鑒(jiàn)於 PUT,DELETE 方(fāng)法會(huì)對服(fú)務器上的資源(yuán)進(jìn)行(háng)寫(xiě)操作(zuò),因(yīn)而絕(jué)大部分(fēn)的網頁服務(wù)器都(dū)不支持(chí)或(huò)者(zhě)在(zài)默認配置(zhì)下不(bù)允許上(shàng)述(shù)請(qǐng)求(qiú)方法,對(duì)於此(cǐ)類請求均會返回405錯誤(wù)。
406 Not Acceptable
請求(qiú)的資(zī)源的內容特(tè)性(xìng)無法(fǎ)滿(mǎn)足(zú)請求頭(tóu)中的(dí)條件(jiàn),因而(ér)無(wú)法生(shēng)成響應實體(tǐ)。
除非(fēi)這(zhè)是(shì)一(yī)個(gè) HEAD 請(qǐng)求,否(fǒu)則(zé)該響應就(jiù)應(yīng)當(dāng)返(fǎn)回一(yī)個包(bāo)含(hán)可(kě)以讓用(yòng)戶或(huò)者瀏覽器從中(zhōng)選擇最合適(shì)的實(shí)體特性(xìng)以及地址(zhǐ)列表(biǎo)的實體。實體的格(gé)式(shì)由 Content-Type 頭中定(dìng)義(yì)的媒體類型決定(dìng)。瀏覽(lǎn)器可以根據(jù)格式及自身能(néng)力自行作出(chū)最(zuì)佳(jiā)選(xuǎn)擇。但是,規範中並沒有(yǒu)定義(yì)任(rèn)何作(zuò)出(chū)此類(lèi)自動(dòng)選擇的標準。
407 Proxy Authentication Required
與(yǔ)401響應(yīng)類似,隻(zhī)不過客戶端必須在(zài)代理(lǐ)服務器(qì)上進(jìn)行身份驗證。代(dài)理(lǐ)服務器(qì)必須(xū)返回一個(gè) Proxy-Authenticate 用以進行(háng)身(shēn)份(fèn)詢問。客戶端可以返回(huí)一個 Proxy-Authorization 信(xìn)息頭用以驗(yàn)證。參(cān)見RFC 2617。
408 Request Timeout
請(qǐng)求超(chāo)時。客戶(hù)端(duān)沒有(yǒu)在服務器預備等待(dài)的時(shí)間內(nèi)完(wán)成一個(gè)請求的發(fā)送。客(kè)戶(hù)端可以隨時再(zài)次提(tí)交這(zhè)一請(qǐng)求而無需(xū)進行任何(hé)更改(gǎi)。
409 Conflict
由於(yú)和被請(qǐng)求的資源的當前狀態之(zhī)間存(cún)在衝(chōng)突,請求無法(fǎ)完成。這(zhè)個代碼(mǎ)隻允(yǔn)許用(yòng)在這樣的(dí)情況下才能被(bèi)使用(yòng):用(yòng)戶被(bèi)認為(wéi)能夠解決(jué)衝突,並且(qiě)會(huì)重新(xīn)提交(jiāo)新的請求(qiú)。該(gāi)響應應當(dāng)包(bāo)含(hán)足(zú)夠(gòu)的信(xìn)息(xī)以(yǐ)便用戶發現(xiàn)衝突的源頭。
衝(chōng)突通(tōng)常發(fā)生於對 PUT 請求的(dí)處理中。例如(rú),在采(cǎi)用(yòng)版本檢(jiǎn)查的環境下(xià),某次(cì) PUT 提交的(dí)對(duì)特(tè)定資源的(dí)修改請求所(suǒ)附帶(dài)的(dí)版本(běn)信息(xī)與之前(qián)的某個(gè)(第三方)請求向衝(chōng)突,那麼此(cǐ)時(shí)服務器就(jiù)應(yīng)該(gāi)返(fǎn)回一(yī)個(gè)409錯誤(wù),告(gào)知用(yòng)戶請求無法(fǎ)完成。此(cǐ)時(shí),響(xiǎng)應實(shí)體中(zhōng)很(hěn)可能會(huì)包(bāo)含兩個(gè)衝突(tū)版本之(zhī)間的差(chà)異(yì)比(bǐ)較,以便用(yòng)戶(hù)重新(xīn)提(tí)交歸(guī)並以(yǐ)後的(dí)新(xīn)版(bǎn)本。
410 Gone
被請求的資源在(zài)服務器(qì)上(shàng)已(yǐ)經(jīng)不(bù)再可(kě)用,而且沒(méi)有(yǒu)任(rèn)何已知(zhī)的(dí)轉(zhuǎn)發(fā)地(dì)址。這樣(yàng)的狀況應當(dāng)被認(rèn)為是永(yǒng)久性(xìng)的。如(rú)果可能,擁有鏈(liàn)接編(biān)輯功能(néng)的客戶端(duān)應當在獲(huò)得(dé)用戶許(xǔ)可後刪除所(suǒ)有(yǒu)指(zhǐ)向這(zhè)個(gè)地(dì)址(zhǐ)的引用(yòng)。如果服務(wù)器(qì)不知(zhī)道(dào)或者無(wú)法確(què)定(dìng)這個狀(zhuàng)況是(shì)否是(shì)永久的(dí),那麼就應(yīng)該(gāi)使(shǐ)用(yòng)404狀態碼(mǎ)。除非額外說(shuō)明,否(fǒu)則(zé)這個響應是可緩存(cún)的(dí)。
410響應(yīng)的目的主要(yào)是幫助(zhù)網站管理員維(wéi)護網(wǎng)站(zhàn),通(tōng)知用戶該資源已(yǐ)經不(bù)再可用(yòng),並且服務器擁有(yǒu)者(zhě)希(xī)望所(suǒ)有(yǒu)指(zhǐ)向(xiàng)這(zhè)個資源(yuán)的遠端(duān)連接(jiē)也(yě)被(bèi)刪(shān)除(chú)。這類事(shì)件在限時,增值(zhí)服(fú)務(wù)中很普遍。同(tóng)樣,410響(xiǎng)應也被用(yòng)於通(tōng)知客戶(hù)端在當前(qián)服(fú)務器站點上,原(yuán)本(běn)屬(shǔ)於某(mǒu)個個(gè)人的(dí)資源(yuán)已(yǐ)經不(bù)再(zài)可用。當然,是否需(xū)要把(bǎ)所(suǒ)有永久不(bù)可用(yòng)的資源標(biāo)記為(wéi)'410 Gone',以(yǐ)及(jí)是否需要保(bǎo)持此標(biāo)記多長時間(jiān),完全(quán)取決於服(fú)務(wù)器(qì)擁有(yǒu)者。
411 Length Required
服(fú)務(wù)器拒絕在沒有定義 Content-Length 頭的情況(kuàng)下(xià)接受(shòu)請求(qiú)。在(zài)添加了(liǎo)表(biǎo)明(míng)請(qǐng)求(qiú)消(xiāo)息體(tǐ)長(cháng)度的(dí)有效 Content-Length 頭(tóu)之(zhī)後,客戶(hù)端(duān)可(kě)以再次提交該請求。
412 Precondition Failed
服(fú)務(wù)器在驗證在請求的頭字(zì)段中(zhōng)給(gěi)出先決條件(jiàn)時(shí),沒能(néng)滿(mǎn)足(zú)其(qí)中(zhōng)的(dí)一個或多(duō)個。這個(gè)狀態(tài)碼(mǎ)允許(xǔ)客戶端在獲取資(zī)源(yuán)時(shí)在請求(qiú)的元信息(請求頭字段數據)中設置(zhì)先決條(tiáo)件(jiàn),以此避免該請求方法(fǎ)被應用到其希望(wàng)的(dí)內(nèi)容(róng)以外的(dí)資源上(shàng)。
413 Request Entity Too Large
服務器(qì)拒絕處理當(dāng)前(qián)請(qǐng)求,因(yīn)為(wéi)該請求提(tí)交的實(shí)體數據大小超(chāo)過了服務器願意(yì)或者能夠處理的範圍。此種(zhǒng)情況下,服務器可以(yǐ)關(guān)閉(bì)連(lián)接以(yǐ)免(miǎn)客戶端繼續發送此請求(qiú)。
如(rú)果這(zhè)個(gè)狀(zhuàng)況(kuàng)是臨時的,服(fú)務器(qì)應當(dāng)返回(huí)一個 Retry-After 的響應(yīng)頭,以(yǐ)告知客戶端(duān)可以(yǐ)在多(duō)少時間以後(hòu)重(zhòng)新嘗(cháng)試。
414 Request-URI Too Long
請求(qiú)的(dí)URI 長度超過(guò)了服務器能夠解釋的長度(dù),因此服務器拒絕(jué)對(duì)該請求(qiú)提供(gōng)服務(wù)。這(zhè)比(bǐ)較少見,通常的(dí)情(qíng)況包(bāo)括:
本應使(shǐ)用(yòng)POST方(fāng)法的表單提(tí)交(jiāo)變(biàn)成了GET方(fāng)法,導(dǎo)致(zhì)查詢字符(fú)串(Query String)過(guò)長。
重(zhòng)定向(xiàng)URI “黑洞”,例如(rú)每次重(zhòng)定向(xiàng)把舊的 URI 作(zuò)為(wéi)新(xīn)的 URI 的一部分(fēn),導致在若幹次(cì)重(zhòng)定(dìng)向後 URI 超長(cháng)。
客(kè)戶端正(zhèng)在嘗試利用某些服務器(qì)中存(cún)在的安(ān)全漏洞(dòng)攻(gōng)擊(jī)服務器。這(zhè)類(lèi)服務器使(shǐ)用(yòng)固(gù)定長(cháng)度(dù)的緩衝讀(dú)取(qǔ)或操(cāo)作(zuò)請(qǐng)求(qiú)的(dí) URI,當 GET 後的參(cān)數(shù)超過某個數值(zhí)後(hòu),可能(néng)會產(chǎn)生緩(huǎn)衝區(qū)溢出(chū),導致任意(yì)代碼被執(zhí)行(háng)[1]。沒有此類漏(lòu)洞(dòng)的(dí)服(fú)務(wù)器(qì),應(yīng)當(dāng)返回(huí)414狀態碼(mǎ)。
415 Unsupported Media Type
對於當前請(qǐng)求(qiú)的方法(fǎ)和(hé)所(suǒ)請求的資(zī)源,請(qǐng)求中(zhōng)提交的(dí)實(shí)體並不(bù)是服(fú)務(wù)器中所(suǒ)支(zhī)持(chí)的格式(shì),因此(cǐ)請求被拒絕。
416 Requested Range Not Satisfiable
如果請求(qiú)中包含了(liǎo) Range 請求(qiú)頭(tóu),並且(qiě) Range 中指(zhǐ)定的任(rèn)何(hé)數(shù)據範圍都(dū)與當前(qián)資源(yuán)的可用(yòng)範圍(wéi)不重合(hé),同時請求中又(yòu)沒(méi)有(yǒu)定義 If-Range 請求(qiú)頭(tóu),那(nà)麼(mó)服務器就應(yīng)當返回(huí)416狀態(tài)碼。
假(jiǎ)如(rú) Range 使(shǐ)用(yòng)的(dí)是字節(jié)範圍,那麼這(zhè)種情況(kuàng)就是指請求指定(dìng)的(dí)所(suǒ)有數據範(fàn)圍的(dí)首字(zì)節位置(zhì)都超(chāo)過了(liǎo)當前資源的(dí)長(cháng)度(dù)。服務器也應當(dāng)在返(fǎn)回416狀(zhuàng)態碼的同時,包含一個(gè) Content-Range 實(shí)體(tǐ)頭,用以(yǐ)指明(míng)當前(qián)資源的(dí)長度(dù)。這個(gè)響(xiǎng)應(yīng)也被(bèi)禁(jīn)止(zhǐ)使(shǐ)用 multipart/byteranges 作為(wéi)其 Content-Type。
417 Expectation Failed
在(zài)請求(qiú)頭(tóu) Expect 中指(zhǐ)定的預期(qī)內(nèi)容無(wú)法被(bèi)服務(wù)器(qì)滿(mǎn)足(zú),或者這個服(fú)務(wù)器是一(yī)個(gè)代理服務(wù)器,它有明(míng)顯的證據證(zhèng)明在(zài)當(dāng)前路(lù)由(yóu)的下一(yī)個(gè)節點(diǎn)上(shàng),Expect 的內(nèi)容無(wú)法被(bèi)滿足。
421
There are too many connections from your internet address
從當(dāng)前客戶(hù)端(duān)所在(zài)的(dí)IP地址(zhǐ)到服務(wù)器(qì)的連(lián)接(jiē)數(shù)超(chāo)過了服(fú)務器(qì)許可的(dí)最大範圍。通常,這(zhè)裏的IP地址(zhǐ)指的是(shì)從服務(wù)器上看(kàn)到(dào)的(dí)客(kè)戶端(duān)地(dì)址(zhǐ)(比(bǐ)如用(yòng)戶的(dí)網(wǎng)關或者代(dài)理(lǐ)服(fú)務(wù)器地址(zhǐ))。在這(zhè)種情(qíng)況(kuàng)下,連(lián)接數的(dí)計(jì)算可能(néng)涉(shè)及到(dào)不止(zhǐ)一(yī)個(gè)終(zhōng)端用戶(hù)。
422 Unprocessable Entity
請(qǐng)求格式(shì)正確,但是由於(yú)含(hán)有語(yǔ)義錯(cuò)誤(wù),無法響(xiǎng)應(yīng)。(RFC 4918 WebDAV)
423 Locked
當(dāng)前資源(yuán)被鎖定。(RFC 4918 WebDAV)
424 Failed Dependency
由(yóu)於之(zhī)前(qián)的(dí)某個請求(qiú)發(fā)生(shēng)的(dí)錯誤(wù),導(dǎo)致當前請(qǐng)求失(shī)敗,例(lì)如(rú) PROPPATCH。(RFC 4918 WebDAV)
425 Unordered Collection
在WebDav Advanced Collections 草案中定(dìng)義,但是未出現(xiàn)在(zài)《WebDAV 順(shùn)序(xù)集協議》(RFC 3658)中。
426 Upgrade Required
客戶端應(yīng)當切換到(dào)TLS/1.0。(RFC 2817)
449 Retry With
由微軟擴展(zhǎn),代表(biǎo)請(qǐng)求(qiú)應當在執(zhí)行(háng)完(wán)適(shì)當(dāng)的(dí)操(cāo)作(zuò)後(hòu)進行重試(shì)
六(liù),服(fú)務(wù)器錯誤(5字頭(tóu))
這(zhè)類狀(zhuàng)態(tài)碼(mǎ)代表了(liǎo)服(fú)務器在處(chǔ)理(lǐ)請(qǐng)求的(dí)過(guò)程中(zhōng)有(yǒu)錯誤(wù)或者異常(cháng)狀態(tài)發生(shēng),也(yě)有(yǒu)可(kě)能(néng)是(shì)服(fú)務器意識到(dào)以(yǐ)當前的軟(ruǎn)硬(yìng)件(jiàn)資源(yuán)無(wú)法完成對(duì)請求的處理。除非(fēi)這(zhè)是(shì)一(yī)個HEAD 請(qǐng)求,否(fǒu)則服務器應當包(bāo)含(hán)一(yī)個(gè)解釋當前錯(cuò)誤狀(zhuàng)態以及(jí)這個狀況是(shì)臨(lín)時的還是(shì)永久的解釋(shì)信(xìn)息實體(tǐ)。瀏覽器(qì)應(yīng)當向用戶展(zhǎn)示(shì)任(rèn)何在當前響應中被(bèi)包(bāo)含的(dí)實體。
這(zhè)些(xiē)狀態碼(mǎ)適用於任何響應方法(fǎ)。
500 Internal Server Error
服務器遇(yù)到(dào)了一個未(wèi)曾預料(liào)的狀況(kuàng),導(dǎo)致(zhì)了它(tā)無(wú)法完成(chéng)對請(qǐng)求(qiú)的(dí)處(chǔ)理(lǐ)。一般來說,這(zhè)個(gè)問題都會在服務器(qì)端的(dí)源(yuán)代碼(mǎ)出現錯(cuò)誤(wù)時(shí)出現。
501 Not Implemented
服(fú)務器(qì)不支持當前請求(qiú)所需要(yào)的(dí)某(mǒu)個(gè)功(gōng)能。當(dāng)服務器(qì)無(wú)法識別請求的方法(fǎ),並(bìng)且無(wú)法支持(chí)其對(duì)任何資(zī)源(yuán)的請求(qiú)。
502 Bad Gateway
作(zuò)為網(wǎng)關(guān)或者(zhě)代理工作的(dí)服(fú)務器嘗(cháng)試執(zhí)行請求時(shí),從(cóng)上(shàng)遊服務(wù)器接收(shōu)到(dào)無效(xiào)的響(xiǎng)應。
503 Service Unavailable
由於臨時的服務器維護或(huò)者過(guò)載(zǎi),服務器(qì)當(dāng)前無法(fǎ)處(chǔ)理請求(qiú)。這(zhè)個狀況是(shì)臨時(shí)的,並且(qiě)將在一段時(shí)間以後恢復。如(rú)果能(néng)夠預計(jì)延遲時(shí)間,那麼響(xiǎng)應(yīng)中(zhōng)可以(yǐ)包含一(yī)個 Retry-After 頭(tóu)用以標(biāo)明這(zhè)個延(yán)遲(chí)時(shí)間。如(rú)果沒有(yǒu)給(gěi)出(chū)這個(gè) Retry-After 信(xìn)息,那(nà)麼(mó)客(kè)戶端應(yīng)當以處理(lǐ)500響(xiǎng)應(yīng)的方(fāng)式處理(lǐ)它(tā)。
注意:503狀態碼的(dí)存在並不(bù)意(yì)味著服務器(qì)在過(guò)載的時(shí)候(hòu)必須使用(yòng)它。某(mǒu)些服(fú)務(wù)器(qì)隻不(bù)過是希望拒絕客戶端的連接。
504 Gateway Timeout
作(zuò)為網關或(huò)者代理工作的服務器嘗試執行請(qǐng)求(qiú)時,未能及(jí)時從上遊服務器(URI標識(shí)出的(dí)服務(wù)器(qì),例(lì)如HTTP,FTP,LDAP)或者輔助服務(wù)器(qì)(例(lì)如(rú)DNS)收到響(xiǎng)應。
注(zhù)意:某(mǒu)些(xiē)代(dài)理服務(wù)器在DNS查詢(xún)超(chāo)時(shí)時會(huì)返回400或者(zhě)500錯誤(wù)
505 HTTP Version Not Supported
服務器不支持(chí),或者(zhě)拒絕支持(chí)在(zài)請(qǐng)求中使用(yòng)的 HTTP 版本(běn)。這暗(àn)示(shì)著服(fú)務器(qì)不(bù)能或(huò)不願使用(yòng)與(yǔ)客戶端相(xiāng)同的(dí)版(bǎn)本。響應中(zhōng)應當(dāng)包含一(yī)個描述(shù)了為何(hé)版(bǎn)本不被支(zhī)持以(yǐ)及服務(wù)器支(zhī)持(chí)哪(nǎ)些(xiē)協(xié)議的實體。
506 Variant Also Negotiates
由(yóu)《透(tòu)明內(nèi)容協商(shāng)協議》(RFC 2295)擴展,代表(biǎo)服務器(qì)存在內部配(pèi)置(zhì)錯(cuò)誤(wù):被請求(qiú)的(dí)協商(shāng)變元(yuán)資(zī)源(yuán)被(bèi)配置為(wéi)在透(tòu)明內(nèi)容(róng)協商(shāng)中(zhōng)使用(yòng)自己,因(yīn)此在一(yī)個(gè)協商處理中不(bù)是一(yī)個(gè)合適的重點。
507 Insufficient Storage
服(fú)務器無(wú)法存儲(chǔ)完(wán)成(chéng)請求所必(bì)須(xū)的內容。這(zhè)個(gè)狀況(kuàng)被(bèi)認為(wéi)是臨時的。WebDAV (RFC 4918)
508 Loop Detected
509 Bandwidth Limit Exceeded
服務(wù)器達(dá)到(dào)帶(dài)寬限製。這(zhè)不是(shì)一個官方的狀態(tài)碼(mǎ),但是仍(réng)被(bèi)廣泛(fàn)使用。
510 Not Extended
獲取(qǔ)資(zī)源所(suǒ)需(xū)要的(dí)策略(lüè)並(bìng)沒(méi)有(yǒu)沒滿足(zú)。(RFC 2774)
600 Unparseable Response Headers
源站沒(méi)有返回響應(yīng)頭(tóu)部,隻返回(huí)實體內(nèi)容
轉(zhuǎn)載請(qǐng)保留(liú)原文地址: https://antelcom.cn/show-50.html

