JSP HTTP 狀態(tài)碼

HTTP請(qǐng)求與HTTP響應(yīng)的格式相近,都有著如下結(jié)構(gòu):

  • 以狀態(tài)行+CRLF(回車換行)開始

  • 零行或多行頭模塊+CRLF

  • 一個(gè)空行,比如CRLF

  • 可選的消息體比如文件,查詢數(shù)據(jù),查詢輸出

舉例來(lái)說(shuō),一個(gè)服務(wù)器響應(yīng)頭看起來(lái)就像下面這樣:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>

狀態(tài)行包含HTTP版本,一個(gè)狀態(tài)碼,和狀態(tài)碼相對(duì)應(yīng)的短消息。

下表列出了可能會(huì)從服務(wù)器返回的HTTP狀態(tài)碼和與之關(guān)聯(lián)的消息:

狀態(tài)碼消息描述
100 Continue 只有一部分請(qǐng)求被服務(wù)器接收,但只要沒被服務(wù)器拒絕,客戶端就會(huì)延續(xù)這個(gè)請(qǐng)求
101 Switching Protocols 服務(wù)器交換機(jī)協(xié)議
200 OK 請(qǐng)求被確認(rèn)
201 Created 請(qǐng)求時(shí)完整的,新的資源被創(chuàng)建
202 Accepted 請(qǐng)求被接受,但未處理完
203 Non-authoritative Information  
204 No Content  
205 Reset Content  
206 Partial Content  
300 Multiple Choices 一個(gè)超鏈接表,用戶可以選擇一個(gè)超鏈接并訪問,最大支持5個(gè)超鏈接
301 Moved Permanently 被請(qǐng)求的頁(yè)面已經(jīng)移動(dòng)到了新的URL下
302 Found 被請(qǐng)求的頁(yè)面暫時(shí)性地移動(dòng)到了新的URL下
303 See Other 被請(qǐng)求的頁(yè)面可以在一個(gè)不同的URL下找到
304 Not Modified  
305 Use Proxy  
306Unused 已經(jīng)不再使用此狀態(tài)碼,但狀態(tài)碼被保留
307 Temporary Redirect 被請(qǐng)求的頁(yè)面暫時(shí)性地移動(dòng)到了新的URL下
400 Bad Request 服務(wù)器無(wú)法識(shí)別請(qǐng)求
401 Unauthorized 被請(qǐng)求的頁(yè)面需要用戶名和密碼
402 Payment Required目前還不能使用此狀態(tài)碼
403 Forbidden 禁止訪問所請(qǐng)求的頁(yè)面
404 Not Found 服務(wù)器無(wú)法找到所請(qǐng)求的頁(yè)面
405 Method Not Allowed 請(qǐng)求中所指定的方法不被允許
406 Not Acceptable 服務(wù)器只能創(chuàng)建一個(gè)客戶端無(wú)法接受的響應(yīng)
407 Proxy Authentication Required 在請(qǐng)求被服務(wù)前必須認(rèn)證一個(gè)代理服務(wù)器
408 Request Timeout 請(qǐng)求時(shí)間超過(guò)了服務(wù)器所能等待的時(shí)間,連接被斷開
409 Conflict 請(qǐng)求有矛盾的地方
410 Gone 被請(qǐng)求的頁(yè)面不再可用
411 Length Required "Content-Length"沒有被定義,服務(wù)器拒絕接受請(qǐng)求
412 Precondition Failed 請(qǐng)求的前提條件被服務(wù)器評(píng)估為false
413 Request Entity Too Large 因?yàn)檎?qǐng)求的實(shí)體太大,服務(wù)器拒絕接受請(qǐng)求
414 Request-url Too Long 服務(wù)器拒絕接受請(qǐng)求,因?yàn)閁RL太長(zhǎng)。多出現(xiàn)在把"POST"請(qǐng)求轉(zhuǎn)換為"GET"請(qǐng)求時(shí)所附帶的大量查詢信息
415 Unsupported Media Type 服務(wù)器拒絕接受請(qǐng)求,因?yàn)槊襟w類型不被支持
417 Expectation Failed  
500 Internal Server Error 請(qǐng)求不完整,服務(wù)器遇見了出乎意料的狀況
501 Not Implemented 請(qǐng)求不完整,服務(wù)器不提供所需要的功能
502 Bad Gateway 請(qǐng)求不完整,服務(wù)器從上游服務(wù)器接受了一個(gè)無(wú)效的響應(yīng)
503 Service Unavailable 請(qǐng)求不完整,服務(wù)器暫時(shí)重啟或關(guān)閉
504 Gateway Timeout 網(wǎng)關(guān)超時(shí)
505 HTTP Version Not Supported 服務(wù)器不支持所指定的HTTP版本

設(shè)置HTTP狀態(tài)碼的方法

下表列出了HttpServletResponse 類中用來(lái)設(shè)置狀態(tài)碼的方法:

S.N.方法 & 描述
1public void setStatus ( int statusCode ) 此方法可以設(shè)置任意的狀態(tài)碼。如果您的響應(yīng)包含一個(gè)特殊的狀態(tài)碼和一個(gè)文檔,請(qǐng)確保在用PrintWriter返回任何內(nèi)容前調(diào)用setStatus方法
2public void sendRedirect(String url) 此方法產(chǎn)生302響應(yīng),同時(shí)產(chǎn)生一個(gè) Location 頭告訴URL 一個(gè)新的文檔
3public void sendError(int code, String message) 此方法將一個(gè)狀態(tài)碼(通常為 404)和一個(gè)短消息,自動(dòng)插入HTML文檔中并發(fā)回給客戶端

HTTP狀態(tài)碼程序示例

接下來(lái)的實(shí)例將會(huì)發(fā)送407錯(cuò)誤碼給瀏覽器,然后瀏覽器將會(huì)告訴您"Need authentication!!!"。

<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
   // 設(shè)置錯(cuò)誤代碼,并說(shuō)明原因
   response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>

訪問以上JSP頁(yè)面,將會(huì)得到以下結(jié)果:

js_http_status_codes

您也可以試試使用其他的狀態(tài)碼,看會(huì)不會(huì)得到什么意想不到結(jié)果。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清