HTTP Status Codes Explained

HTTP Status Codes Explained

In plain English, Hypertext Transfer Protocol (HTTP) response status codes is the status of the clients request to the server. This status responses are categorized in five different classes. The first digit of the status code specifies one of five standard classes of responses i.e. 1xx Informational responses, 2xx Success, 3xx Redirection, 4xx Client Errors and 5xx Server Errors. We might have been familiar with some of these most frequently seen status code.
The official registry of status code is maintained by Internet Assigned Numbers Authority (IANA).

1xx Informational responses

This class of status code indicates that the request send by client is received by the server and understood. It is issued on provisional basis and informs client for the final response. This class was not defined in HTTP/1.0.  Some 1xx class of status codes are 100 Continue, 101 Switching Protocols and 102 Processing.

2xx Success

This class of status code indicates that request send by client is received, understood, accepted, and processed successfully. The most common status code is status 200. This status codes states successful HTTP requests. The response code also depends on the request method used (GET, POST etc.). Some other 2xx class of status codes are 201 created, 202 Accepted, 203 Non-Authoritative Information, 204 No Content, 205 Reset Content, 206 Partial Content (included in RFC 7233), 207 Multi-Status (included in RFC 4918), 208 Already Reported (included in RFC 5842), 226 IM Used (included in 3229).

3xx Redirection

This class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request. The action required MAY be carried out by the user agent without interaction with the user if and only if the method used in the second request is GET or HEAD. A client SHOULD detect infinite redirection loops, since such loops generate network traffic for each redirection.

The most common in 3xx class is 301 Permanent Redirection (all future request should be redirected to the given URI) and 307 Temporary Redirection (the request should be repeated with another URI; however, future requests should still use the original URI.)

Some 3xx redirection status codes are 300 Multiple Choices,302 Found,303 See Other,304 Not Modified, 305 Use Proxy, 306 Switch Proxy (not longer in use).

4xx Client errors

The 4xx class of status code is intended for cases in which the client seems to have erred. Except when responding to a HEAD request, the server SHOULD include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. If the server does not wish to make this information available to the client, the status code 404 (Not Found) can be used instead.

The most common in 4xx class are 400 Bad Request (standard option for requests that fail to pass validation), 401 Unauthorized (The user needs to be authenticated), 403 Forbidden (user is authenticated, but does not have the permissions to perform an action) and 404 Not Found (resource not found).
Some other status codes are 402 Payment Required, 405 Method Not Allowed, 406 Not Acceptable, 407 Proxy Authentication Required, 408 Request Timeout, 409 Conflict, 410 Gone, 411 Length Required, 412 Precondition Failed, 413 Request Entity Too Large, 414 Request-URI Too Long, 415 Unsupported Media Type, 416 Requested Range Not Satisfiable and 417 Expectation Failed.

5xx Server errors

Response status codes beginning with the digit “5” indicate cases in which the server is aware that it has erred or is incapable of performing the request. Except when responding to a HEAD request, the server SHOULD include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. User agents SHOULD display any included entity to the user.

The most common in 5xx class are Status 500 Internal Server Error and Status 503 Serve Unavailable. Some other status codes are 501 Not Implemented, 502 Bad Gateway, 504 Gateway Timeout and  505 HTTP Version Not Supported.

Detail of the status code definition is available in w3.org.

Comments are closed.