A Complete Guide to Understanding HTTP Status Codes 

To understand what HTTP status codes are we need to understand how web servers and browsers work. When a user enters a web address into his web browser (Chrome, Mozilla, Safari, etc.), and the browser sends a request to the hosting server of the respective website.

In this article, we will cover the following topics –



What are HTTP Status Codes?

The Browser acts as a CLIENT sending a request to the SERVER. The server then responds to this request either in terms of the web page (based on files and database), or it returns a code if the website is not available for any reason. These codes are governed by standard protocols followed by the servers. Some popular codes that people encounter in there day to day browsing experience are 404 ‘Not Found’ and 502 ‘Bad Gateway’ errors. There are many server status codes. Check Here

There are various instances, errors, and issues due to which a web page could not be accessed. These codes refer to those specific instances. 

Through this article, we will introduce you to some of the most popular errors and HTTP status codes. 


Classification of HTTP Status Codes 

The HTTP codes are classified under 5 different categories based on the nature of the error. These codes are 3 digits long, and each of the 5 categories starts from either of these. 

  • Starting from 100: These are provisional in nature and are only used for certain experiments. These status codes don’t necessarily contain any header and are terminated using an empty line. 
  • Starting from 200: These are success codes, used when the browser’s request is successfully processed by the server. This series of code simply means that the access request has been received, understood, and accepted. 
  • Starting from 300: This type of status code indicates that some additional actions need to be taken to complete the request, this can be due to another resource being substituted in place of the requested resource. This series of status codes are also known as Redirection codes, which could be temporary or permanent. 
  • Starting from 400: These are also referred to as client error, referring to the issue with the request made by the user. 
  • Starting from 500: These are also known as server error, referring to the situation where the server is not able to honour the valid request due to an internal error. This could be temporary as well as permanent. Popular server errors are internal server error, bad gateway, Bandwidth Limit Exceeded, etc.

List Of HTTP Status Codes

100 Status Codes-

1XX As mentioned earlier these are used for experimental purposes, a normal person will not encounter these server codes. There are three status codes defined under this series, as follows: 

  • 100 – This code indicates that the server is ready to take request. 
  • 101 – This code refers that server is ready to accept the client’s request to switch protocols, for example switching to an upgraded version of HTTP. 
  • 102 – This code is used to indicate that the request has been accepted and is undergoing the expected operation, and the result or output is awaited. 

200 Status Codes-

2XX This status codes comes into picture once the client’s request has been accepted and is processed successfully. The popular codes of 200 series are as follows: 

  • 200 – This is the standard response to a successful HTTP request. The type of information or output depends on the method of request. The request method could either be GET, HEAD, POST or TRACE. 
  • 201 – This HTTP status code indicates that a new resource has been created as per the client’s request. In response, URI of the newly created resource is also returned with this status code. 
  • 202 – This indicates that the request made by the client has been accepted but could not be processed immediately. The request is put into the queue. Though, this certainly does not indicate that the request will be successfully processed or not, as it will only be determined once the process has actually started taking place. 
  • 203 – This indicates that the result returned after processing of the request is from another resource, and not from the actual resource specified in the request. This status code is only available from HTTP Version 1.1 onwards. 
  • 204: This status code indicates that the request has been fulfilled but there is no content in the resource to be returned as the result of the process. 
  • 205: This is almost the same as 204, but it needs user/client to reset the document view. 
  • 206: This status code is returned in case of partial GET request for the resource, and thus returns partial content from the requested resource. 
  • 207: This code is used in case of multiple independent operations as a result of multiple sub-requests and can contain many separate response codes. 

We hope you like our article. We at WPOven – The All-Inclusive Managed WordPress Hosting try to provide you all he solution to your WordPress Development and Server Issues. We offer Dedicated Servers so that even in high traffic your website loads smoothly. We offer SSD, SSL, Premium themes & Plugins, Offsite backups, Malware Cleaning etc. In all our plans starting just $16.61. Check out our plans

300 Status Codes-

3XX As mentioned earlier, this series of status codes signify the occurrence of redirection, and it may need some additional redirections to be done by the user agent without knowledge and intervention of the user. There could be occurrences of infinite redirection loops in some cases. However, as a protocol, the user agent cannot redirect more than 5 times in such cases. 

  • 300 – This indicates the availability of multiple options for the requested resource, for example, it could return a list of video available in various formats like mp4, m4a, 3GP, etc. 
  • 301 – This indicates that the requested resource is permanently moved to another location (URI), where the new address is specified by the Location field in the response. 
  • 302 – This status code indicates that the resource has been moved from its location, but the server was able to find it at another location. It is also sometimes referred to as temporary redirection under industrial practice. 
  • 304 – This code helps the browsers to return the page quickly, as this status code indicates that the requested page or resource is not modified since it was last accessed from the same browser. Hence the browser can show the cached version. 
  • 306 – This code lies unused, and is reserved for some future status. 
  • 307 – This is used to indicate that the resource has been temporarily moved to another location so that the user agent can make another request with updated URI of the resource. However, as this is the temporary movement for future requests user agent can use the original URI. 
  • 308 – It indicates permanent redirect, so the user agent should use updated URI for current as well as future requests. 

400 Status Codes-

As mentioned earlier, this series of status codes signify that there is some error in the requested process at the user end and a new request to be made after rectification of the request. 

  • 400 – It indicates that there is a syntax error in the request made by the user agent. 
  • 401 – It indicates the request made is Unauthorized and it needs user authentication. The response from the server along with this status code includes a WWW-Authenticate header field which contains an authentication challenge to be fulfilled by the user agent. 
  • 403 – This status code indicates that the user has requested access to a resource which he is not authorized to access, hence 403 Forbidden from the resource. 
  • 404 – Indicates that the resource is 404 Not Found, and doesn’t reveal the reason or chances of it being available in the future. 
404 error
404 error
  • 405 – This HTTP status code indicates that the method specified in the request is not allowed and supported by the resource. For example, if a resource needs POST to present data, while GET is used in the request, the server will send 405 error. 
  • 406 – This status code is returned when the requested resource is only capable of generating content not acceptable according to the Accept headers sent in the request. 
  • 408 – It is also known as ‘Request Timeout’ error. It occurs when the server is waiting for the request, but the client is not able to send a request within a certain time frame. 
  • 409 – It indicates that there is a conflict in the request made. 
  • 410 – It is also known as ‘Gone’, which means that the requested resource is no longer available, and there is no redirection or forward address available. 
  • 411 – It means that the user agent needs to specify the content length along with the request in order to be processed by the server. 
  • 413 – It indicates that the requested resource is too large for the server to process. 
  • 414 – It indicates that the requested URI is too long for the server to process. 
  • 415 – It indicates Unsupported Media Format. 
  • 429 – It is used for the purpose of ‘rate-limiting’, and is returned in case of Too Many Requests being sent by the user agent within a certain time duration. This status code is returned with a ‘Retry-After’ header which indicates after how much time the user agent can retry sending the request to the server. 
  • 444 – It is an Nginx HTTP server extension, and is known as ‘No Response’ status code returned when the server returns no information and is used to curb malware. 
  • 451 – It refers to denial of access due to Legal Reasons, imposed by censorship or a government mandate. 
  • 499 – It indicates that the connection is being closed by the client while the server was processing the request, due to which the server cannot return the HTTP header back to the client. 

500 Status Codes-

5XX This series of status codes indicates that though there is no problem with the request made by the user agent, due to some of the other reason server is not able to process the request. 

  • 500 – Indicates that there is some kind of Internal Server Error at the moment and the request could not be processed. 
  • 501 – It indicates that the server fails to understand the request due to lack of support. 
  • 502 – Sometimes server acts as a gateway to another upstream server. In such cases, if the gateway server receives an invalid response from the upstream server it throws back this status code in response to the user agent. 
502 bad gateway
502 bad gateway
  • 503 – If the server is down for maintenance or overloaded with other requests it sends this status code, known as ‘Service Unavailable’. 
  • 504 – If the server is acting as a gateway and did not receive a response from the upstream server within a certain time, it shows 504 status code. 
  • 505 – If the HTTP request made by the user agent is not supported by HTTP protocol followed by the server, a 505 status code is returned, also known as ‘HTTP Version Not Supported’. 
  • 507 – 507 ‘Insufficient Storage’ status code is returned if a process could not be completed due to lack of storage space on the server. 
  • 508 – It is identified as ‘Infinite Loop’ while processing the request. 
  • 511 – Indicates Network Authentication Error. 
  • 521 – This indicates that the ‘Web Server is Down’ and is not able to accept and process the request. 

Conclusion 

The above status codes are just the ones which are popularly encountered, however, there are still a lot more HTTP status codes which are in use. However, there are certain codes which are reserved to be used in future. 


2 Replies to “A Complete Guide to Understanding HTTP Status Codes ”

Leave a Reply

Your email address will not be published. Required fields are marked *