HTTP Status Codes Guide

HTTP status codes are the response codes shown by the web browser when a certain problem happens either to the website or the web server. These status codes help to identify the problem and to take the necessary measurements to fix the issue. Commonly, the HTTP status code is put together with the HTTP reason phrase to let users know more about the issue. For example, the 404 error is usually displayed as “404 Not Found.” As you can see, it is a great way to explain the error in a short manner.

There are 5 series of HTTP status codes ranging as 1xx, 2xx, 3xx, 4xx, and 5xx. The “xx” will be replaced by the number corresponding the error. Here is a simple table to let you know more about them.

HTTP Code

Type

Description

1xx

Informational

The request has been received by the server, and the process is continuing.

2xx

Success

The action was successfully received, understood, and accepted by the server.

3xx

Redirection

Further actions must be taken in order to complete the request.

4xx

Client Error

The request contains incorrect syntax or cannot be fulfilled by the server.

5xx

Server Error

The server failed to fulfill an apparently valid request due to some problems.

List of HTTP Status Codes

We sorted this HTTP return codes list in the same order as the above table. So that you will be able to find and start diagnosing the error as soon as possible. So, have a look at these HTTP status codes.

1×× Informational HTTP Status Codes

Informational HTTP status codes are the informational responses provided by the server. Which means, if the request is accepted and being processed, the server sends the 1xx status codes to tell the user to wait. Seeing a 1xx response means there will be an additional status after the processing completes. The 1xx message consists only of the status line and optional header fields. Also, it will be terminated by an empty line.

100 Continue

100 Continue HTTP status implies that the server received the initial part of the request made by the browser but the process is still ongoing. The server intends to send the final notification after the process is successfully completed at the server end. During the process, it is not recommended to the discard the current action or reset the browser screen.

101 Switching Protocols

101 Switching Protocols means that the server understands the browser’s request and is willing to comply with it via the Upgrade header field, for a change in the application protocol being used on the connection. For this, the server should generate an upgrade header field in the response that indicates which protocol will be switched.

In most of the cases, the server will be willing to change the protocol only if there is an advantage by doing so. For example, switching from an old HTTP version to the newer version is an advantage. So, the server will be willing to do so.

102 Processing

This is another HTML status code used to notify the client that the server has completely received the request, but it is still processing. The requester will see this message only if the server thinks that the request will take a considerable amount of time to complete. To be exact, usually, if a request takes more than 20 seconds to process, the server will return a 102 Processing status code.

2×× Success HTTP Response Codes

The 2xx will be outputted once the request sent by the user has been accepted, processed, and succeeded. That’s why these status codes are called the success responses.

200 OK

This is the status code which the server outputs once the request has successfully completed. 200 status pages are cacheable by default unless there is any restriction.

201 Created

The 201 Created means the request has been fulfilled and as a result, one or more additional resources are created. The created resources will be recognized by either a Location header field or the effective request URI. Usually, the 201 status code will describe and link to the generated resources.

202 Accepted

The client’s request has accepted by the server for processing. But the processing is still taking place on the server. The request may or may not be disallowed by the server during the processing. The purpose of the 202 status code is to allow the server to accept a request for some extra process without requiring the connection between the user agent and the server persist.

203 Non-authoritative Information

203 HTTP status code implies that the client’s request was successful but the enclosed payload got modified from that of the server’s 200 OK status by a transforming proxy. When a new transformation has applied, the 203 Non-authoritative Information status code allows the proxy to notify clients. Like the 200 OK, this one is also cacheable by default unless there is a restriction.

204 No Content

204 No Content is to notify the client that the server has successfully fulfilled the request. Additionally, there is no pending content to send in the response payload body. The document editing interfaces often make use of the 204 status code. In such document editing interfaces, the document will be available for editing without changing the document view even after the saving function is completed. The web pages with this status code are cacheable.

205 Reset Content

The server has fulfilled the request by the client and desires that the user-agent reset the document view. This caused the request to be sent again and the file is reset to its original state. The 205 Reset Content is utilized in the online forms and applications which accept entries. After submitting the entry and the origin server receives the data, the form will be reset to its default.

206 Partial Content

206 Partial Content implements that the server is processing a range request for the selected resource by transferring one or more parts of the selected representation which is corresponding to the satisfiable range found in the request’s range header field.

207 Multi-Status

As the name itself says, the 207 is a status code shown by your browser when multiple status codes are appropriate for the situation. In other words, the 207 Multi-Status is used as an overall status code where two or more statuses are suitable.

208 Already Reported

The 208 Already Reported is used inside a DAV: propstat response element to avoid enumerating the internal members of multiple bindings to the same collection again and again. The 208 will only occur for the “Depth: infinity” requests

226 IM Used

226 IM Used will be displayed when the server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.

3×× Redirection Status Codes

The 3xx status codes indicate that the server needs to take additional actions to complete the request. In other words, the URI redirections are using these statuses to tell the user-agent that it should divert to get into the right destination. The user-agent should be able to recognize the proper redirects to avoid any repeated redirection cycles.

300 Multiple Choices

It implies the target has more than one representation to choose from. The 300 Multiple Choices could be used to present multiple video format options or to list files with different extensions.

301 Moved Permanently

The target URI has been moved permanently to a new URI. Any future references to this URI should use the new URI. This is one of the most heard HTTP codes. Most SEOs recommend 301 redirection from moving the content on a URI to another one.

302 Found

The target currently resides on a temporary URI which may be altered in future. The users are ought to use the effective request URI for future requests.

303 See Other

The 303 redirection HTTP status implies that the response to the request can be found under another URI using a GET method. In other words, the server is redirecting the user-agent to another URI.

304 Not Modified

HTTP status 304 Not Modified implies that the conditional GET or HEAD request has been received. It would have resulted in a 200 response if it were not for the fact that the condition evaluated to false. Also note that, the 304 Not Modified HTTP response cannot contain a message-body

305 Use Proxy

The requested resource is only available through a proxy. Due to the security concerns, few resources may need a specific proxy to allow the entrance.

307 Temporary Redirect

307 response code says that the requested URI is currently residing at a temporary address. But the user-agent must not change the request method if performing an automatic redirection.

308 Permanent Redirect

The target resource has been changed to a new URl which the user-agent should use in any future references. The only difference between the 301 and 308 is that it will not allow changing the request method from POST to GET.

4×× Client Error HTTP Statuses

The 4xx HTTP codes are usually shown when something wrong with the request or resources. The server will output the possible causes and solutions for the error to guide the users to fixing it. The 404 Not Found is such a most seen 4xx HTTP status.

400 Bad Request

401 Unauthorized

The request cannot be completed due to missing or invalid credentials required to access the target resources. If the request already contains the authentication credentials, the user may recheck and resubmit the request in order to access the resources.

402 Payment Required

HTTP 402 Payment Required is an unused status code currently. In other words, it is reserved for future use.

403 Forbidden

HTTP status codes 403 Forbidden implies that the server successfully understood the request but somehow refused to authorize it. The main difference of 403 vs. 401 is that in 401, the credentials are either missing or invalid, but in the 403, the credentials may be correct, but the server refused to accept it.

404 Not Found

The requested URI or resource is no more available at the requested location. It may be either removed or moved to a different location. This is one of the most discussed HTTP errors these days. The 404 Not Found is cacheable.

Best free proxy sites are always useful for several purposes. Either you want to protect…

406 Not Acceptable

406 error means that the target resource does not have a current representation. According to the proactive negotiation header fields received in the request, it is not acceptable by the user-agent. So, the server is unwilling to supply a default representation for the resource. In such cases, the server will generate a list of available representation characteristics from which the user-agent will select the most appropriate one.

407 Proxy Authentication Required

It means that the client needs to authenticate itself to use a proxy. It is very similar to the 401 error.

408 Request Timeout

The request wasn’t received completely within a provided time by the server. The 408 Request Timeout error is very common during the server overloads.

409 Conflict

409 Conflict states that the request cannot be completed due to the current resource state. In such situations, users may resubmit the request again.

410 Gone

410 Gone HTTP error represents that the target resource is not available at the provided location and the error might be permanent. The main difference between the 404 and 410 is that the 404 is a temporary error and the 410 is permanent.

411 Length Required

The origin server refused to accept the request due to the lack of a defined content length. The user may resubmit the request after providing a content length.

412 Precondition Failed

412 Precondition Failed states that one or more conditions given in the request header fields evaluated to false.

413 Payload Too Large

When you see the 413 HTTP status code, it means that the request payload is larger than the server’s capacity. So, the server is unwilling to process the request. The server will retry to process the request.

414 Request-URI Too Long

The requested resource URI is too longer than the server can process. So, the server is not willing to process the request. 414 error is cacheable.

415 Unsupported Media Type

The payload is in a format which is not supported by the target resource. So, the origin server is refusing to accept the request.

416 Requested Range Not Satisfiable

416 Requested Range Not Satisfied means that the client request a specific portion of the resource, but the server is unable to provide that portion. The reasons may be excessive requests or invalid ranges in the request.

417 Expectation Failed

417 Expectation Failed means that the server was unable to meet the requirements of the Expect in the request header field.

418 I’m a teapot

HTTP 418 was actually an April Fools’ joke. HTTP 418 RFC specification is that the error should be implemented as the teapots requested to brew coffee. This error code is used as Easter egg is some websites.

421 Misdirected Request

The request by the client was directed to a server which was unable to meet the requirements. Thus the server failed to produce a response. The 420 status code must not be generated by proxies.

422 Unprocessable Entity

HTTP 422 implies that the server was successfully understood the content type and the syntax of the request, but was not able to process the contained instructions in the request.

423 Locked

The source or the destination resource is locked which is preventing the server from accessing it.

424 Failed Dependency

The requested action depends on an another action which is failed. It caused the current action to stay incomplete. In other words, if an action need the result from another action to complete, and that action is failed to provide the result, then the first action cannot be completed.

426 Upgrade Required

420 Upgrade Required states that the current protocol of the client should be upgraded in order to complete the request.

428 Precondition Required

If you see the 428 Precondition Required error, it means that the server requires the request to be conditional. Responses with the 428 HTTP status code must not be stored by the cache.

429 Too Many Requests

429 shows up because the client has sent too many requests to the server within a specific time. It is also known as the rate limiting.

431 Request Header Fields Too Large

431 HTTP response codes mean that the header fields are too large in the request. So, the server is unwilling to perform the action. User may resubmit the request after reducing the size of the header fields.

444 Connection Closed Without Response

The 444 is commonly used by the NGINX servers to deny the entrance of the malicious or malformed requests. It is a non-standard status code and is used to tell the NGINX server to close the connection without sending a response.

451 Unavailable for Legal Reasons

451 Unavailable for Legal Reasons mean, the server denied the access to the resource due to some legal restrictions.

499 Client Closed Request

499 is another non-standard status code which the NGINX returns if the client closed the connection while the NGINX still processing the request.

5×× Server Error HTTP Status Codes

If anything wrong with the server, it will output the 5xx HTTP status code. In other words, if you see the 5xx errors, it means that the server failed to complete the request. To fix some of these errors, you may have to contact the server administrators. But few of them are just temporary errors due to the problems like server overload.

500 Internal Server Error

HTTP status code 500 is happening due to an unexpected condition which preventing server from fulfilling your request. The 500 error code shows up when the server couldn’t identify the exact problem caused the interruption.

501 Not Implemented

The functionality required to fulfill the request is not supported by the server. In other words, the server doesn’t recognize the request from the client.

502 Bad Gateway

502 Bad Gateway HTTP status code occurs when the server was acting as a gateway or proxy and received an invalid response from the upstream server while attempting to fulfill the request.

503 Service Unavailable

The server is experiencing a server overload or currently undergoing maintenance which caused the request to not complete successfully. This error will be removed automatically after the server comes to the normal load state.

504 Gateway Timeout

504 Gateway Timeout occurs while the server acting as a gateway or proxy, it didn’t receive a timely response from the upstream server which caused it to halt the request. Users may retry after few minutes.

505 HTTP Version Not Supported

The server doesn’t support the HTTP version on the request. Users may retry the request after fixing the problem by upgrading to a supported HTTP version.

506 Variant Also Negotiates

The server encountered an internal error. The given variant resource is configured to engage in transparent content negotiation itself which result in a circular reference.

507 Insufficient Storage

The server doesn’t meet the storage requirement in order to store the data required by the request. the 507 Insufficient Storage error is temporary which could be easily resolved.

508 Loop Detected

The 508 Loop Detected error occurs when the server terminated an operation because it encountered an infinite loop while processing the request.

510 Not Extended

The 510 Not Extended HTTP status error implies that further extensions to the request are required for the server for fulfilling it. The server should send back the information for the user to resubmit a new request.

511 Network Authentication Required

The user or client need to authenticate to gain the network access to the resource.

599 Network Connect Timeout Error

The 599 Network Connect Timeout Error is not specified in any RFCs. Even though, few HTTP proxies utilize this code to signal a network connection timeout.

You liked this HTTP status codes cheat sheet, right? If you have any doubt regarding any of the HTTP response example shown above, feel free to contact us. We will always be happy to help you in any doubt regarding the HTTP status codes.