JSP - Http Status Codes

In this chapter, we will discuss the Http Status Codes in JSP. The format of the HTTP request and the HTTP response messages are similar and will have the following structure −
  • An initial status line + CRLF (Carriage Return + Line Feed ie. New Line)
  • Zero or more header lines + CRLF
  • A blank line ie. a CRLF
  • An optional message body like file, query data or query output.
For example, a server response header looks like the following −
HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
   (Blank Line)
<!doctype ...>

<html>
   <head>...</head>
   
   <body>
      ...
   </body>
</html>
The status line consists of the HTTP version (HTTP/1.1 in the example), a status code (200 in the example), and a very short message corresponding to the status code (OK in the example).
Following table lists out the HTTP status codes and associated messages that might be returned from the Web Server −
CodeMessageDescription
100ContinueOnly 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
101Switching ProtocolsThe server switches protocol.
200OKThe request is OK
201CreatedThe request is complete, and a new resource is created 
202AcceptedThe request is accepted for processing, but the processing is not complete.
203Non-authoritative Information
204No Content
205Reset Content
206Partial Content
300Multiple ChoicesA link list; the user can select a link and go to that location. Maximum five addresses.
301Moved PermanentlyThe requested page has moved to a new url.
302FoundThe requested page has moved temporarily to a new url.
303See OtherThe requested page can be found under a different url.
304Not Modified
305Use Proxy
306UnusedThis code was used in a previous version. It is no longer used, but the code is reserved.
307Temporary RedirectThe requested page has moved temporarily to a new url.
400Bad RequestThe server did not understand the request.
401UnauthorizedThe requested page needs a username and a password.
402Payment RequiredYou can not use this code yet.
403ForbiddenAccess is forbidden to the requested page
404Not FoundThe server can not find the requested page.
405Method Not AllowedThe method specified in the request is not allowed.
406Not AcceptableThe server can only generate a response that is not accepted by the client.
407Proxy Authentication RequiredYou must authenticate with a proxy server before this request can be served.
408Request TimeoutThe request took longer than the server was prepared to wait.
409ConflictThe request could not be completed because of a conflict.
410GoneThe requested page is no longer available.
411Length RequiredThe "Content-Length" is not defined. The server will not accept the request without it.
412Precondition FailedThe precondition given in the request evaluated to false by the server.
413Request Entity Too LargeThe server will not accept the request, because the request entity is too large.
414Request-url Too LongThe server will not accept the request, because the url is too long. This occurs when you convert a "post" request to a "get" request with a long query information.
415Unsupported Media TypeThe server will not accept the request, because the media type is not supported.
417Expectation Failed
500Internal Server ErrorThe request was not completed. The server met an unexpected condition.
501Not ImplementedThe request was not completed. The server did not support the functionality required.
502Bad GatewayThe request was not completed. The server received an invalid response from the upstream server.
503Service UnavailableThe request was not completed. The server is temporarily overloading or down.
504Gateway TimeoutThe gateway has timed out.
505HTTP Version Not SupportedThe server does not support the "http protocol" version.

Methods to Set HTTP Status Code

Following methods can be used to set the HTTP Status Code in your servlet program. These methods are available with the HttpServletResponse object.
S.No.Method & 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 Locationheader 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

Following example shows how a 407 error code is sent to the client browser. After this, the browser would show you "Need authentication!!!" message.
<html>
   <head>
      <title>Setting HTTP Status Code</title>
   </head>
   
   <body>
      <%
         // Set error code and reason.
         response.sendError(407, "Need authentication!!!" );
      %>
   </body>
</html>
You will receive the following output −

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

To become more comfortable with HTTP status codes, try to set different status codes and their description.

Comments

Popular posts from this blog

JSP - Http Status Codes

About JSP(Java Server Pages)

JSP - Filters

JSP - Security

JSP - Standard Tag Library (JSTL) Tutorial

JSP - Internationalization| i18n| l10n

JSP - Session Tracking

JSP - Handling Date

JSP - XML Data

JSP - Database Access