Table of Contents [TOC]
The HTTP status code is a three-digit number that indicates the success or failure of an HTTP request. These numbers are usually displayed in the browser’s address bar and can also find them in logs, error messages and other places.
HTTP status codes are a way to mark the progress of your website’s communication. They’re used to indicate how your website is performing, and they tell you what’s happening with the requests it makes and the responses it receives.
In this detailed http status code guide you will know more about several server status and error codes. Tired of scrolling? Download a PDF version for easier offline reading and sharing.
While status codes are returned every time your browser requests a web page or resource, most of the time you don’t see them.
HTTP status codes are divided into 5 classes or series or categories. The first category is used to indicate success in the request, while 4xx is used to indicate errors that prevent successful completion.
The 2xx range includes 200 (OK) through 299 (Reset Content). The 3xx range includes 300 (Found) through399 (Partial Content), 400 (Bad Request) through 499 (Service Unavailable). The 5xx range includes 500 through 599 and 600 through 619.
Let’s Dig In,
HTTP code: The HTTP code is a status code sent by a server that informs the client if an HTTP request has been executed successfully or if an error has occurred. Indeed, the entire internet is based on a communication protocol between a client (eg your web browser) and a server. This protocol is HTTP which stands for “HyperText Transfer Protocol”.
Today we talk more and more about HTTPS, whose S stands for “Secured”. It only means that the data that is exchanged during the communication between the client and the server is secure. The operation remains the same.
When you click on a url link, to a product sheet in your store for example, your web browser will send a request to the server that hosts your site. The server will then respond to your browser by sending it an HTTP code, to indicate that it has received the request, then send the source code of the requested page to the browser.
The HTTP code is very important for the communication between the client and the server because it informs the client if everything is going well and allows to indicate the origin of the problem if an error occurs.
This is the case with our example of the 404 error which indicates that the server could not find the page requested by the client. In short, the HTTP code makes it possible to know if the system is working correctly and to identify the origin of the errors in order to correct them.
HTTP status codes are divided into 5 categories:
The entire web works on the basis of the HTTP protocol. The browser sends a communication to the server and gets a response to display it on the frontend. During this process, many errors can occur. In order to resolve these errors, web servers return three-digit HTTP status codes in the response.
This status code, also known as an HTTP error code, is an indication of what went wrong in the communication.
Receiving HTTP status codes with the 2xx series of the server’s response indicates that the server received the client’s request and processed it successfully. Here we are going to explain the list of HTTP 2xx status codes with an explanation.
Also Read – 40 Most Common WordPress Errors & Issues 2024 [UPDATED]
Below you will find this handy explanation, of status codes organized into four-digit groups known as “tiers,” with each tier having a different meaning:
100 Continuous means “normal operation”. This means that the request sent by the user is correct and that the server has launched the requested processing.
It is a temporary response code sent while the user waits for the final response from the server which will only occur once the last packet has been sent.
When is this code used? This is the internal one, which sometimes is not even generated if the user has already received data from the server. This is a message that tells the servers that the connection has been established and that “the doors are open”. Data can be sent.
But do not forget to “close the doors” once the transfer is complete (in other words to send the final status code).
This is perhaps one of the simplest server codes. It means that the user has asked to change the type of protocol used by the web server and that the latter has granted his request.
When is this code used? When switching to the new version of HTTP from an older protocol. This request is only executed in the presence of a more suitable protocol (ie a newer version of HTTP).
Since a WebDAV request (the transfer protocol) can contain not only one request but also several sub-requests, and operations on files, additional time is frequently necessary to carry out the treatments related to it.
When is this code used? It is generated in order to inform the user that he should reset his countdown and wait for the next command as the processing of the request might take some time.
Related Posts:
Messages of this class notify you of the acceptance and processing of the client’s request. Depending on its state, the server may continue to send message headers and body. In other words, this class of codes signifies that the action requested by the client has been accepted and is being processed.
Status code 200 is the most widespread but at the same time the most innocent considering its nature. It means that the exchange between the user and the server is finished and that everything went as planned.
The query execution is successful and a new resource has been created. For example, the user’s led to the creation of a new resource, such as a new page.
The source server must create the resource before sending 201. If the resource cannot be created immediately, then it must return 202 (accepted).
The processing of the request was accepted, but for some reason it has not completed. It may not be complete, it may possibly be rejected during processing.
When is this code used? It is returned when a server cannot immediately execute a request. It was not intended to be immediate and mandatory and the client does not need to wait until the end to receive a response, as this can be a very lengthy process.
The server has successfully processed the request, however the information transmitted does not come from the main source (but from a backup, another server, etc.) and may not be up to date. It looks very similar to 200 but indicates that the information was not obtained directly from the source.
When is this code used? It is used instead of 200 when the sender has reason to believe that the headers from the external source may differ from those that the source server would return.
It is a response sent by the server to indicate that the request was received and understood, but no data could be returned to the user. This allows scripts to run without modifying the document.
It should not contain a body and be included in the first empty line of code immediately after the header.
When is this code used? It is used to allow you to enter or perform an action without needing to update the document (page).
The server has successfully processed the request but is not returning any content. Unlike 204, this response requires updating the document.
When is this code used? It is used when a user fills out a form and the server sends back a request to the browser to clear the form.
It is similar to 204 but asks the user agent to reset the document once it is completed (for example, to clear the HTML form after confirmation).
The servers only return part of the content corresponding to the header sent by the client. It is used by advanced caching tools, when the user only asks to receive a small part of the content of a page and the server only returns the data confined to this specific space in its response.
When is this code used? It is used as part of an If-Range request, used by the most successful cache validators. It should also include the field headers used as parameters for the returned information.
The server returns the results of several independent operations at once, they are placed in the body of the message in the form of an XML document.
This class of status codes indicates that additional actions will need to be taken by the browser to complete the request. Users must perform additional actions or requests to the server.
This code informs the user that the resource has been moved and the server responds with a list of available alternative resources, from which the user can choose the most appropriate resource.
When is this code used? It is returned when the servers consider that the URL provided by the user (ie the user’s browser) contains an inadequate address, and offers him an additional choice.
For example, the user uses the URL of a folder and not that of a specific resource. The servers then offer it a list of files or folders available at the next level.
This is a common user request. It means that the request for this resource (and all subsequent requests) should be redirected to the provided URL.
When is this code used? When a page no longer exists or the link to a third-party source no longer works. The 301 redirect tells the user that the requested resource has been moved (often using the .htaccess file on Apache servers).
It tells the user that the location of the requested resource has changed temporarily. It should contain information about the new location that the user should query.
When is this code used? It has several uses, some of which are not part of its original purpose. This was originally to create a simple temporary redirect. However, today there are many ways (ethical or not) to use it.
It indicates that the requested resource is available at a different URL than the one provided in the request. It doesn’t necessarily mean something has moved, it just provides an address that can be queried to request the resource.
When is this code used? This method exists to allow the output of a script triggered by a POST method to redirect the user agent to the selected resource.
The 304 status code indicates that the user is requesting the document or resource only if it has changed since the last cached update of that document.
When is this code used? If the server response tells you that the If-Modified-Since or If-Match document settings have not changed since the last cache was created, there is no need to resend the resource.
It tells the user that access to the requested resource is possible through the proxy specified in the response.
When is this code used? It is frequently displayed in the presence of security measures and offers access to the resources of the requested URL.
This state originally stated that “subsequent requests must use the proxy mentioned”, but today it is no longer used and is part of the reserved codes.
It is returned if the resource is currently available but via a different URL which is also communicated in the response. 307 is slightly different from 302, it is a more specific version than 302 is.
When is this code used? It is used in almost the same scenarios as 302, but the user must continue to request the source URL in subsequent requests or until they receive a new response code.
The 4xx code class reflects client errors or the fact that a location never existed (or already exists). These status codes can be returned in response to any request.
Unable to execute queries due to a syntax error.
When is this code used? When a user requests information, but does so by disregarding Hypertext Transfer Protocol (HTTP) rules. It should not be repeated until the syntax has been corrected.
This code is associated with a request to a resource that requires authorization. The 401 response indicates that the authorization request was rejected based on the data provided by the user.
When is this code used? When the user sends a request to the servers using incorrect authorization credentials (username or password).
Reserved for future use. The original purpose of this code was to facilitate transactions requiring an electronic money transfer. But this feature never saw the light of day and it remained unused.
When is this code used? Apple’s old MobileMe service returned a 402 error if the MobileMe user account was suspected of abusive activity on the server. Youtube also returns these codes if an IP address sends too many requests, then the user must enter a CAPTCHA.
The user is trying to access a resource they don’t have access to, and permission won’t change the situation.
When is this code used? When a server understands the request but refuses to execute it, because the client does not get access to the requested resources. This usually happens when the resource is not meant to be publicly available.
Everyone knows the 404 error code, right? It indicates that the requested resource could not be found, but might be there later (if it appears there). The client can send new requests. However, in most cases, a redirect code from the 3xx family is used and the browser is redirected to another resource or location.
When is this code used? Occasionally, especially if a page has been moved or deleted. Very often, in this case, the server automatically generates a diagnostic page mentioning this 404 error.
The requested resource access method is not available. That is, this error occurs when you try the GET method on a form that requires POST, or the PUT method on a read-only resource.
When is this code used? 405 errors occur around specific components on a request-related page. For example, when the script’s request string is different from that of the user requiring the use of the script.
The requested resource is only capable of generating content that cannot be returned by meeting the Accept-headers conditions of the request. The browser can indeed provide the servers with the characteristics of the data it expects to receive.
When is this code used? When the file format of the requested resource does not match the format that the user is able to recognize. We are talking about programming languages here, not German or Italian!
Like the 401 status code, the 407 status code tells the client that it must first be authorized through a proxy. To do this, the proxy must send it back a field containing the Proxy-authenticate header that meets the conditions set by the servers.
When is this code used? When the server believes that the client’s data access request is correct, but access to the resource is possible only after authorization from a proxy server.
The transmission between the relay servers and the client timed out.
When is this code used? According to the W3 HTTP specifications: When the client has not made a request within the time allocated by the server. The customer MAY return it at any time.
Indicates that the request cannot be executed due to another conflicting one on the same resource.
When is this code used? You can receive it when you try to upload a file to a web server, while a newer version of this file is already there, which causes a conflict in the version control system.
The server returns this response if a resource was once located at the specified URL, but has been deleted and is no longer available. The user shouldn’t return the same query.
When is this code used? When it is no longer possible to access the resource through this request, and the server does not have information on the new location of this resource. If he considers that it is possible that the document will be put back online soon, it is recommended to send the 404 instead.
The request does not indicate the length of the content, which is essential for its processing.
When is this code used? When the browser does not determine the length of the requested content in the request header. The server will not accept it unless the content-length field in the header is valid.
The server did not meet one of the preconditions specified by the sender in the request. In other words, at least one of the request headers was returned with the attribute false.
When is this code used? When the request makes a valid request to access a resource, but this header attribute cannot be applied to that resource.
The 413 code is displayed when the server refuses to process the request because its body is too long.
When is this code used? When using the POST method with a form, if the contents are longer than the server’s processing limit.
It is displayed when the server is unable to process the request because the specified URL is too long.
When is this code used? When the POST request is converted into the GET one. The POST allows you to send an unlimited amount of data by attaching them to the request itself. However, if converted to GET, the form data is included in the URL, which is not unlimited in size.
A 415 response is sent to indicate that the server noticed that part of the request was made in an unsupported format.
When is this code used? When the request contains a media type that is not supported by the resource or the server. For example, the user requests an image with a file extension not supported by the server. It has understood what resource is requested but does not recognize the format in which the resource was requested.
This response is returned when the user requests a piece of the resource in their request but that part is not available.
When is this code used? When a client requests the server for the XXX-YYY bytes of a resource, but the resource is smaller than the size specified in the request.
This response is received if, for some reason, the server cannot satisfy the value of the Expect field in the request header.
When is this code used? It’s relatively clear. When one of the request headers, the “Expect” header, matches one that the server is unable to respond to.
This code was created in 1998 for an April Fool’s Day joke from the IETF: RFC 2324, the Coffee Maker Management Hypertext Protocol. It is unlikely to be supported by modern HTTP servers.
When is this code used? 15 years ago, for a schoolboy joke.
The request was understood and accepted, but cannot be executed due to the presence of semantic errors.
When is this code used? When the server has accepted the request, is able to work with the specified data type, the syntax of the XML document contained in the body of the request is correct, but due to a logic error, the processing of the resource is impossible.
The resource targeted by the request is locked and it is impossible to perform the requested processing. To make the resource available, you will need to unlock it or provide correct authorization data.
When is this code used? When the resource… is closed. This happens for security reasons.
Indicates that the execution of the current query may depend on the success of another operation. If this fails, all processing of the request will be terminated.
This code is displayed when the resource is defined in the WebDAV Advanced Collections protocol specification but not in the Web Distributed Authoring and Versioning Ordered Collections protocol.
It is displayed when the server asks the client to update its protocol (to a different and newer version).
When is this code used? Usually when the browser uses outdated protocols.
The source server requires preconditions in the request. It is designed to avoid resource version conflicts in case the client receives (GET) a state of the resource, modifies it and sends it (PUT) back to the server, and at the same time a third party also changes the location of the resource, effectively resulting in a conflict.
When is this code used? By requesting conditions, the server assures clients that they are using the current copy of the resource. If not, the user will receive a 428 error.
This response is returned if a client tried to send too many requests in too short a time.
When is this code used? When a user sends too many requests in too short a time.
Occurs when the server refuses to process the request because one of the fields in the header (or all of the fields) is too long.
When is this code used? Typically, when the user’s request header is longer than the server allows. It can be returned once the size of the header fields is reduced.
Used in Nginx log files to indicate that the server returned no information to the user and closed the connection.
When is this code used? It was used as an anti-malware measure.
This is a Microsoft extension, which indicates that the request should be returned after performing an appropriate action.
When is this code used? It is generated when the query parameters do not match what the server is able to accept.
Microsoft extension. This error occurs when the Windows Parental Controls setting is set to block access to certain pages.
When is this code used? When the parents (who are aware of this function) use parental control, and a request aims to access a blocked resource.
New HTTP status code for resources blocked for legal reasons. Used to indicate that access to the requested resource has been blocked for legal reasons: for example by censorship or by a government.
5xx codes are reserved in case the operation fails due to the server.
These responses are often displayed when the server is unable to process the user’s requests for some reason. It should include a message for the browser which will then be displayed to the user, it tells you that the server (for whatever reason) is unable to process the request. Typically, 5xx server errors mean that this site is unreachable .
It indicates an internal server error that does not fit into the other error categories.
When is this code used? When a resource or a link is created on a server (for example a calendar on a reservation system), is not technically functional but is still displayed as a link.
The server does not understand the method of the request or does not support the functionality needed to process it.
When is this code used? You may encounter a 501 error when the server does not support normal request protocols, such as GET, OPTIONS, HEAD, POST, etc.
The 502 response is displayed when the server, in a gateway or proxy role, has received an invalid response message from the upstream server.
When is this code used? Usually when the upstream server and the proxy or gateway fail to agree on the protocols of the request and an error occurs during the data transfer.
The server is temporarily unable to process requests for technical reasons. This state is supposed to be temporary.
When is this code used? When a site is flooded with requests and the server is unable to service all requests.
The server acting as a gateway or proxy did not wait for the upstream response to execute the current request.
When is this code used? When a proxy or gateway is used to transfer the data and both servers have waited too long for a response.
The server does not support the HTTP protocol version specified in the request.
When is this code used? In the cases described above! When the HTTP protocol is older than the version requested by the server, and therefore not supported.
This response is sent when, due to an erroneous configuration, the selected option references itself, which causes the attachment process to be interrupted.
When is this code used? When the server is not properly configured and is unable to process the request.
The 507 error occurs when the server is unable to process data because there is not enough space for the current request.
When is this code used? When the server is already full and the user requests a resource already on the server. The problem is that this one doesn’t have the space available to store the requested data and return the requested resource.
This response code is used when website traffic is limited.
When is this code used? When Apache uses an extension allowing it and the internet service provider has determined that the bandwidth will be exceeded. There are several throttling options.
Error code 510 is returned when the extension requested by the client is missing from the server.
When is this code used? When the server requires more information about the request.
This status code is displayed if the client needs to obtain prior authorization to access the network, for example by entering the password for a paid Internet access point.
When is this code used? When a user must first accept terms of use before being able to access the Internet (for example for a Wi-Fi hotspot).
Also Read –
They are very important in SEO because search engine crawlers use them to determine the health of a website. Status codes allow you to see what is happening between the browser and the server.
They are classified by category:
As noted, Google has also published a resource on its Search Central site to clarify some aspects of the topic, describing “how different HTTP status codes, network errors, and DNS errors affect Google Search.”
Specifically, it covers the top 20 status codes Googlebot has encountered on the web, as well as the most important network and DNS errors, so that means there’s no room for status codes. most peculiar and bizarre states, such as 418 I’m a teapot. Additionally, any issues mentioned on the page generate a corresponding error or warning in the Search Console Analytics report.
The document is divided into three sections – HTTP status codes, network errors and DNS errors – and offers a descriptive introduction to the subject, with up-to-date information and, above all, interesting details on how Google reacts to various situations. For instance :
Google will attempt 10 hops for redirects, after which it will consider the URL with a redirect error in Search Console.
301 vs. 302 redirects: For Google, a 301 redirect is a strong signal that the redirect target should be canonical, while a 302 redirect is a weak signal that the redirect target should be canonical.
200 status codes guarantee that the page will be sent to the indexing pipeline, but do not guarantee that the page will actually be indexed.
Code | Constant | Reason Phrase |
---|---|---|
100 | CONTINUE | Continue |
101 | SWITCHING_PROTOCOLS | Switching Protocols |
102 | PROCESSING | Processing |
200 | OK | OK |
201 | CREATED | Created |
202 | ACCEPTED | Accepted |
203 | NON_AUTHORITATIVE_INFORMATION | Non Authoritative Information |
204 | NO_CONTENT | No Content |
205 | RESET_CONTENT | Reset Content |
206 | PARTIAL_CONTENT | Partial Content |
207 | MULTI_STATUS | Multi-Status |
300 | MULTIPLE_CHOICES | Multiple Choices |
301 | MOVED_PERMANENTLY | Moved Permanently |
302 | MOVED_TEMPORARILY | Moved Temporarily |
303 | SEE_OTHER | See Other |
304 | NOT_MODIFIED | Not Modified |
305 | USE_PROXY | Use Proxy |
307 | TEMPORARY_REDIRECT | Temporary Redirect |
308 | PERMANENT_REDIRECT | Permanent Redirect |
400 | BAD_REQUEST | Bad Request |
401 | UNAUTHORIZED | Unauthorized |
402 | PAYMENT_REQUIRED | Payment Required |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | Not Found |
405 | METHOD_NOT_ALLOWED | Method Not Allowed |
406 | NOT_ACCEPTABLE | Not Acceptable |
407 | PROXY_AUTHENTICATION_REQUIRED | Proxy Authentication Required |
408 | REQUEST_TIMEOUT | Request Timeout |
409 | CONFLICT | Conflict |
410 | GONE | Gone |
411 | LENGTH_REQUIRED | Length Required |
412 | PRECONDITION_FAILED | Precondition Failed |
413 | REQUEST_TOO_LONG | Request Entity Too Large |
414 | REQUEST_URI_TOO_LONG | Request-URI Too Long |
415 | UNSUPPORTED_MEDIA_TYPE | Unsupported Media Type |
416 | REQUESTED_RANGE_NOT_SATISFIABLE | Requested Range Not Satisfiable |
417 | EXPECTATION_FAILED | Expectation Failed |
418 | IM_A_TEAPOT | I’m a teapot |
419 | INSUFFICIENT_SPACE_ON_RESOURCE | Insufficient Space on Resource |
420 | METHOD_FAILURE | Method Failure |
421 | MISDIRECTED_REQUEST | Misdirected Request |
422 | UNPROCESSABLE_ENTITY | Unprocessable Entity |
423 | LOCKED | Locked |
424 | FAILED_DEPENDENCY | Failed Dependency |
428 | PRECONDITION_REQUIRED | Precondition Required |
429 | TOO_MANY_REQUESTS | Too Many Requests |
431 | REQUEST_HEADER_FIELDS_TOO_LARGE | Request Header Fields Too Large |
451 | UNAVAILABLE_FOR_LEGAL_REASONS | Unavailable For Legal Reasons |
500 | INTERNAL_SERVER_ERROR | Internal Server Error |
501 | NOT_IMPLEMENTED | Not Implemented |
502 | BAD_GATEWAY | Bad Gateway |
503 | SERVICE_UNAVAILABLE | Service Unavailable |
504 | GATEWAY_TIMEOUT | Gateway Timeout |
505 | HTTP_VERSION_NOT_SUPPORTED | HTTP Version Not Supported |
507 | INSUFFICIENT_STORAGE | Insufficient Storage |
511 | NETWORK_AUTHENTICATION_REQUIRED | Network Authentication Required |
The classic 404 error, 301 redirects, or the internal server 500 error: for some, these are just seemingly meaningless numbers, while others, more experienced, know that they can hide many traps to the effectiveness of a site.
In our in-depth reviews, we often encountered these items, which are part of the list of HTTP status codes, information that the client browser transmits to users who browse web pages by making requests to link to URLs specific.
There are several resources you can consult to read up on these rarer codes
HTTP status codes can be very informative. By learning some of the common ones, you can troubleshoot problems on your site more quickly. Save time, costs, and maximize site performance
Hope we have answered all your HTTP Status Codes-related queries in this complete and simple guide. Need Instant help from WordPress hosting experts, 24/7Visit WP hacked Help for more updates on such interesting topics.