Servlet – HTTP Status Codes
Last Updated :
30 Dec, 2021
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
|
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 cannot use this code yet |
403 |
Forbidden |
Access is forbidden to the requested page |
404 |
Not found |
The server cannot find the requested page. |
405 |
Method not found |
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 was evaluated as 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 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. |
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.
S.No.
|
Method and Description
|
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 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.
Java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
public class showError extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.sendError( 404 , "Not Found!!!" );
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
|
Now calling the above servlet would display the following result −
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...