English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
The format of HTTP request and HTTP response messages is similar, with the following structure:
Initial status line + Newline return (return)+(newline)
Zero or more header lines+Newline return
A blank line, that is, a newline return
An optional message body, such as a file, query data, or query output
For example, the server response headers are as follows:
HTTP/1.1 200 OK Content-Type: .../html Header2: ... ... HeaderN: ... (Blank Line) <!doctype ...> <html> <head>.../head> <body> ... </body> </html>
The status line includes the HTTP version (in this example, HTTP/1.1), a status code (in this example, 200) and a short message corresponding to the status code (in this example, OK).
The following is a list of possible HTTP status codes returned by web servers and the related information:
Code | Message | Description |
---|---|---|
100 | Continue | Only part of the request has been received by the server, but as long as it is not rejected, the client should continue the request. |
101 | Switching Protocols | Server switching protocols. |
200 | OK | Request successful. |
201 | Created | This request is complete and creates a new resource. |
202 | Accepted | The request is accepted and processed, but the processing is incomplete. |
203 | Non-authoritative Information | |
204 | No Content | |
205 | Reset Content | |
206 | Partial Content | |
300 | Multiple Choices | List of links. The user can choose a link to enter the location. Up to five addresses. |
301 | Moved Permanently | The requested page has been moved to a new URL. |
302 | Found | The requested page has been temporarily redirected to a new URL. |
303 | See Other | The requested page can be found at another different URL. |
304 | Not Modified | |
305 | Use Proxy | |
306 | Unused | This code was used in previous versions. It is no longer used now, but the code is still retained. |
307 | Temporary Redirect | The requested page has been temporarily redirected to a new URL. |
400 | Bad Request | The server does not understand the request. |
401 | Unauthorized | The requested page requires a username and password. |
402 | Payment Required | You are not yet able to use this code. |
403 | Forbidden | Access to the requested page is forbidden. |
404 | Not Found | The server cannot find the requested page. |
405 | Method Not Allowed | The method specified in the request is not allowed. |
406 | Not Acceptable | The server only generates a response that is not accepted by the client. |
407 | Proxy Authentication Required | You must use the proxy server's authentication before the request is delivered. |
408 | Request Timeout | The request needs more time than the server can wait, resulting in a timeout. |
409 | Conflict | The request could not be completed due to a conflict. |
410 | Gone | The requested page is no longer available. |
411 | Length Required | "Content"-"Length" is undefined. The server cannot process the client's request without Content.-Length of the request information. |
412 | Precondition Failed | The prerequisite provided in the request is evaluated as false by the server. |
413 | Request Entity Too Large | The server does not accept the request because the request entity is too large. |
414 | Request-URL Too Long | The server does not accept the request because the URL is too long. This occurs when you convert a "post" request to a "get" request with long query information. |
415 | Unsupported Media Type | The server does not accept the request because the media type is not supported. |
417 | Expectation Failed | |
500 | Internal Server Error | Incomplete request. The server encountered an unexpected situation. |
501 | Not Implemented | Incomplete request. The server does not support the required function. |
502 | Bad Gateway | Incomplete request. The server received an invalid response from the upstream server. |
503 | Service Unavailable | Incomplete request. The server is temporarily overloaded or has crashed. |
504 | Service Unavailable | Gateway Timeout |
505 | HTTP Version Not Supported | The server does not support the "HTTP protocol" version. |
The following methods can be used to set HTTP status codes in servlet programs. These methods are set through HttpServletResponse Object available.
Serial number | Method & Description |
---|---|
1 | public void setStatus ( int statusCode ) This method sets an arbitrary status code. The setStatus method accepts an int (status code) as a parameter. If your response contains a special status code and document, make sure to use PrintWriter call setStatus before returning any content actually. |
2 | public void sendRedirect(String url) This method generates a 302 response, along with a new document URL Location header. |
3 | public void sendError(int code, String message) This method sends a status code (usually 404),along with a short message formatted and sent to the client automatically within the HTML document. |
The following example takes 407 Error codes are sent to the client browser, and the browser will display the message "Need authentication!!!".
// Import the necessary java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import javax.servlet.annotation.WebServlet; @WebServlet("/showError()) // Extend the HttpServlet class public class showError extends HttpServlet {}} // Method to handle GET method requests public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set error code and reason response.sendError(407, "Need authentication!!!"); } // Method to handle POST method requests public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
Now, calling the above Servlet will display the following result:
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 |