Open In App

Servlet – HTTP Status Codes

Last Updated : 30 Dec, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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 required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
  
// 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.
      response.sendError(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 −



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads