2020-4-3 seo達人
1**:請求收到,繼續(xù)處理
2**:操作成功收到,分析、接受
3**:完成此請求必須進一步處理
4**:請求包含一個錯誤語法或不能完成
5**:服務(wù)器執(zhí)行一個完全有效請求失敗
100——客戶必須繼續(xù)發(fā)出請求
101——客戶要求服務(wù)器根據(jù)請求轉(zhuǎn)換HTTP協(xié)議版本
200——交易成功
201——提示知道新文件的URL
202——接受和處理、但處理未完成
203——返回信息不確定或不完整
204——請求收到,但返回信息為空
205——服務(wù)器完成了請求,用戶代理必須復(fù)位當前已經(jīng)瀏覽過的文件
206——服務(wù)器已經(jīng)完成了部分用戶的GET請求
300——請求的資源可在多處得到
301——刪除請求數(shù)據(jù)
302——在其他地址發(fā)現(xiàn)了請求數(shù)據(jù)
303——建議客戶訪問其他URL或訪問方式
304——客戶端已經(jīng)執(zhí)行了GET,但文件未變化
305——請求的資源必須從服務(wù)器指定的地址得到
306——前一版本HTTP中使用的代碼,現(xiàn)行版本中不再使用
307——申明請求的資源臨時性刪除
400——錯誤請求,如語法錯誤
401——請求授權(quán)失敗
402——保留有效ChargeTo頭響應(yīng)
403——請求不允許
404——沒有發(fā)現(xiàn)文件、查詢或URl
405——用戶在Request-Line字段定義的方法不允許
406——根據(jù)用戶發(fā)送的Accept拖,請求資源不可訪問
407——類似401,用戶必須首先在代理服務(wù)器上得到授權(quán)
408——客戶端沒有在用戶指定的餓時間內(nèi)完成請求
409——對當前資源狀態(tài),請求不能完成
410——服務(wù)器上不再有此資源且無進一步的參考地址
411——服務(wù)器拒絕用戶定義的Content-Length屬性請求
412——一個或多個請求頭字段在當前請求中錯誤
413——請求的資源大于服務(wù)器允許的大小
414——請求的資源URL長于服務(wù)器允許的長度
415——請求資源不支持請求項目格式
416——請求中包含Range請求頭字段,在當前請求資源范圍內(nèi)沒有range指示值,請求
也不包含If-Range請求頭字段
417——服務(wù)器不滿足請求Expect頭字段指定的期望值,如果是代理服務(wù)器,可能是下
一級服務(wù)器不能滿足請求
500——服務(wù)器產(chǎn)生內(nèi)部錯誤
501——服務(wù)器不支持請求的函數(shù)
502——服務(wù)器暫時不可用,有時是為了防止發(fā)生系統(tǒng)過載
503——服務(wù)器過載或暫停維修
504——關(guān)口過載,服務(wù)器使用另一個關(guān)口或服務(wù)來響應(yīng)用戶,等待時間設(shè)定值較長
505——服務(wù)器不支持或拒絕支請求頭中指定的HTTP版本
==========================================================
英文版:
100:Continue
101:Switching Protocols
102:Processing
200:OK
201:Created
202:Accepted
203:Non-Authoriative Information
204:No Content
205:Reset Content
206:Partial Content
207:Multi-Status
300:Multiple Choices
301:Moved Permanently
302:Found
303:See Other
304:Not Modified
305:Use Proxy
306:(Unused)
307:Temporary Redirect
400:Bad Request
401:Unauthorized
402:Payment Granted
403:Forbidden
404:File Not Found
405:Method Not Allowed
406:Not Acceptable
407:Proxy Authentication Required
408:Request Time-out
409:Conflict
410:Gone
411:Length Required
412:Precondition Failed
413:Request Entity Too Large
414:Request-URI Too Large
415:Unsupported Media Type
416:Requested range not satisfiable
417:Expectation Failed
422:Unprocessable Entity
423:Locked
424:Failed Dependency
500:Internal Server Error
501:Not Implemented
502:Bad Gateway
503:Service Unavailable
504:Gateway Timeout
505:HTTP Version Not Supported
507:Insufficient Storage
完整的 HTTP 1.1規(guī)范說明書來自于RFC 2616,你可以在rfc-editor在線查閱。HTTP 1.1的狀態(tài)碼被標記為新特性,因為許多瀏覽器只支持 HTTP 1.0。你應(yīng)只把狀態(tài)碼發(fā)送給支持 HTTP 1.1的客戶端,支持協(xié)議版本可以通過調(diào)用request.getRequestProtocol來檢查。
本部分余下的內(nèi)容會詳細地介紹 HTTP 1.1中的狀態(tài)碼。這些狀態(tài)碼被分為五大類:
100-199 用于指定客戶端應(yīng)相應(yīng)的某些動作。
200-299 用于表示請求成功。
300-399 用于已經(jīng)移動的文件并且常被包含在定位頭信息中指定新的地址信息。
400-499 用于指出客戶端的錯誤。
500-599 用于支持服務(wù)器錯誤。
HttpServletResponse中的常量代表關(guān)聯(lián)不同標準消息的狀態(tài)碼。在servlet程序中,你會更多地用到這些常量的標識來使用狀態(tài)碼。例如:你一般會使用response.setStatus(response.SC_NO_CONTENT)而不是 response.setStatus(204),因為后者不易理解而且容易導(dǎo)致錯誤。但是,你應(yīng)當注意到服務(wù)器允許對消息輕微的改變,而客戶端只注意狀態(tài)碼的數(shù)字值。所以服務(wù)器可能只返回 HTTP/1.1 200 而不是 HTTP/1.1 200 OK。
100 (Continue/繼續(xù))
如果服務(wù)器收到頭信息中帶有100-continue的請求,這是指客戶端詢問是否可以在后續(xù)的請求中發(fā)送附件。在這種情況下,服務(wù)器用100(SC_CONTINUE)允許客戶端繼續(xù)或用417 (Expectation Failed)告訴客戶端不同意接受附件。這個狀態(tài)碼是 HTTP 1.1中新加入的。
101 (Switching Protocols/轉(zhuǎn)換協(xié)議)
101 (SC_SWITCHING_PROTOCOLS)狀態(tài)碼是指服務(wù)器將按照其上的頭信息變?yōu)橐粋€不同的協(xié)議。這是 HTTP 1.1中新加入的。
200 (OK/正常)
200 (SC_OK)的意思是一切正常。一般用于相應(yīng)GET和POST請求。這個狀態(tài)碼對servlet是缺省的;如果沒有調(diào)用setStatus方法的話,就會得到200。
201 (Created/已創(chuàng)建)
201 (SC_CREATED)表示服務(wù)器在請求的響應(yīng)中建立了新文檔;應(yīng)在定位頭信息中給出它的URL。
202 (Accepted/接受)
202 (SC_ACCEPTED)告訴客戶端請求正在被執(zhí)行,但還沒有處理完。
203 (Non-Authoritative Information/非官方信息)
狀態(tài)碼203 (SC_NON_AUTHORITATIVE_INFORMATION)是表示文檔被正常的返回,但是由于正在使用的是文檔副本所以某些響應(yīng)頭信息可能不正確。這是 HTTP 1.1中新加入的。
204 (No Content/無內(nèi)容)
在并沒有新文檔的情況下,204 (SC_NO_CONTENT)確保瀏覽器繼續(xù)顯示先前的文檔。這各狀態(tài)碼對于用戶周期性的重載某一頁非常有用,并且你可以確定先前的頁面是否已經(jīng)更新。例如,某個servlet可能作如下操作:
int pageVersion =Integer.parseInt(request.getParameter("pageVersion"));
if (pageVersion >;= currentVersion) {
response.setStatus(response.SC_NO_CONTENT);
} else {
// Create regular page
}
但是,這種方法對通過刷新響應(yīng)頭信息或等價的HTML標記自動重載的頁面起作用,因為它會返回一個204狀態(tài)碼停止以后的重載。但基于JavaScript腳本的自動重載在這種情況下仍然需要能夠起作用??梢蚤喿x本書7.2 ( HTTP 1.1 Response Headers and Their Meaning/HTTP 1.1響應(yīng)頭信息以及他們的意義)部分的詳細討論。
205 (Reset Content/重置內(nèi)容)
重置內(nèi)容205 (SC_RESET_CONTENT)的意思是雖然沒有新文檔但瀏覽器要重置文檔顯示。這個狀態(tài)碼用于強迫瀏覽器清除表單域。這是 HTTP 1.1中新加入的。
206 (Partial Content/局部內(nèi)容)
206 (SC_PARTIAL_CONTENT)是在服務(wù)器完成了一個包含Range頭信息的局部請求時被發(fā)送的。這是 HTTP 1.1中新加入的。
300 (Multiple Choices/多重選擇)
300 (SC_MULTIPLE_CHOICES)表示被請求的文檔可以在多個地方找到,并將在返回的文檔中列出來。如果服務(wù)器有首選設(shè)置,首選項將會被列于定位響應(yīng)頭信息中。
301 (Moved Permanently)
301 (SC_MOVED_PERMANENTLY)狀態(tài)是指所請求的文檔在別的地方;文檔新的URL會在定位響應(yīng)頭信息中給出。瀏覽器會自動連接到新的URL。
302 (Found/找到)
與301有些類似,只是定位頭信息中所給的URL應(yīng)被理解為臨時交換地址而不是永久的。注意:在 HTTP 1.0中,消息是臨時移動(Moved Temporarily)的而不是被找到,因此HttpServletResponse中的常量是SC_MOVED_TEMPORARILY不是我們以為的SC_FOUND。
注意
代表狀態(tài)碼302的常量是SC_MOVED_TEMPORARILY而不是SC_FOUND。
狀態(tài)碼302是非常有用的因為瀏覽器自動連接在定為響應(yīng)頭信息中給出的新URL。這非常有用,而且為此有一個專門的方法——sendRedirect。使用response.sendRedirect(url)比調(diào)用response.setStatus(response.SC_MOVED_TEMPORARILY)和response.setHeader("Location", url)多幾個好處。首先,response.sendRedirect(url)方法明顯要簡單和容易。第二,servlet自動建立一頁保存這一連接以提供給那些不能自動轉(zhuǎn)向的瀏覽器顯示。最后,在servlet 2.2版本(J2EE中的版本)中,sendRedirect能夠處理相對路徑,自動轉(zhuǎn)換為絕對路徑。但是你只能在2.1版本中使用絕對路徑。
如果你將用戶轉(zhuǎn)向到站點的另一頁中,你要用 HttpServletResponse 中的 encodeURL 方法傳送URL。這么做可預(yù)防不斷使用基于URL重寫的會話跟蹤的情況。URL重寫是一種在你的網(wǎng)站跟蹤不使用 cookies 的用戶的方法。這是通過在每一個URL尾部附加路徑信息實現(xiàn)的,但是 servlet 會話跟蹤API會自動的注意這些細節(jié)。會話跟蹤在第九章討論,并且養(yǎng)成使用 encodeURL 的習(xí)慣會使以后添加會話跟蹤的功能更容易很多。
核心技巧
如果你將用戶轉(zhuǎn)向到你的站點的其他頁面,用 response.sendRedirect(response.encodeURL(url)) 的方式事先計劃好會話跟蹤(session tracking)要比只是調(diào)用 response.sendRedirect(url) 好的多。
這個狀態(tài)碼有時可以與301交換使用。例如,如果你錯誤的訪問了某路徑信息不完整),有些服務(wù)器就會回復(fù)301狀態(tài)碼而有些則回復(fù)302。從技術(shù)上說,如果最初的請求是GET瀏覽器只是被假定自動轉(zhuǎn)向。如果想了解更多細節(jié),請看狀態(tài)碼307的討論。
303 (See Other/參見其他信息)
這個狀態(tài)碼和 301、302 相似,只是如果最初的請求是 POST,那么新文檔(在定位頭信息中給出)藥用 GET 找回。這個狀態(tài)碼是新加入 HTTP 1.1中的。
304 (Not Modified/為修正)
當客戶端有一個緩存的文檔,通過提供一個 If-Modified-Since 頭信息可指出客戶端只希望文檔在指定日期之后有所修改時才會重載此文檔,用這種方式可以進行有條件的請求。304 (SC_NOT_MODIFIED)是指緩沖的版本已經(jīng)被更新并且客戶端應(yīng)刷新文檔。另外,服務(wù)器將返回請求的文檔及狀態(tài)碼 200。servlet一般情況下不會直接設(shè)置這個狀態(tài)碼。它們會實現(xiàn)getLastModified方法并根據(jù)修正日期讓默認服務(wù)方法處理有條件的請求。這個方法的例程已在2.8部分(An Example Using Servlet Initialization and Page Modification Dates/一個使用servlet初始化和頁面修正日期的例子)給出。
305 (Use Proxy/使用代理)
305 (SC_USE_PROXY)表示所請求的文檔要通過定位頭信息中的代理服務(wù)器獲得。這個狀態(tài)碼是新加入 HTTP 1.1中的。
307 (Temporary Redirect/臨時重定向)
瀏覽器處理307狀態(tài)的規(guī)則與302相同。307狀態(tài)被加入到 HTTP 1.1中是由于許多瀏覽器在收到302響應(yīng)時即使是原始消息為POST的情況下仍然執(zhí)行了錯誤的轉(zhuǎn)向。只有在收到303響應(yīng)時才假定瀏覽器會在POST請求時重定向。添加這個新的狀態(tài)碼的目的很明確:在響應(yīng)為303時按照GET和POST請求轉(zhuǎn)向;而在307響應(yīng)時則按照GET請求轉(zhuǎn)向而不是POST請求。注意:由于某些原因在HttpServletResponse中還沒有與這個狀態(tài)對應(yīng)的常量。該狀態(tài)碼是新加入HTTP 1.1中的。
注意
在 HttpServletResponse 中沒有 SC_TEMPORARY_REDIRECT 常量,所以你只能顯示的使用307狀態(tài)碼。
400 (Bad Request/錯誤請求)
400 (SC_BAD_REQUEST)指出客戶端請求中的語法錯誤。
401 (Unauthorized/未授權(quán))
401 (SC_UNAUTHORIZED)表示客戶端在授權(quán)頭信息中沒有有效的身份信息時訪問受到密碼保護的頁面。這個響應(yīng)必須包含一個WWW-Authenticate的授權(quán)信息頭。例如,在本書4.5部分中的“Restricting Access to Web Pages./限制訪問Web頁。”
403 (Forbidden/禁止)
403 (SC_FORBIDDEN)的意思是除非擁有授權(quán)否則服務(wù)器拒絕提供所請求的資源。這個狀態(tài)經(jīng)常會由于服務(wù)器上的損壞文件或目錄許可而引起。
404 (Not Found/未找到)
404 (SC_NOT_FOUND)狀態(tài)每個網(wǎng)絡(luò)程序員可能都遇到過,他告訴客戶端所給的地址無法找到任何資源。它是表示“沒有所訪問頁面”的標準方式。這個狀態(tài)碼是常用的響應(yīng)并且在HttpServletResponse類中有專門的方法實現(xiàn)它:sendError("message")。相對于setStatus使用sendError得好處是:服務(wù)器會自動生成一個錯誤頁來顯示錯誤信息。但是,Internet Explorer 5瀏覽器卻默認忽略你發(fā)揮的錯誤頁面并顯示其自定義的錯誤提示頁面,雖然微軟這么做違反了 HTTP 規(guī)范。要關(guān)閉此功能,在工具菜單里,選擇Internet選項,進入高級標簽頁,并確認“顯示友好的 HTTP 錯誤信息”選項(在我的瀏覽器中是倒數(shù)第8各選項)沒有被選。但是很少有用戶知道此選項,因此這個特性被IE5隱藏了起來使用戶無法看到你所返回給用戶的信息。而其他主流瀏覽器及IE4都完全的顯示服務(wù)器生成的錯誤提示頁面??梢詤⒖紙D6-3及6-4中的例子。
核心警告
默認情況下,IE5忽略服務(wù)端生成的錯誤提示頁面。
405 (Method Not Allowed/方法未允許)
405 (SC_METHOD_NOT_ALLOWED)指出請求方法(GET, POST, HEAD, PUT, DELETE, 等)對某些特定的資源不允許使用。該狀態(tài)碼是新加入 HTTP 1.1中的。
406 (Not Acceptable/無法訪問)
406 (SC_NOT_ACCEPTABLE)表示請求資源的MIME類型與客戶端中Accept頭信息中指定的類型不一致。見本書7.2部分中的表7.1(HTTP 1.1 Response Headers and Their Meaning/HTTP 1.1響應(yīng)頭信息以及他們的意義)中對MIME類型的介紹。406是新加入 HTTP 1.1中的。
407 (Proxy Authentication Required/代理服務(wù)器認證要求)
407 (SC_PROXY_AUTHENTICATION_REQUIRED)與401狀態(tài)有些相似,只是這個狀態(tài)用于代理服務(wù)器。該狀態(tài)指出客戶端必須通過代理服務(wù)器的認證。代理服務(wù)器返回一個Proxy-Authenticate響應(yīng)頭信息給客戶端,這會引起客戶端使用帶有Proxy-Authorization請求的頭信息重新連接。該狀態(tài)碼是新加入 HTTP 1.1中的。
408 (Request Timeout/請求超時)
408 (SC_REQUEST_TIMEOUT)是指服務(wù)端等待客戶端發(fā)送請求的時間過長。該狀態(tài)碼是新加入 HTTP 1.1中的。
409 (Conflict/沖突)
該狀態(tài)通常與PUT請求一同使用,409 (SC_CONFLICT)狀態(tài)常被用于試圖上傳版本不正確的文件時。該狀態(tài)碼是新加入 HTTP 1.1中的。
410 (Gone/已經(jīng)不存在)
410 (SC_GONE)告訴客戶端所請求的文檔已經(jīng)不存在并且沒有更新的地址。410狀態(tài)不同于404,410是在指導(dǎo)文檔已被移走的情況下使用,而404則用于未知原因的無法訪問。該狀態(tài)碼是新加入 HTTP 1.1中的。
411 (Length Required/需要數(shù)據(jù)長度)
411 (SC_LENGTH_REQUIRED)表示服務(wù)器不能處理請求(假設(shè)為帶有附件的POST請求),除非客戶端發(fā)送Content-Length頭信息指出發(fā)送給服務(wù)器的數(shù)據(jù)的大小。該狀態(tài)是新加入 HTTP 1.1的。
412 (Precondition Failed/先決條件錯誤)
412 (SC_PRECONDITION_FAILED)狀態(tài)指出請求頭信息中的某些先決條件是錯誤的。該狀態(tài)是新加入 HTTP 1.1的。
413 (Request Entity Too Large/請求實體過大)
413 (SC_REQUEST_ENTITY_TOO_LARGE)告訴客戶端現(xiàn)在所請求的文檔比服務(wù)器現(xiàn)在想要處理的要大。如果服務(wù)器認為能夠過一段時間處理,則會包含一個Retry-After的響應(yīng)頭信息。該狀態(tài)是新加入 HTTP 1.1的。
414 (Request URI Too Long/請求URI過長)
414 (SC_REQUEST_URI_TOO_LONG)狀態(tài)用于在URI過長的情況時。這里所指的“URI”是指URL中主機、域名及端口號之后的內(nèi)容。該狀態(tài)是新加入 HTTP 1.1的。
415 (Unsupported Media Type/不支持的媒體格式)
415 (SC_UNSUPPORTED_MEDIA_TYPE)意味著請求所帶的附件的格式類型服務(wù)器不知道如何處理。該狀態(tài)是新加入 HTTP 1.1的。
416 (Requested Range Not Satisfiable/請求范圍無法滿足)
416表示客戶端包含了一個服務(wù)器無法滿足的Range頭信息的請求。該狀態(tài)是新加入 HTTP 1.1的。奇怪的是,在servlet 2.1版本API的HttpServletResponse中并沒有相應(yīng)的常量代表該狀態(tài)。
注意
在servlet 2.1的規(guī)范中,類HttpServletResponse并沒有SC_REQUESTED_RANGE_NOT_SATISFIABLE 這樣的常量,所以你只能直接使用416。在servlet 2.2版本之后都包含了此常量。
417 (Expectation Failed/期望失敗)
如果服務(wù)器得到一個帶有100-continue值的Expect請求頭信息,這是指客戶端正在詢問是否可以在后面的請求中發(fā)送附件。在這種情況下,服務(wù)器也會用該狀態(tài)(417)告訴瀏覽器服務(wù)器不接收該附件或用100 (SC_CONTINUE)狀態(tài)告訴客戶端可以繼續(xù)發(fā)送附件。該狀態(tài)是新加入 HTTP 1.1的。
500 (Internal Server Error/內(nèi)部服務(wù)器錯誤)
500 (SC_INTERNAL_SERVER_ERROR) 是常用的“服務(wù)器錯誤”狀態(tài)。該狀態(tài)經(jīng)常由CGI程序引起也可能(但愿不會如此!)由無法正常運行的或返回頭信息格式不正確的servlet引起。
501 (Not Implemented/未實現(xiàn))
501 (SC_NOT_IMPLEMENTED)狀態(tài)告訴客戶端服務(wù)器不支持請求中要求的功能。例如,客戶端執(zhí)行了如PUT這樣的服務(wù)器并不支持的命令。
502 (Bad Gateway/錯誤的網(wǎng)關(guān))
502 (SC_BAD_GATEWAY)被用于充當代理或網(wǎng)關(guān)的服務(wù)器;該狀態(tài)指出接收服務(wù)器接收到遠端服務(wù)器的錯誤響應(yīng)。
503 (Service Unavailable/服務(wù)無法獲得)
狀態(tài)碼503 (SC_SERVICE_UNAVAILABLE)表示服務(wù)器由于在維護或已經(jīng)超載而無法響應(yīng)。例如,如果某些線程或數(shù)據(jù)庫連接池已經(jīng)沒有空閑則servlet會返回這個頭信息。服務(wù)器可提供一個Retry-After頭信息告訴客戶端什么時候可以在試一次。
504 (Gateway Timeout/網(wǎng)關(guān)超時)
該狀態(tài)也用于充當代理或網(wǎng)關(guān)的服務(wù)器;它指出接收服務(wù)器沒有從遠端服務(wù)器得到及時的響應(yīng)。該狀態(tài)是新加入 HTTP 1.1的。
505 (HTTP Version Not Supported/不支持的 HTTP 版本)
505 (SC_HTTP_VERSION_NOT_SUPPORTED)狀態(tài)碼是說服務(wù)器并不支持在請求中所標明 HTTP 版本。該狀態(tài)是新加入 HTTP 1.1的。
藍藍設(shè)計的小編 http://www.wnxcall.com