The Internet HTTP1.1 protocol specifies a whole set of errors that are recorded by most servers. The error codes are encoded into decimal ranges. For the full set of error codes please refer to RFC2616 for the authoritative explanation.
The status codes are returned to the client making the request (typically an Internet Browser) and also recorded in the server's log file.
| 100 to 199 | Informational status codes, rarely used |
| 200 to 299 | Successful, only 200 frequently used |
| 300 to 399 | Warning - but the request may still be satisfiable |
| 400 to 499 | Client Error, the request was invalid in some way |
| 500 to 599 | Server Error, the server could not fulfil the (valid) request |
Of all these possible errors you are only ever likely to see a handful when analyzing a server log file, these are shown in bold.
| 100 | Continue | The request is progressing normally |
| 200 | Success | The request was successful. Hopefully the most frequent status code |
| 201 | Created | A new resource has been created successfully on the server |
| 202 | Accepted | Request accepted but not completed yet, it will continue asynchronously |
| 203 | Non Authoritative | Request probably completed successfully but can't tell from original server |
| 204 | Empty | Success : The requested completed successfully but the resource requested is empty (has zero length) |
| 205 | Reset | The requested completed successfully but the client should clear down any cached information as it may now be invalid |
| 206 | Cancel | The request was canceled before it could be fulfilled. Typically the user gave up waiting for data and went to another page. Some download accelerator programs produce this error as they submit multiple requests to download a file at the same time |
| 300 | Multiple Choice | The request is ambiguous and needs clarification as to which resource was requested |
| 301 | Moved | The resource has permanently moved elsewhere, the response indicates where it has gone to. |
| 302 | Found | The resource has temporarily moved elsewhere, the response indicates where it is at present |
| 303 | Redirect | A preferred alternative source should be used at present |
| 304 | Not modified | The server has identified from the request information that the client's copy of the information is up-to-date and the requested information does not need to be sent again. |
| 305 | Use Proxy | The request must be sent through the indicated proxy server |
| 307 | Temporary Redirect | The resource has temporarily moved elsewhere, the response indicates where it is at present. Client should still use this URL. |
| 400 | Bad Request | The request header was not understood |
| 401 | Unauthorised | The client does not have access to this resource, authorization is needed |
| 402 | Payment Required | Reserved for future use |
| 403 | Forbidden | Access to a resource is not allowed. The most frequent case of this occurs when directory listing access is not allowed. |
| 404 | Not found | The resource request was not found. This is the code returned for missing pages or graphics. Viruses will often attempt to access resources that do not exist, so the error does not necessarily represent a problem |
| 405 | Not Allowed | The access method (GET, POST, HEAD) is not allowed on this resource |
| 406 | Not Acceptable | None of the acceptable file types (as requested by client) are available for this resource |
| 407 | Proxy Authentication | The client does not have access to this resource, proxy authorization is needed |
| 408 | Timeout | The client did not send a request within the required time period |
| 409 | Conflict | There is an internal conflict of access to the resource |
| 410 | Gone | The requested resource used to be on the server but is no longer available. Any robot seeing this response should delete the reference from its information store. |
| 411 | Length Required | The request requires the Content-Length HTTP request field to be specified |
| 412 | Precondition Failed | The request's HTTP header specified conditions that can not be met |
| 413 | Request Too Large | The URL is too long (possibly too many query strings) |
| 414 | URL Too Large | The URL is too long (possibly too many query keyword/value pairs) |
| 415 | Unsupported Media | The server does not support the resource type requested |
| 416 | Requested Range invalid | The portion of the resource requested is not available or out of range |
| 417 | Expectation Failed | The Expect specifier in the HTTP request header can not be met |
| 500 | Internal Server Error | The server had some sort of internal error trying to fulfil the request. The client may see a partial page or error message. It's a fault in the server and happens all too frequently. |
| 501 | Not Implemented | The request needs functionality not available on the server |
| 502 | Bad Gateway | The response by an intermediary server was invalid. This may happen if there is a problem with the DNS routing tables. |
| 503 | Service unavailable | Service temporarily unavailable - typically because it is currently overloaded. |
| 504 | Gateway Timeout | The server did not respond back to the gateway within acceptable time period |
| 505 | Version not supported | The request uses a version of HTTP that is not supported |