HTTP status codes are three-digit responses that come from the server-side to the browser. In general, they are messages from the server that let you know how things went when your site received a request to view a specific page of your website.
These messages are returned every time your browser interacts with the server, even if you do not see those requests. So it’s pretty helpful to understand HTTP status codes because they make it easier to find the problems with your site and fix website configuration errors.
This article will explain server status and error codes.
What are HTTP status codes?
HTTP status code has three digits. The first digit (from 1 to 5) indicates the status type, while the second and third digits refer to the status codes within the first digit’s range.
When you open a website, your browser sends a request to a web server for page content. When this process proceeds, the server sends back relevant resources along with an HTTP header.HTTP status codes are delivered in those headers. So while status codes are returned every single time your browser requests a web page or resource, you will not see them.
You can see these codes if you use the HTTP header checker or browser’s built-in tools. Also, you can check your website received requests in Apache logs that you find by following this guide:
HTTP status code classes
There are five classes of HTTP codes, and these groupings of responses have similar meanings.
The five classes of HTTP status code:
100s – Informational codes:
means that the request initiated by the browser is continuing;
200s – Success codes:
Indicates that the request was successful, the browser request was received, understood, and processed by the server;
300s – Redirection codes:
Means that the requested resource has been substituted for a new resource;
400s – Client error codes:
Means that there is/was an issue with the request;
500s – Server error codes:
These codes indicate that the request was accepted but an error on the server prevented the fulfillment of the request.
HTTP status code list
Since there are more than 40 server status codes, in this article we will explain only the most common ones.
100 status codes
100-level code says that the request you have made to the server is still being processed due to some reason. Usually, this is not a problem; the message simply informs you what’s going on with your website.
1. 100 status code – Continue:
Indicates that the server has received the initial part of the request, and the website visitor should proceed with the request or ignore the received response if the request has already been finished.
2. 102 status code – Switching protocols:
Says that the server understands the upgrade header field request and indicates which protocol it is switching to.
3. 103 status code – Early hints:
This code indicates that the client will receive some request header fields preceding the final HTTP message. The server will send some “early hints” to the browser that it could preload specific resources before the server provides a final response.
200 status codes
1. 200 – OK:
Means that everything is okay. The website page or resource acts exactly as it should act.
2. 201 – Created:
Indicates that the browser’s request has been successful and the new resource has been created. Usually, this response is related to a POST and some PUT requests.
3. 202 – Accepted:
The server received the browser’s request, but it has not started or completed the process yet. If this code is being sent, the server can accept a new request for another process without forcing the user agent to hold the connection until the process is completed.
4. 203 – Non-Authoritative information:
This status code might be received when a proxy is being used. In general, the proxy server received 200 status codes from the original server; however, the response is modified before it is passed on to the browser.
5. 204 – No content:
Indicates that the server has successfully proceeded with the request, but no available content can be returned.
6. 205 – Reset Content:
205 code is similar to the 204 status code. 205 – reset content code says that the server has successfully processed the request, however, it will not return any content. The only difference between 204 and 205 codes is that it will ask the user agent to reset its document view.
7. 206 – Partial Content:
This status code is a response to a Range header sent from the client when requesting only a part of the resource.
Range headers enable the browser to resume paused downloads and split a download into multiple streams.
300 status codes
Redirection is used to communicate that a resource has been moved to a new location. If the website has changed path and you will try to access it through the old path, your CMS will most likely redirect you to the new path.
1. 300 – Multiple choices:
With this redirect status code the user agent may select one of the available requested resources.
It usually appears when the request has several filename extensions or ambiguity.
2. 301 – Moved permanently:
This code is shown because the intended resource has been transferred permanently to a new place, so the server redirects your browser to a different URL.
3. 302 – Found:
According to the answer obtained by your browser, the requested resource has been temporarily relocated to a new location. Any subsequent queries, however, should use the same URL.
4. 303 – See other:
Indicates that a user has been routed to a different page rather than a freshly uploaded resource retrieved using the GET request method. It usually replies to HTTP requests like PUT, POST, and DELETE.
5. 304 – Not modified:
The server is saying to the browser that the resource hasn’t been modified since it had been cached. Therefore, the browser will access its native cache for the requested resource, reducing the page load time.
6. 305 – Use proxy:
Means that the client should connect to a proxy and then repeat the same request. Due to security concerns, this status code is deprecated.
7. 307 – Temporary redirect:
This code is received when the server sends a request directly to the requested resource at another URI. This method should not be changed.
8. 308 – Permanent redirect:
It works quite the same as the 301 code.The difference is that it doesn’t change the HTTP method and the original message body, so the requested resource would be permanently located at a new URL.
400 status codes
These HTTP codes are shown when there is a fault with your browser and/or request.
1. 400 – Bad request:
The server cannot respond due to an error from the client’s side.
2. 401 – Unauthorized:
Means that the server requires authentication so that the web browser can proceed to the requested resource.
3. 402 – Payment required:
This code is not used often; and as it says, it is mainly reserved for digital payment systems.
4. 403 – Forbidden:
Indicates that the browser denied access to the requested source because the client does not have the necessary permission. Here is the tutorial on how to solve this error:
5. 404 – Not Found:
The desired resource cannot be found.
6. 405 – Method not allowed:
The server does recognize the HTTP request method used in the browser, and it requires the usage of a different one to provide the wanted resource.
7. 406 – Not acceptable:
This status code means that resources do not fit the criteria requested by the web browser, and the server informs a client about it.
8. 407 – Proxy authentication required:
As the code says, it is required that a proxy would do authentication.
9. 408 – Request timeout:
It indicates that the server waited for the client to send a request within the specified time frame.
10. 409 – Conflict:
The server couldn’t process the browser’s request because there was a conflict with the relevant resource. It might occur due to multiple simultaneous edits.
11. 410 – Gone:
The requested resource will not be available again in the future.
12. 411 – Length required:
Means that the server will inform your browser that it requires the request to include a specific content length to return the requested resource.
13. 412 – Precondition failed:
The server doesn’t meet preconditions that are issued by the web browser.
14. 413 – Payload too large:
If the request is too large, the server may not be willing to process that request.
15. 414 – URL too long:
It says that the URI requested by the client is longer than the server is willing to interpret.
16. 415 – Unsupported media type:
The request is being refused because the server may not be supporting the wanted media type.
17. 416 – Range not satisfiable:
The server cannot provide the portion that the client requests.
18. 417 – Expectation failed:
The server cannot meet the requirements that are specified in the requests’ expected header field.
19. 418 – I’m a teapot:
This code is returned by teapots that receive requests to brew coffee.
20. 421 – Misdirected request:
It means that the web browser’s request has been redirected to another server and couldn’t produce a response.
21. 422 – Unprocessable entity:
The server knows the request entity’s content type and syntax is correct, but it could not process the contained instructions.
22. 423 – Locked:
The resource is locked and access is denied.
23. 424 – Failed dependency:
The request sent from the browser side failed. The reason is that the request depended on another request which also failed.
24. 425 – Too early:
The request may have been resent and the server refuses to proceed with it.
25. 426 – Upgrade required:
The client needs to upgrade to a different protocol, and maybe then the server will be able to proceed with the request.
26. 428 – Precondition required:
The server requests that the request be conditional.
429 – Too many requests:
Indicates that the server is receiving too many requests by the browser in the allotted waiting time.
431 – Request header fields too large:
The server did not process the client’s request because the provided request header was too large. The server may be able to process the request after adjusting the header size.
451 – Unavailable for legal reasons:
The server cannot provide the wanted resource due to legal reasons.
500 status codes
These codes mean that the request may appear to be valid, but the server couldn’t complete the request. If you get one of 500 status code errors, you should check your server. If your site is hosted on VPS, you will need to connect to your VPS and check why you get that error, however, if your site is hosted on a web hosting service, you can contact our support team.
1. 500 – Internal server error:
This error is provided by the server when there is an unexpected condition.
2. 501 – Not implemented:
Means that the server cannot fulfill the request or it does not recognize the HTTP method.
3. 502 – Bad gateway:
This code returned from the server functions as a gateway or proxy for an upstream server that provides an invalid response.
4. 503 – Service Unavailable:
This status code says that the server cannot process the request because it is under maintenance or overloaded.
5. 504 – Gateway timeout:
Says that the server is acting as a gateway and could not get a response time.
6. 505 – HTTP version is not supported:
Means that the server is not supporting the HTTP method that is used in the request.
7. 506 – Variant also negotiates
Since HTTP allows multiple resource variants to reside in one URL, the server might get confused which version to provide as a response. Most likely this response will be related to the incorrect server configuration.
8. 507 – Insufficient storage:
Indicates that the method could not be performed on the resource because the representation is needed to complete the request successfully, since the server could not store that representation.
9. 508 – Loop detected:
When the request was processed, the server detected an infinite loop.
10. 510 – Not extended:
In order to be able to fulfill the request, further extensions are required.
11. 511 – Network authentication required:
Means that the client needs to go through the authentication process to get network access.
As you can see, there are many HTTP status codes and it’s pretty difficult to remember them all. We hope that this article will be helpful for you when you want to investigate whether your website has received HTTP status codes as a report or because there is an issue of some sort. By knowing what HTTP status code means, you will be able to troubleshoot various site problems quickly.