JSP HTTP Status Codes
HTTP requests and HTTP responses have similar formats, both consisting of the following structure:
- Starts with a status line + CRLF (carriage return line feed)
- Zero or more header lines + CRLF
- A blank line, such as CRLF
- An optional message body, such as files, query data, query output
For example, a server response header looks like this:
HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
(Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>
The following table lists the HTTP status codes that may be returned by the server and their associated messages:
Status 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 with the request |
101 | Switching Protocols | Server is switching protocols |
200 | OK | Request has been fulfilled |
201 | Created | Request has been fulfilled, new resource created |
202 | Accepted | Request has been accepted for processing, but the processing has not been completed |
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 permanent 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 | Server did not understand the request |
401 | Unauthorized | The requested page needs a username and 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 | "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 request is too large for the server to process |
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 specified HTTP version |
Methods to Set HTTP Status Codes
The following table lists the methods in the HttpServletResponse class used to set status codes:
S.N. | Method & Description |
---|---|
1 | public void setStatus (int statusCode) This method sets any status code. If your response includes a special status code and a document, ensure that you call the setStatus method before returning any content with PrintWriter. |
2 | public void sendRedirect(String url) This method generates a 302 response along with a Location header indicating the URL of a new document. |
3 | public void sendError(int code, String message) This method sends a status code (usually 404) and a short message, which is automatically inserted into an HTML document and sent back to the client. |
HTTP Status Code Program Example
The following example sends a 407 error code to the browser, which will then inform you "Need authentication!!!".
<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
// Set error code and reason
response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>
Accessing the above JSP page will result in the following:
You can also try using other status codes to see if you get any unexpected results.