Servlet – HTTP Status Codes
For each HTTP request and HTTP response, we have messages. The format of the HTTP request
and HTTP response messages are similar and will have the following structure −
• An initial status line + CRLF
• CRLF = ( Carriage Return + Line Feed i.e. New Line )
• Zero or more header lines + CRLF
• A blank line, i.e., a CRLF
• An optional message body like file, query data, or query output.
For example, a server response header looks like−
• HTML
HTTP/5.0 200 OK
Content-Type: text/html
Headers:
(Blank Line)
<!doctype HTML>
<html>
<head></head>
<body>
</body>
</html>
The status line consists of the HTTP version (HTTP/5 in the example), a status code (200 in the
example), and a very short message corresponding to the status code (OK in the example). Here
is a list of HTTP status codes and associated messages that might be returned from the Web
Server −
Status
Code Message Description
Only a part of the request has been received by the
100 Continue 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
The request is accepted for processing, but the
202 Accepted
processing is not complete.
Non-authoritative
203
Information
204 No content
205 Reset content
206 Partial content
A link list. The user can select a link and go to that
300 Multiple choices
location. Maximum five addresses
Status
Code Message Description
Moved
301 The requested page has moved to a new URL
permanently
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
This code was used in a previous version. It is no longer
306 Unused
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 cannot use this code yet
403 Forbidden Access is forbidden to the requested page
404 Not found The server cannot find the requested page.
Status
Code Message Description
405 Method not found The method specified in the request is not allowed.
The server can only generate a response that is not
406 Not Acceptable
accepted by the client.
Proxy
You must authenticate with a proxy server before this
407 Authentication
request can be served.
Required
The request took longer than the server was prepared to
408 Request Timeout
wait.
The request could not be completed because of a
409 Conflict
conflict.
410 Gone The requested page is no longer available.
The “Content-Length” is not defined. The server will not
411 Length Required
accept the request without it.
The precondition given in the request was evaluated as
412 Precondition Failed
false by the server.
Request Entity Too The server will not accept the request, because the
413
Large request entity is too large.
Status
Code Message Description
The server will not accept the request, because the URL
Request-url Too
414 is too long. Occurs when you convert a “post” request to
Long
a “get” request with long query information.
Unsupported The server will not accept the request, because the
415
Media Type media type is not supported.
417 Expectation Failed
Internal Server The request was not completed. The server met an
500
Error unexpected condition.
The request was not completed. The server did not
501 Not Implemented
support the functionality required.
The request was not completed. The server received an
502 Bad Gateway
invalid response from the upstream server.
Service The request was not completed. The server is
503
Unavailable temporarily overloading or down.
504 Gateway Timeout The gateway has timed out.
HTTP Version Not
505 The server does not support the “http protocol” version.
Supported
Methods to Set HTTP Status Code
The below methods can be used to set HTTP Status Code in your servlet program. These
methods are available with the HttpServletResponse object.
[Link]. Method and Description
public void setStatus ( int statusCode )
This method sets an arbitrary status code. The setStatus method takes an int (the
1 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.
public void sendRedirect(String url)
2 This method generates a 302 response along with a Location header giving the URL of
the new document
public void sendError(int code, String message)
3 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 Status Code Example
The code below is the example that would send a 407 error code to the client browser and the
browser would show you the “Not Found!!!” message.
// Import required java libraries
import [Link].*;
import [Link].*;
import [Link].*;
import [Link].*;
// Extend HttpServlet class
public class showError extends HttpServlet {
// Method to handle GET method request.
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set error code and reason.
[Link](404, "Not Found!!!" );
// Method to handle POST method request.
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
Now calling the above servlet would display the following result −