Easy Tutorial
❮ Servlet Server Response Servlet Form Data ❯

Servlet HTTP Status Codes

The format of HTTP requests and HTTP response messages is similar, structured as follows:

For example, the server's 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 status line includes the HTTP version (in this case, HTTP/1.1), a status code (in this case, 200), and a short message corresponding to the status code (in this case, OK).

Below is a list of possible HTTP status codes and related information that may be returned by a web server:

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 The server is switching protocols.
200 OK The request is successful.
201 Created The request is complete, and a new resource has been created.
202 Accepted The request has been 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 list of links. The user can select a link and go to that location. Maximum five addresses.
301 Moved Permanently The requested page has been moved to a new URL.
302 Found The requested page has been temporarily moved 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 still reserved.
307 Temporary Redirect The requested page has been temporarily moved to a new URL.
400 Bad Request The server did not understand the request.
401 Unauthorized The requested page needs a username and 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 Allowed The specified method 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 is 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 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 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 is not completed. The server does not support the required functionality.
502 Bad Gateway The request is not completed. The server received an invalid response from the upstream server.
503 Service Unavailable The request is not completed. The server is temporarily overloaded or down.
504 Gateway Timeout Gateway timeout.
505 HTTP Version Not Supported The server does not support the "HTTP protocol" version.

Methods to Set HTTP Status Codes

The following methods can be used to set HTTP status codes in Servlet programs. These methods are available through the HttpServletResponse object.

No. Method & Description
1 public void setStatus ( int statusCode ) <br>This method sets an arbitrary status code. The setStatus method takes an int (status code) as a parameter. If your response includes a special status code and a document, make sure to call setStatus before actually returning any content with PrintWriter.
2 public void sendRedirect(String url) <br>This method generates a 302 response, along with a Location header containing the new document's URL.
3 public void sendError(int code, String message) <br>This method sends a status code (usually 404), along with a short message that is automatically formatted and sent to the client within an HTML document.

HTTP Status Code Example

The following example sends a 407 error code to the client browser, which will display the message "Need authentication!!!".

// Import necessary Java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import javax.servlet.annotation.WebServlet;

@WebServlet("/showError")
// 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(407, "Need authentication!!!" );
  }
  // Method to handle POST method request
  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 |

❮ Servlet Server Response Servlet Form Data ❯