HTTP/1.1 200 OK
This is an example of status codes.
Here, the first line indicates the HTTP Version (HTTP/1.1), a status code (200) and a short description of status code (ok). Second line consists of the various headers sent by Server. At mimimal, it has a content type. The data after the blank line indicates the document itself, though not all responses may have a document. If a document is present, the content type indicates its MIME type.
Given below is a list of the commonly used status codes. The status codes are all three-digit numbers that are grouped by the first digit into 5 groups.
Continue with partial request.
101 Switching Protocols
Server will comply with
Upgradeheader and change to different protocol.
Means that the server did whatever the client wanted it to, and all is well.
The rest of the 2xx status codes are mainly meant for script processing and are
not often used.
Means that the resource is somewhere else and that the client should try again at
a new address.
301 Moved permanently
The resource the client requested is somewhere else, and the client should go there
to get it. Any links or other references to this resource should be updated.
302 Moved temporarily
This means the same as the 301 response, but links should now not be updated, since
the resource may be moved again in the future.
304 Not modified
This response can be returned if the client used the if-modified-since header field
and the resource has not been modified since the given time. Simply means that the
cached version should be displayed for the user.
4xx: Client error
Means that the client screwed up somehow, usually by asking for something it should
not have asked for.
400 Bad request
The request sent by the client didn't have the correct syntax.
Client tried to access password-protected page without proper authorization. Response should include a
WWW-Authenticateheader that the browser would use to pop up a username/password dialog box, which then comes back via the
The client is not allowed to access the resource and authorization will not help.
Often the result of bad file or directory permissions on the server.
404 Not found
Seen this one before? :) It means that the server has not heard of the resource
and has no further clues as to what the client should do about it. In simpler
words: dead link.
405 Method Not Allowed
The request method not allowed for this particular resource.
5xx: Server error
This means that the server screwed up or that it couldn't do as the client requested.
500 Internal server error
Something went wrong inside the server. It is often the result of Servlets or CGI
programs or (Any Other Server Side Technology) that crash or return improperly
501 Not implemented
The request method is not supported by the server.
503 Service unavailable
This sometimes happens if the server is too heavily loaded and cannot service the
request. Usually, the solution is for the client to wait a while and try again.
A servlet might return this header if some thread or database connection pool is
currently full. Server can supply a
505 HTTP Version Not Supported
Server doesn't support version of HTTP indicated in request line.
Just keep in mind that some of the status codes may be available only in HTTP/1.1 version though some of the browsers may still support only HTTP/1.0 version.
The general method of setting status codes is simply to call
response.setStatus(int), there are two common cases where a shortcut method in
HttpServletResponseis provided. The
sendErrormethod generates a 404 response along with a short message formatted inside an HTML document. The advantage of
setStatusis that, with
sendError, the server automatically generates an error page showing the error message. And the
sendRedirectmethod generates a 302 response along with a
Locationheader indicating the URL of the new document.