English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Servlet HTTP Status Codes

The format of HTTP request and HTTP response messages is similar, with the following structure:

  • Initial status line + Newline return (return)+(newline)

  • Zero or more header lines+Newline return

  • A blank line, that is, a newline return

  • An optional message body, such as a file, query data, or query output

For example, the server response headers are as follows:

HTTP/1.1 200 OK
Content-Type: .../html
Header2: ...
...
HeaderN: ...
  (Blank Line)
<!doctype ...>
<html>
<head>.../head>
<body>
...
</body>
</html>

The status line includes the HTTP version (in this example, HTTP/1.1), a status code (in this example, 200) and a short message corresponding to the status code (in this example, OK).

The following is a list of possible HTTP status codes returned by web servers and the related information:

CodeMessageDescription
100ContinueOnly part of the request has been received by the server, but as long as it is not rejected, the client should continue the request.
101Switching ProtocolsServer switching protocols.
200OKRequest successful.
201CreatedThis request is complete and creates a new resource.
202AcceptedThe request is accepted and processed, but the processing is incomplete.
203Non-authoritative Information 
204No Content 
205Reset Content 
206Partial Content 
300Multiple ChoicesList of links. The user can choose a link to enter the location. Up to five addresses.
301Moved PermanentlyThe requested page has been moved to a new URL.
302FoundThe requested page has been temporarily redirected to a new URL.
303See OtherThe requested page can be found at another different URL.
304Not Modified 
305Use Proxy 
306UnusedThis code was used in previous versions. It is no longer used now, but the code is still retained.
307Temporary RedirectThe requested page has been temporarily redirected to a new URL.
400Bad RequestThe server does not understand the request.
401UnauthorizedThe requested page requires a username and password.
402Payment RequiredYou are not yet able to use this code.
403ForbiddenAccess to the requested page is forbidden.
404Not FoundThe server cannot find the requested page.
405Method Not AllowedThe method specified in the request is not allowed.
406Not AcceptableThe server only generates a response that is not accepted by the client.
407Proxy Authentication RequiredYou must use the proxy server's authentication before the request is delivered.
408Request TimeoutThe request needs more time than the server can wait, resulting in a timeout.
409ConflictThe request could not be completed due to a conflict.
410GoneThe requested page is no longer available.
411Length Required"Content"-"Length" is undefined. The server cannot process the client's request without Content.-Length of the request information.
412Precondition FailedThe prerequisite provided in the request is evaluated as false by the server.
413Request Entity Too LargeThe server does not accept the request because the request entity is too large.
414Request-URL Too LongThe server does not accept the request because the URL is too long. This occurs when you convert a "post" request to a "get" request with long query information.
415Unsupported Media TypeThe server does not accept the request because the media type is not supported.
417Expectation Failed 
500Internal Server ErrorIncomplete request. The server encountered an unexpected situation.
501Not ImplementedIncomplete request. The server does not support the required function.
502Bad GatewayIncomplete request. The server received an invalid response from the upstream server.
503Service UnavailableIncomplete request. The server is temporarily overloaded or has crashed.
504Service UnavailableGateway Timeout
505HTTP Version Not SupportedThe 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 set through HttpServletResponse Object available.

Serial numberMethod & Description
1public void setStatus ( int statusCode )
This method sets an arbitrary status code. The setStatus method accepts an int (status code) as a parameter. If your response contains a special status code and document, make sure to use PrintWriter call setStatus before returning any content actually.
2public void sendRedirect(String url)
This method generates a 302 response, along with a new document URL Location header.
3public void sendError(int code, String message)
This method sends a status code (usually 404),along with a short message formatted and sent to the client automatically within the HTML document.

HTTP status code examples

The following example takes 407 Error codes are sent to the client browser, and the browser will display the message "Need authentication!!!".

// Import the necessary java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import javax.servlet.annotation.WebServlet;
@WebServlet("/showError())
// Extend the HttpServlet class
public class showError extends HttpServlet {}}
 
  // Method to handle GET method requests
  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 requests
  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