HTTP 回應狀態代碼指示特定 HTTP 請求是否已成功完成,回應分為五類:資訊回應(100–199),成功回應(200–299),重定向(300–399),客戶端錯誤(400–499)和服務器錯誤 (500–599),狀態代碼由 section 10 of RFC 2616定義
資訊回應
100 Continue- 這個臨時回應表明,迄今為止的所有內容都是可行的,客戶端應該繼續請求,如果已經完成,則忽略它,
101 Switching Protocol- 該代碼是回應客戶端的
Upgrade標頭發送的,并且指示服務器也正在切換的協議, 102 Processing(WebDAV)- 此代碼表示服務器已收到并正在處理該請求,但沒有回應可用,
103 Early Hints- 此狀態代碼主要用于與
Link鏈接頭一起使用,以允許用戶代理在服務器仍在準備回應時開始預加載資源,
成功回應
200 OK-
請求成功,成功的含義取決于HTTP方法:
- GET:資源已被提取并在訊息正文中傳輸,
- HEAD:物體標頭位于訊息正文中,
- POST:描述動作結果的資源在訊息體中傳輸,
- TRACE:訊息正文包含服務器收到的請求訊息
201 Created- 該請求已成功,并因此創建了一個新的資源,這通常是在POST請求,或是某些PUT請求之后回傳的回應,
202 Accepted- 請求已經接收到,但還未回應,沒有結果,意味著不會有一個異步的回應去表明當前請求的結果,預期另外的行程和服務去處理請求,或者批處理,
203 Non-Authoritative Information- 服務器已成功處理了請求,但回傳的物體頭部元資訊不是在原始服務器上有效的確定集合,而是來自本地或者第三方的拷貝,當前的資訊可能是原始版本的子集或者超集,例如,包含資源的元資料可能導致原始服務器知道元資訊的超集,使用此狀態碼不是必須的,而且只有在回應不使用此狀態碼便會回傳200 OK的情況下才是合適的,
204 No Content- 服務器成功處理了請求,但不需要回傳任何物體內容,并且希望回傳更新了的元資訊,回應可能通過物體頭部的形式,回傳新的或更新后的元資訊,如果存在這些頭部資訊,則應當與所請求的變數相呼應,如果客戶端是瀏覽器的話,那么用戶瀏覽器應保留發送了該請求的頁面,而不產生任何檔案視圖上的變化,即使按照規范新的或更新后的元資訊應當被應用到用戶瀏覽器活動視圖中的檔案,由于204回應被禁止包含任何訊息體,因此它始終以訊息頭后的第一個空行結尾,
205 Reset Content- 服務器成功處理了請求,且沒有回傳任何內容,但是與204回應不同,回傳此狀態碼的回應要求請求者重置檔案視圖,該回應主要是被用于接受用戶輸入后,立即重置表單,以便用戶能夠輕松地開始另一次輸入,與204回應一樣,該回應也被禁止包含任何訊息體,且以訊息頭后的第一個空行結束,
206 Partial Content- 服務器已經成功處理了部分 GET 請求,類似于 FlashGet 或者迅雷這類的 HTTP 下載工具都是使用此類回應實作斷點續傳或者將一個大檔案分解為多個下載段同時下載,該請求必須包含 Range 頭資訊來指示客戶端希望得到的內容范圍,并且可能包含 If-Range 來作為請求條件,
207 Multi-Status(WebDAV)- 由WebDAV(RFC 2518)擴展的狀態碼,代表之后的訊息體將是一個XML訊息,并且可能依照之前子請求數量的不同,包含一系列獨立的回應代碼,
208 Already Reported(WebDAV)- 在 DAV 里面使用: propstat 回應元素以避免重復列舉多個系結的內部成員到同一個集合,
226 IM Used(HTTP Delta encoding)- 服務器已經完成了對資源的 GET 請求,并且回應是對當前實體應用的一個或多個實體操作結果的表示,
重定向
300 Multiple Choice- 被請求的資源有一系列可供選擇的回饋資訊,每個都有自己特定的地址和瀏覽器驅動的商議資訊,用戶或瀏覽器能夠自行選擇一個首選的地址進行重定向,
301 Moved Permanently- 被請求的資源已永久移動到新位置,并且將來任何對此資源的參考都應該使用本回應回傳的若干個 URI 之一,如果可能,擁有鏈接編輯功能的客戶端應當自動把請求的地址修改為從服務器反饋回來的地址,除非額外指定,否則這個回應也是可快取的,
302 Found- 請求的資源現在臨時從不同的 URI 回應請求,由于這樣的重定向是臨時的,客戶端應當繼續向原有地址發送以后的請求,只有在Cache-Control或Expires中進行了指定的情況下,這個回應才是可快取的,
303 See Other- 對應當前請求的回應可以在另一個 URI 上被找到,而且客戶端應當采用 GET 的方式訪問那個資源,這個方法的存在主要是為了允許由腳本激活的POST請求輸出重定向到一個新的資源,
304 Not Modified- 如果客戶端發送了一個帶條件的 GET 請求且該請求已被允許,而檔案的內容(自上次訪問以來或者根據請求的條件)并沒有改變,則服務器應當回傳這個狀態碼,304 回應禁止包含訊息體,因此始終以訊息頭后的第一個空行結尾,
305 Use Proxy- 被請求的資源必須通過指定的代理才能被訪問,Location 域中將給出指定的代理所在的 URI 資訊,接收者需要重復發送一個單獨的請求,通過這個代理才能訪問相應資源,只有原始服務器才能建立305回應,
306 unused- 在最新版的規范中,306 狀態碼已經不再被使用,
307 Temporary Redirect- 請求的資源現在臨時從不同的URI 回應請求,由于這樣的重定向是臨時的,客戶端應當繼續向原有地址發送以后的請求,只有在Cache-Control或Expires中進行了指定的情況下,這個回應才是可快取的,
308 Permanent Redirect- 這意味著資源現在永久位于由
Location:HTTP Response 標頭指定的另一個 URI, 這與301 Moved Permanently HTTP回應代碼具有相同的語意,但用戶代理不能更改所使用的 HTTP 方法:如果在第一個請求中使用POST,則必須在第二個請求中使用POST,
客戶端回應
400 Bad Request- 1、語意有誤,當前請求無法被服務器理解,除非進行修改,否則客戶端不應該重復提交這個請求,
- 2、請求引數有誤,
401 Unauthorized- 當前請求需要用戶驗證,該回應必須包含一個適用于被請求資源的 WWW-Authenticate 資訊頭用以詢問用戶資訊,客戶端可以重復提交一個包含恰當的 Authorization 頭資訊的請求,如果當前請求已經包含了 Authorization 證書,那么401回應代表著服務器驗證已經拒絕了那些證書,如果401回應包含了與前一個回應相同的身份驗證詢問,且瀏覽器已經至少嘗試了一次驗證,那么瀏覽器應當向用戶展示回應中包含的物體資訊,因為這個物體資訊中可能包含了相關診斷資訊,
402 Payment Required- 此回應碼保留以便將來使用,創造此回應碼的最初目的是用于數字支付系統,然而現在并未使用,
403 Forbidden- 服務器已經理解請求,但是拒絕執行它,與 401 回應不同的是,身份驗證并不能提供任何幫助,而且這個請求也不應該被重復提交,如果這不是一個 HEAD 請求,而且服務器希望能夠講清楚為何請求不能被執行,那么就應該在物體內描述拒絕的原因,當然服務器也可以回傳一個 404 回應,假如它不希望讓客戶端獲得任何資訊,
404 Not Found- 請求失敗,請求所希望得到的資源未被在服務器上發現,沒有資訊能夠告訴用戶這個狀況到底是暫時的還是永久的,假如服務器知道情況的話,應當使用410狀態碼來告知舊資源因為某些內部的配置機制問題,已經永久的不可用,而且沒有任何可以跳轉的地址,404這個狀態碼被廣泛應用于當服務器不想揭示到底為何請求被拒絕或者沒有其他適合的回應可用的情況下,
405 Method Not Allowed- 請求行中指定的請求方法不能被用于請求相應的資源,該回應必須回傳一個Allow 頭資訊用以表示出當前資源能夠接受的請求方法的串列, 鑒于 PUT,DELETE 方法會對服務器上的資源進行寫操作,因而絕大部分的網頁服務器都不支持或者在默認配置下不允許上述請求方法,對于此類請求均會回傳405錯誤,
406 Not Acceptable- 請求的資源的內容特性無法滿足請求頭中的條件,因而無法生成回應物體,
407 Proxy Authentication Required- 與401回應類似,只不過客戶端必須在代理服務器上進行身份驗證,代理服務器必須回傳一個 Proxy-Authenticate 用以進行身份詢問,客戶端可以回傳一個 Proxy-Authorization 資訊頭用以驗證,
408 Request Timeout- 請求超時,客戶端沒有在服務器預備等待的時間內完成一個請求的發送,客戶端可以隨時再次提交這一請求而無需進行任何更改,
409 Conflict- 由于和被請求的資源的當前狀態之間存在沖突,請求無法完成,這個代碼只允許用在這樣的情況下才能被使用:用戶被認為能夠解決沖突,并且會重新提交新的請求,該回應應當包含足夠的資訊以便用戶發現沖突的源頭,
410 Gone- 被請求的資源在服務器上已經不再可用,而且沒有任何已知的轉發地址,這樣的狀況應當被認為是永久性的,如果可能,擁有鏈接編輯功能的客戶端應當在獲得用戶許可后洗掉所有指向這個地址的參考,如果服務器不知道或者無法確定這個狀況是否是永久的,那么就應該使用 404 狀態碼,除非額外說明,否則這個回應是可快取的,
411 Length Required- 服務器拒絕在沒有定義
Content-Length頭的情況下接受請求,在添加了表明請求訊息體長度的有效Content-Length頭之后,客戶端可以再次提交該請求, 412 Precondition Failed- 服務器在驗證在請求的頭欄位中給出先決條件時,沒能滿足其中的一個或多個,這個狀態碼允許客戶端在獲取資源時在請求的元資訊(請求頭欄位資料)中設定先決條件,以此避免該請求方法被應用到其希望的內容以外的資源上,
413 Payload Too Large- 服務器拒絕處理當前請求,因為該請求提交的物體資料大小超過了服務器愿意或者能夠處理的范圍,此種情況下,服務器可以關閉連接以免客戶端繼續發送此請求,如果這個狀況是臨時的,服務器應當回傳一個
Retry-After的回應頭,以告知客戶端可以在多少時間以后重新嘗試, 414 URI Too Long- 請求的URI 長度超過了服務器能夠解釋的長度,因此服務器拒絕對該請求提供服務,這比較少見,通常的情況包括:本應使用POST方法的表單提交變成了GET方法,導致查詢字串(Query String)過長,
415 Unsupported Media Type- 對于當前請求的方法和所請求的資源,請求中提交的物體并不是服務器中所支持的格式,因此請求被拒絕,
416 Range Not Satisfiable- 如果請求中包含了 Range 請求頭,并且 Range 中指定的任何資料范圍都與當前資源的可用范圍不重合,同時請求中又沒有定義 If-Range 請求頭,那么服務器就應當回傳416狀態碼,
417 Expectation Failed- 此回應代碼意味著服務器無法滿足
Expect請求標頭欄位指示的期望值, 418 I'm a teapot- 服務器拒絕嘗試用
“茶壺沖泡咖啡”, 421 Misdirected Request- 該請求針對的是無法產生回應的服務器, 這可以由服務器發送,該服務器未配置為針對包含在請求 URI 中的方案和權限的組合產生回應,
422 Unprocessable Entity(WebDAV)- 請求格式良好,但由于語意錯誤而無法遵循,
423 Locked(WebDAV)- 正在訪問的資源被鎖定,
424 Failed Dependency(WebDAV)- 由于先前的請求失敗,所以此次請求失敗,
425 Too Early- 服務器不愿意冒著風險去處理可能重播的請求,
426 Upgrade Required- 服務器拒絕使用當前協議執行請求,但可能在客戶機升級到其他協議后愿意這樣做, 服務器在 426 回應中發送
Upgrade頭以指示所需的協議, 428 Precondition Required- 原始服務器要求該請求是有條件的, 旨在防止“丟失更新”問題,即客戶端獲取資源狀態,修改該狀態并將其回傳服務器,同時第三方修改服務器上的狀態,從而導致沖突,
429 Too Many Requests- 用戶在給定的時間內發送了太多請求(“限制請求速率”),
431 Request Header Fields Too Large- 服務器不愿意處理請求,因為它的 請求頭欄位太大( Request Header Fields Too Large), 請求可以在減小請求頭欄位的大小后重新提交,
451 Unavailable For Legal Reasons- 用戶請求非法資源,例如:由政府審查的網頁,
服務端回應
500 Internal Server Error- 服務器遇到了不知道如何處理的情況,
501 Not Implemented- 此請求方法不被服務器支持且無法被處理,只有
GET和HEAD是要求服務器支持的,它們必定不會回傳此錯誤代碼, 502 Bad Gateway- 此錯誤回應表明服務器作為網關需要得到一個處理這個請求的回應,但是得到一個錯誤的回應,
503 Service Unavailable- 服務器沒有準備好處理請求, 常見原因是服務器因維護或多載而停機, 請注意,與此回應一起,應發送解釋問題的用戶友好頁面, 這個回應應該用于臨時條件和
Retry-After:如果可能的話,HTTP頭應該包含恢復服務之前的估計時間, 網站管理員還必須注意與此回應一起發送的與快取相關的標頭,因為這些臨時條件回應通常不應被快取, 504 Gateway Timeout- 當服務器作為網關,不能及時得到回應時回傳此錯誤代碼,
505 HTTP Version Not Supported- 服務器不支持請求中所使用的HTTP協議版本,
506 Variant Also Negotiates- 服務器有一個內部配置錯誤:對請求的透明內容協商導致回圈參考,
507 Insufficient Storage- 服務器有內部配置錯誤:所選的變體資源被配置為參與透明內容協商本身,因此不是協商程序中的適當端點,
508 Loop Detected(WebDAV)- 服務器在處理請求時檢測到無限回圈,
510 Not Extended- 客戶端需要對請求進一步擴展,服務器才能實作它,服務器會回復客戶端發出擴展請求所需的所有資訊,
511 Network Authentication Required- 511 狀態碼指示客戶端需要進行身份驗證才能獲得網路訪問權限,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/251277.html
標籤:ASP.NET
