JSP Http狀態碼
在HTTP請求和HTTP響應消息的格式是類似的,將有以下結構:
-
初始狀態行+ CRLF(回車+換行即,換行)
-
零個或多個標題行 + CRLF
-
一個空行 ie. a CRLF
-
一個可選的消息體,如文件,查詢數據或查詢輸出。
例如,服務器的響應頭如下所示:
HTTP/1.1 200 OK Content-Type: text/html Header2: ... ... HeaderN: ... (Blank Line) <!doctype ...> <html> <head>...</head> <body> ... </body> </html>
狀態行包含HTTP版本(HTTP/1.1中的例子),一個狀態碼(200中的例子),以及相應的狀態碼(確定在本例中),在很短的消息。
以下是HTTP狀態碼和可能從Web服務器返回相關的信息的列表:
Code: | Message: | Description: |
---|---|---|
100 | Continue | Only a part of the request has been received by the server, but as long as it has not been rejected, the client should continue with the request |
101 | Switching Protocols | The server switches protocol. |
200 | OK | The request is OK |
201 | Created | The request is complete, and a new resource is created |
202 | Accepted | The request is accepted for processing, but the processing is not complete. |
203 | Non-authoritative Information | |
204 | No Content | |
205 | Reset Content | |
206 | Partial Content | |
300 | Multiple Choices | A link list. The user can select a link and go to that location. Maximum five addresses |
301 | Moved Permanently | The requested page has moved to a new url |
302 | Found | The requested page has moved temporarily to a new url |
303 | See Other | The requested page can be found under a different url |
304 | Not Modified | |
305 | Use Proxy | |
306 | Unused | This code was used in a previous version. It is no longer used, but the code is reserved. |
307 | Temporary Redirect | The requested page has moved temporarily to a new url. |
400 | Bad Request | The server did not understand the request |
401 | Unauthorized | The requested page needs a username and a password |
402 | Payment Required | You can not use this code yet |
403 | Forbidden | Access is forbidden to the requested page |
404 | Not Found | The server can not find the requested page. |
405 | Method Not Allowed | The method specified in the request is not allowed. |
406 | Not Acceptable | The server can only generate a response that is not accepted by the client. |
407 | Proxy Authentication Required | You must authenticate with a proxy server before this request can be served. |
408 | Request Timeout | The request took longer than the server was prepared to wait. |
409 | Conflict | The request could not be completed because of a conflict. |
410 | Gone | The requested page is no longer available. |
411 | Length Required | The "Content-Length" is not defined. The server will not accept the request without it. |
412 | Precondition Failed | The precondition given in the request evaluated to false by the server. |
413 | Request Entity Too Large | The server will not accept the request, because the request entity is too large. |
414 | Request-url Too Long | The server will not accept the request, because the url is too long. Occurs when you convert a "post" request to a "get" request with a long query information. |
415 | Unsupported Media Type | The server will not accept the request, because the media type is not supported. |
417 | Expectation Failed | |
500 | Internal Server Error | The request was not completed. The server met an unexpected condition |
501 | Not Implemented | The request was not completed. The server did not support the functionality required. |
502 | Bad Gateway | The request was not completed. The server received an invalid response from the upstream server |
503 | Service Unavailable | The request was not completed. The server is temporarily overloading or down. |
504 | Gateway Timeout | The gateway has timed out. |
505 | HTTP Version Not Supported | The server does not support the "http protocol" version. |
設置HTTP狀態代碼的方法:
有以下方法可用於設置HTTP狀態代碼中的Servlet程序。這些方法可用HttpServletResponse對象。
S.N. | 方法 & 描述 |
---|---|
1 |
public void setStatus ( int statusCode ) This method sets an arbitrary status code. The setStatus method takes an int (the status code) as an argument. If your response includes a special status code and a document, be sure to call setStatus before actually returning any of the content with the PrintWriter. |
2 |
public void sendRedirect(String url) This method generates a 302 response along with a Location header giving the URL of the new document. |
3 |
public void sendError(int code, String message) This method sends a status code (usually 404) along with a short message that is automatically formatted inside an HTML document and sent to the client. |
HTTP 狀態碼實例:
以下是這將發送407錯誤代碼給客戶端的瀏覽器和瀏覽器會顯示範例“需要身份驗證!”消息。
<html> <head> <title>Setting HTTP Status Code</title> </head> <body> <% // Set error code and reason. response.sendError(407, "Need authentication!!!" ); %> </body> </html>
現在,調用上麵的JSP將顯示以下結果:
HTTP Status 407 - Need authentication!!!type Status report message Need authentication!!! description The client must first authenticate itself with the proxy (Need authentication!!!). APACHE TOMCAT/5.5.29 |
關於HTTP狀態碼,你可以嘗試設置不同的狀態代碼及其說明。