HTTP status codes are grouped as shown in Table C-1.
Code Range |
Response Meaning |
---|---|
100-199 |
Informational |
200-299 |
Client request successful |
300-399 |
Client request redirected, further action necessary |
400-499 |
Client request incomplete |
500-599 |
Server error |
Table C-2 lists the HTTP status code constants defined by the HttpServletResponse interface and used as parameters to its setStatus() and sendError() methods. The version number in the last column refers to the HTTP protocol version that first defined the status code. The Servlet API 2.0 added constants for HTTP Version 1.1 status codes. Note that HTTP 1.1 status codes require an HTTP 1.1-compliant browser.
For more information on HTTP, see Web Client Programming by Clinton Wong (O'Reilly). The proposed HTTP/1.1 specification is available in RFC 2068 at http://www.ietf.org/rfc/rfc2068.txt.
Constant |
Code |
Default Message |
Meaning |
HTTP Version |
---|---|---|---|---|
SC_CONTINUE |
100 |
Continue |
The server has received the initial part of the request, and the client can continue with the remainder of its request. |
1.1 |
SC_SWITCHING_PROTOCOLS |
101 |
Switching Protocols |
The server is willing to comply with the client's request to switch protocols to the one specified in the request's Upgrade header. This might include switching to a newer HTTP version. |
1.1 |
SC_OK |
200 |
OK |
The client's request was successful and the server's response contains the requested data. This is the default status code. |
1.0 |
SC_CREATED |
201 |
Created |
A resource has been created on the server, presumably in response to a client request. The response body should include the URL(s) where the new resource can be found, with the most specific URL set in the Location header. If the resource cannot be created immediately, an SC_ACCEPTED status code should be returned instead. |
1.0 |
SC_ACCEPTED |
202 |
Accepted |
The request has been accepted for processing but has not yet completed. The server should describe the current status of the request in the response body. The server is under no obligation to act on or complete the request. |
1.0 |
SC_NON_AUTHORITATIVE_INFORMATION |
203 |
Non-Authoritative Information |
The HTTP response headers came from a local or third-party source, rather than the original server. Normal servlets have no reason to use this status code. |
1.1 |
SC_NO_CONTENT |
204 |
No Content |
The request succeeded but there was no new response body to return. Browsers receiving this code should retain their current document view. This is a useful code for a servlet to use when it accepts data from a form but wants the browser view to stay at the form, as it avoids the "Document contains no data" error message. |
1.0 |
SC_RESET_CONTENT |
205 |
Reset Content |
The request succeeded and the browser should reset (reload) the current document view. This is a useful code for a servlet to use when it accepts data from a form and wants the form redisplayed in a fresh state. |
1.1 |
SC_PARTIAL_CONTENT |
206 |
Partial Content |
The server has completed a partial GET request and returned the portion of the document specified in the client's Range header. |
1.1 |
SC_MULTIPLE_CHOICES |
300 |
Multiple Choices |
The requested URL refers to more than one resource. For example, the URL may refer to a document translated into many languages. The response body should explain the client's options in a format appropriate for the response content type. The server can suggest a choice with the Location header. |
1.1 |
SC_MOVED_PERMANENTLY |
301 |
Moved Permanently |
The requested resource has permanently moved to a new location and future references should use the new URL in their requests. The new location is given by the Location header. Most browsers automatically access the new location. |
1.0 |
SC_MOVED_TEMPORARILY |
302 |
Moved Temporarily |
The requested resource has temporarily moved to another location, but future references should still use the original URL to access the resource. The new location is given by the Location header. Most browsers automatically access the new location. |
1.0 |
SC_SEE_OTHER |
303 |
See Other |
The requested resource processed the request but the client should get its response by performing a GET on the URL specified in the Location header. This code is useful for a servlet that wants to receive POST data then redirect the client to another resource for the response. |
1.1 |
SC_NOT_MODIFIED |
304 |
Not Modified |
The requested document has not changed since the date specified in the request's If-Modified-Since header. Normal servlets should not need to use this status code. They implement getLastModified() instead. |
1.0 |
SC_USE_PROXY |
305 |
Use Proxy |
The requested resource must be accessed via the proxy given in the Location header. |
1.1 |
SC_BAD_REQUEST |
400 |
Bad Request |
The server could not understand the request, probably due to a syntax error. |
1.0 |
SC_UNAUTHORIZED |
401 |
Unauthorized |
The request lacked proper authorization. Used in conjunction with the WWW-Authenticate and Authorization headers. |
1.0 |
SC_PAYMENT_REQUIRED |
402 |
Payment Required |
Reserved for future use. Proposals exist to use this code in conjunction with a Charge-To header, but this has not been standardized as of press time. |
1.1 |
SC_FORBIDDEN |
403 |
Forbidden |
The request was understood, but the server is not willing to fulfill it. The server can explain the reason for its unwillingness in the response body. |
1.0 |
SC_NOT_FOUND |
404 |
Not Found |
The requested resource was not found or is not available. |
1.0 |
SC_METHOD_NOT_ALLOWED |
405 |
Method Not Allowed |
The method used by the client is not supported by this URL. The methods that are supported must be listed in the response's Allow header. |
1.1 |
SC_NOT_ACCEPTABLE |
406 |
Not Acceptable |
The requested resource exists, but not in a format acceptable to the client (as indicated by the Accept header(s) in the request). |
1.1 |
SC_PROXY_AUTHENTICATION_REQUIRED |
407 |
Proxy Authentication Required |
The proxy server needs authorization before it can proceed. Used with the Proxy-Authenticate header. Normal servlets should not need to use this status code. |
1.1 |
SC_REQUEST_TIMEOUT |
408 |
Request Timeout |
The client did not completely finish its request within the time that the server was willing to listen. |
1.1 |
SC_CONFLICT |
409 |
Conflict |
The request could not be completed because it conflicted with another request or the server's configuration. This code is most likely to occur with HTTP PUT requests, where the file being put is under revision control and the new version conflicts with some previous changes. The server can send a description of the conflict in the response body. |
1.0 |
SC_GONE |
410 |
Gone |
The resource is no longer available at this server, and no alternate address is known. This code should be used only when the resource has been permanently removed. Normal servlets have no reason to use this status code. |
1.1 |
SC_LENGTH_REQUIRED |
411 |
Length Required |
The server will not accept the request without a Content-Length header. |
1.1 |
SC_PRECONDITION_FAILED |
412 |
Precondition Failed |
A precondition specified by one or more If... headers in the request evaluated to false. |
1.1 |
SC_REQUEST_ENTITY_TOO_LARGE |
413 |
Request Entity Too Large |
The server will not process the request because the request content is too large. If this limitation is temporary, the server can include a Retry-After header. |
1.1 |
SC_REQUEST_URI_TOO_LONG |
414 |
Request-URI Too Long |
The server will not process the request because the request URI is longer than the server is willing to interpret. This can occur when a client has accidentally converted a POST request into a GET request. Normal servlets have no reason to use this status code. |
1.1 |
SC_UNSUPPORTED_MEDIA_TYPE |
415 |
Unsupported Media Type |
The server will not process the request because the request body is in a format unsupported by the requested resource. |
1.1 |
SC_INTERNAL_SERVER_ERROR |
500 |
Internal Server Error |
An unexpected error occurred inside the server that prevented it from fulfilling the request. |
1.0 |
SC_NOT_IMPLEMENTED |
501 |
Not Implemented |
The server does not support the functionality needed to fulfill the request. |
1.0 |
SC_BAD_GATEWAY |
502 |
Bad Gateway |
A server acting as a gateway or proxy did not receive a valid response from an upstream server. |
1.0 |
SC_SERVICE_UNAVAILABLE |
503 |
Service Unavailable |
The service (server) is temporarily unavailable but should be restored in the future. If the server knows when it will be available again, a Retry-After header may also be supplied. |
1.0 |
SC_GATEWAY_TIMEOUT |
504 |
Gateway Timeout |
A server acting as a gateway or proxy did not receive a valid response from an upstream server during the time it was prepared to wait. |
1.1 |
SC_HTTP_VERSION_NOT_SUPPORTED |
505 |
HTTP Version Not Supported |
The server does not support the version of the HTTP protocol used in the request. The response body should specify the protocols supported by the server. Normal servlets should not need to use this status code. |
Copyright © 2001 O'Reilly & Associates. All rights reserved.