HTTP Response Codes
I've collected information on HTTP response codes, as I haven't found a comprehensive and reliable source. A few notes:
- The code is returned from the server, and different servers may have different codes for different responses.
- For the most part, there are a small handful that will be useful: 200 (OK), 404 (file not found), 401/403 (unauthorized), and 500 (internal error).
100 Series (Processing)
These codes are passed back to the client under certain conditions while a request is being processed. Most software (like Web browsers) handle these gracefully, such that the user is never aware.
The server has received the request headers, and that the client should proceed to send the request body.
101 Switching Protocols
The client has asked the server to switch protocols and the server is acknowledging that it will do so.
Passed to inform the client that the server has not finished processing the request, and the client should expect additional data to be returned.
200 Series (Success)
These codes indicate that the server received and understood the request, and indicate something about the content that is being returned.
The server has received and responded to the request without encountering any problems, and no more data should be expected by the client.
The request resulted in something being created on the server, but no data is being returned.
The request has been accepted, but the server doesn't have anything to return just yet.
203 Non-Authoritative Information
The information returned from the server comes from another source, and may not be reliable. (Don't blame me, just passing this along.)
204 No Content
The request has been accepted and understood, but no data is being returned.
206 Partial Content
Only partial content has been returned because the client has either requested partial content or sent a desist order in mid-stream.
The content being returned has a number of status codes pertaining to different parts of the content.
300 Series (Redirected)
301 Moved Permanently
The resource has been moved to a new location. The server is returning data, but the client should use a different address in future.
302 Moved Temporarily
The resource has moved, but will be back later. The server is returning data, but the client should keep the current address for future reference, because it will be moved back after a while.
303 Changing Method
The client asked for the resource via one method (e.g. PUT) and the server is returning data, but would prefer future requests to use a different method (e.g., GET)
304 Not Modified
The server is telling the client that the content has not been modified since the last time the client asked for it.
400 Series (Client Errors)
400 Bad Request
The server doesn't understand the request (generally the result of a syntax error).
The client did not pass the correct authentication information and is being refused access ... but should try again. (Most often, the username/password was not provided).
The client is not permitted to access the resource requested, and should kindly bugger off. (Most often, the username/password was received, but is not correct.)
404 Not Found
There is no resource at the address provided, nor is there any redirect in place.
405 Method Not Allowed
The method of request (GET, POST,HEAD, etc.) is unacceptable and the server cannot (or will not) process the request by switching automatically to the client's preference.
406 Not Acceptable
The client has specified conditions regarding the data it will accept in response, and the server cannot fulfill them.
408 Request Timeout
The server got tired of waiting for the client to finish making its request.
Not only is there no resource available at the location requested (as in the 404 error), but it has been intentionally removed and nothing will be put in that location. The client should not ask for it again, ever.
413 Request Too Large
The amount of data provided as a request is larger than the server is configured to accept. Be more terse.
414 Request-URI Too Long
Similar to 413, but this pertains to the amount of data sent as part of the URI (a fat query-string is usually to blame).
418 IÕm a Little Teapot
Programmers have a weird sense of humor. 'Nuff said.
The resource requested is currently in a "locked" state (usually for editing by another user).
426 Upgrade Required
The client is using an earlier version of HTTP syntax under which the response will not be usable.
500 Series (Server Error)
500 Internal Server Error
A generic error message, generally sent when no other message is entirely suitable. Most often, a server-side error in executing a CGI script.
501 Not Implemented
The request method is unrecognized by the server, and it's not sure how to respond.
503 Service Unavailable
The server has made a request of another system in order to respond to the client, but the other system seems to be temporarily unavailable.
504 Gateway Timeout
The server has made a request of another system in order to respond to the client, but the other system has not responded in an acceptable amount of time.
505 HTTP Version Not Supported
The server does not recognize the HTTP version specified by the client. It may be invlaid, or the server may be out of date.
507 Insufficient Storage
The server does not have enough available hard drive space to process the request.
509 Bandwidth Limit Exceeded
Returned to a client by the server when the client has exceeded its quota for data transfer; or possibly from a prozy server when the server has exceeded its quota.