Different Types of HTTP Status Codes Explained In Layman’s Term
What is an HTTP status code and why should you care about them, if you have a website or a blog?
Whenever you enter the address of a webpage in your browser’s address bar, the browser requests data from the server where the page is originally hosted. The web server returns the data but before the browser receives and renders the data at the clients end, an HTTP header is returned by the web server that has the status code of the given page.
In general, HTTP status codes are not meant for human visitors but both desktop and mobile browsers use this information to know more about the present condition of the webpage in question. If the page is in a healthy state, the HTTP status code returned should be a 200 OK. If the page has been moved to a new address, the HTTP status code should be 301 and so on.
There are lots of different HTTP status codes in place and the following table should explain what are the different types of HTTP header responses and their purpose in brief detail:
HTTP Status code | Type | Description | Link Juice |
Redirected | |||
300 | Redirection | The server is waiting for an action from the user so that it can fetch a new resource | Depends |
301* | Redirected | The old page has permanently moved to a new web address | Carried |
302 | Redirected | The old page has temporary moved to a new location but the user should continue using the old URL later | Not carried |
303 | Conditional redirection | The user is requested to do some action (GET request) so that the current page may redirect to another resource. The GET request is conditional. | Not carried |
304 | Conditional redirection | The user has performed some action (conditional GET request) but the current page was not modified. | Not carried |
305 | Redirected | The user can only access the requested page using a proxy. | Not carried |
306 | Redirected | The server is fetching the page from another location but it will soon fetch the page from its older source. This status code is rarely used over a 302. | Not carried |
Successful | |||
200 ** | Success | The server has processed the webpage correctly. | Carried |
201 | Success | The server has processed the requested page and created a new page or resource during the request. | Depends |
202 | Partial success | The server has received the request for the webpage and is currently processing it. | Carried |
203 | Partial success | The server has received the request for the webpage and it is waiting for a resource from another page. | Carried |
204 | Partial success | The server processed the request for the webpage but no content has been returned due to an error. | Carried |
205 | Partial success | Same as 204 but this time the server is waiting for the user to complete a specific action. | Carried |
206 | partial Success | The server received a partial GET request from the user. | Carried |
Request Errors | |||
400 | Fail | Wrong syntax sent by the user | Not carried |
401 | Authentication required | The page is behind a login and/or requires an authentication from the user. | Not carried |
403 *** | Forbidden | The server denied the request. | Not carried |
404 | Page does not exist | The requested page is not found on the server. | Not carried |
405 | Not allowed | The server is not allowing any request to the page for this user. | Not carried |
406 | Not allowed | The server can’t respond to the request at this time. | Not carried |
407 | Proxy required | The resource must be requested via a proxy. | Not carried |
408 | Timed out | The server timed out performing the request. | Not carried |
409 | Conflict | The user’s action has given rise to a conflict of resource. | Not carried |
410 # | Permanently removed | The page has been permanently removed from the server. | Not carried |
Server Errors | |||
500 | Internal Server error | The server is facing issues with some internal configuration and thus unable to fulfill the request at this time | Not carried |
501 | Not recognized | The server is not equipped to understand the type of request sent | Not carried |
502 | Bad gateway | While fulfilling the current request, the server received an incorrect response from its upstream server | Not carried |
503 | Server not available | The server is facing downtime or is currently unavailable | Not carried |
504 | Gateway timeout | The server is acting as a gateway or a proxy server to another resource and didnt received a timely request from the user | Not carried |
505 | Server does not support protocol | The server is not configured to support the HTTP protocol version that is used in the request | Not carried |
* This is the only way to tell search engines that your old page has moved to a new location and the newer URL should be re-crawled and re-indexed. Only this server header preserves link juice and Google Pagerank but remember that if the page is part of a redirect chain, a considerable portion of the PR may be lost overtime.
** This should be normally the HTTP status code returned by a webpage if it’s static in nature and needs no GET request from the user.
*** If any of your pages return a 403 HTTP status code, it means that your web server denied the request of the page to Googlebot and human visitors. A possible case is when your web host is facing downtimes or it is blocking spiders and search bots from accessing some parts of your website, so you should be careful about it.
# This is similar to a 404 error but the standard practice is to 301 redirect the missing page to it’s newer location. If the page has no new location, it is recommended to return a 410. If you have temporarily removed the page from the server, use a 503 instead.
How To Check the HTTP Status code of a Webpage?
To check the HTTP status code or the server headers returned by a webpage, go to this link, enter the complete web address of the page in the “check server headers” text box and hit the “check” button.
The site will process your webpage, check the HTTP server header and show it back to you. If you find that the server header returned is 200 OK, it means that the page in question is opening normally to all users and search engines or web crawlers can successfully parse it at their end.
Another good way to bulk check server headers is to use fetch as Googlebot in your your Google webmasters tools account. Go to site diagonostics > fetch as Googlebot and enter the URL of a page within your site to check its HTTP status code.
Also read: List of HTTP status codes