Hola! While having a great cup of Caturra coffee from Panama I decided to put together the most common HTTP response status codes in a simple list.
HTTP response status codes indicate whether a specific HTTP request has been successfully completed. Responses are grouped in five classes:
- Informational responses (
100
–199
), - Successful responses (
200
–299
), - Redirects (
300
–399
), - Client errors (
400
–499
), - and Server errors (
500
–599
).
I’m not going to list all examples, but I will list the most common HTTP response status below:
Successful HTTP responses
200 OK
The request has succeeded. The meaning of the success depends on the HTTP method:
GET
: The resource has been fetched and is transmitted in the message body.HEAD
: The entity headers are in the message body.PUT
orPOST
: The resource describing the result of the action is transmitted in the message body.TRACE
: The message body contains the request message as received by the server
Redirection message
301 Moved Permanently
The URL of the requested resource has been changed permanently. The new URL is given in the response.
307 Temporary Redirect
The server sends this response to direct the client to get the requested resource at another URI with same method that was used in the prior request. This has the same semantics as the 302 Found
HTTP response code, with the exception that the user agent must not change the HTTP method used: If a POST
was used in the first request, a POST
must be used in the second request.
308 Permanent Redirect
This means that the resource is now permanently located at another URI, specified by the Location:
HTTP Response header. This has the same semantics as the 301 Moved Permanently
HTTP response code, with the exception that the user agent must not change the HTTP method used: If a POST
was used in the first request, a POST
must be used in the second request.
Client Error HTTP Responses
400 Bad Request
The server could not understand the request due to invalid syntax.
401 Unauthorized
Although the HTTP standard specifies “unauthorized”, semantically this response means “unauthenticated”. That is, the client must authenticate itself to get the requested response.
403 Forbidden
The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client’s identity is known to the server.
404 Not Found
The server can not find the requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client. This response code is probably the most famous one due to its frequent occurrence on the web.
408 Request Timeout
This response is sent on an idle connection by some servers, even without any previous request by the client. It means that the server would like to shut down this unused connection. This response is used much more since some browsers, like Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up surfing. Also note that some servers merely shut down the connection without sending this message.
Server error HTTP responses
500 Internal Server Error
The server has encountered a situation it doesn’t know how to handle.
502 Bad Gateway
This error response means that the server, while working as a gateway to get a response needed to handle the request, got an invalid response.
503 Service Unavailable
The server is not ready to handle the request. Common causes are a server that is down for maintenance or that is overloaded. Note that together with this response, a user-friendly page explaining the problem should be sent. This responses should be used for temporary conditions and the Retry-After:
HTTP header should, if possible, contain the estimated time before the recovery of the service. The webmaster must also take care about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.
505 HTTP Version not supported
The HTTP version used in the request is not supported by the server.