HTTP status codes are returned by web servers to indicate the status of a request. Codes 200 and 304 are used to tell the browser the page can be viewed. All other codes generates hits and traffic 'not seen' by the visitor. For example a return code 301 or 302 will tell the browser to ask another page. The browser will do another hit and should finaly receive the page with a return code 200 and 304.
The following table outlines all status codes defined for the HTTP/1.1 draft specification outlined in IETF rfc 2068. They are 3-digit codes where the first digit of this code identifies the class of the status code and the remaining 2 digits correspond to the specific condition within the response class.
They are classified in 5 categories:
1xx - informational
2xx - successful
3xx - redirection
4xx - client error
5xx - server error
1xx class - Informational Informational status codes are provisional responses from the web server... they give the client a heads-up on what the server is doing. Informational codes do not indicate an error condition.
100
100 Continue The continue status code tells the browser to continue sending a request to the server.
101
101 Switching Protocols The server sends this response when the client asks to switch from HTTP/1.0 to HTTP/1.1
2xx class - Successful This class of status code indicates that the client's request was received, understood, and successful.
200
200 Successful
201
201 Created
202
202 Accepted
203
203 Non-Authorative Information
204
204 No Content
205
205 Reset Content
206
206 Partial Content The partial content success code is issued when the server fulfills a partial GET request. This happens when the client is downloading a multi-part document or part of a larger file.
3xx class - Redirection This code tells the client that the browser should be redirected to another URL in order to complete the request. This is not an error condition.
300
300 Multiple Choices
301
301 Moved Permanently
302
302 Moved Temporarily
303
303 See Other
304
304 Not Modified
305
305 Use Proxy
4xx class - Client Error This status code indicates that the client has sent bad data or a malformed request to the server. Client errors are generally issued by the webserver when a client tries to gain access to a protected area using a bad username and password.
400
400 Bad Request
401
401 Unauthorized
402
402 Payment Required
403
403 Forbidden
404
404 Not Found
405
400 Method Not Allowed
406
400 Not Acceptable
407
400 Proxy Authentication Required
408
400 Request Timeout
409
409 Conflict
410
410 Gone
411
411 Length Required
412
412 Precondition Failed
413
413 Request Entity Too Long
414
414 Request-URI Too Long
415
415 Unsupported Media Type
5xx class - Server Error This status code indicates that the client's request couldn't be succesfully processed due to some internal error in the web server. These error codes may indicate something is seriously wrong with the web server.
500
500 Internal Server Error An internal server error has caused the server to abort your request. This is an error condition that may also indicate a misconfiguration with the web server. However, the most common reason for 500 server errors is when you try to execute a script that has syntax errors.
501
501 Not Implemented This code is generated by a webserver when the client requests a service that is not implemented on the server. Typically, not implemented codes are returned when a client attempts to POST data to a non-CGI (ie, the form action tag refers to a non-executable file).
502
502 Bad Gateway The server, when acting as a proxy, issues this response when it receives a bad response from an upstream or support server.
503
503 Service Unavailable The web server is too busy processing current requests to listen to a new client. This error represents a serious problem with the webserver (normally solved with a reboot).
504
504 Gateway Timeout Gateway timeouts are normally issued by proxy servers when an upstream or support server doesn't respond to a request in a timely fashion.
505
505 HTTP Version Not Supported The server issues this status code when a client tries to talk using an HTTP protocol that the server doesn't support or is configured to ignore.