HTTP Status Codes Explained

HTTP Status Codes Explained

Nov 24, 2016 BY admin

You’ve probably come across status messages like “301 Moved Permanently”, “403 Forbidden”, or “404 Not Found” before and had no idea what to do next. What do these codes mean exactly, and what should you do in these situations? It’s especially important to understand HTTP if you have your own website so as to manage it properly. HTTP stands for Hypertext Transfer Protocol and refers to status codes from internet standards. There are several classes, and the first digit indicates which class the code belongs to.

100 – Informational

The informational status code consists of a status line and options headers. It is finished by an empty line. It indicates a provisional response and the headers aren’t needed for this class of status code. Certain conditions must exist for the servers to be allowed to send a 1xx response to a client. We can explain this by the fact that no 1xx status codes were defined by the client. Still, the HTTP/1.0 client has to be prepared to accept multiple status responses before any regular response.

200 – Success

Another call type of status codes is the 200 success code, which indicates that the request made by the client was successfully received and understood, as well as accepted. Of course, this automatically means the request has been successfully processed. 200 OK, in particular, is a response to any successful HTTP request.

201 – Created

This is the first type of status code you’ll encounter in this class and it indicated that a request has been fulfilled. This results in the creation of a new resource.

202 – Accepted

This status code lets you know that your request has been confirmed and has been accepted for processing. Keep in mind that this doesn’t mean the process has terminated. You can still act upon the request, though it may be forbidden in some instances.

203 – Non-Authoritative Information

As a transforming a proxy or web accelerator, the response filed under number “203” indicates the server has received the “200 OK” status code from the origin. However, it is returning a modified version of the original response.

204 – No Content

Finally, this common status code indicates that the server has received and processed the request successfully. It is not returning any substance in this response.

300 – Redirection

If the client is receiving a response under the class 3xx, it means additional steps need to be taken to complete a request. This action can be done by the user agent without any interaction, but only when the second request is GET or HEAD. It’s important for the client to detect infinite loops as they usually create network traffic for each redirection. This class of status codes usually refers to URL redirection, but not always.

301 – Moved Permanently

This status code indicates that the current request, as well as all future ones, need to be redirected at a selected link.

302 – Found

If the client receives this response, they should perform a temporary redirect.  It usually occurs when industry practices contradict the standard. Originally, it was described as “moved temporarily” but it ended up functioning like a 303. To this day, some sites use 302 as if it were a 303.

303 – See Other

The 303 can be found using the GET method under a URI. If it is obtained within a “put/delete” or “post” response, the client can be free to presume the server has received the data. In that spirit, they should expect a new redirection link in another GET message.

304 – Not Modified

When this status code occurs, it means the client already has a downloaded copy of the resource and there is no need for further transmission. The resource has not been modified since the version indicated by the request headers (if-non-match and if-modified-since).

307 – Temporary Redirect

If the request receives a 307, the response should be repeated with a different URI. If the status code keeps appearing, though, the original URI should be used. Before, 302 responses could not be changed when reissuing the original request.

400 – Client Error

This is a class of status codes which indicate the client has made a mistake somewhere. The server needs to include an entity which describes the nature of the error, primarily if it’s temporary or permanent. They are applicable to all request methods and should be displayed by the user agents to included entities to the user.

401 – Unauthorized

When authorization is required but has not yet been provided or has failed, a 401 code will be displayed. It means the user does not have adequate credentials.  

402 – Payment Required

This code was reserved for digital payment but is not in use yet. The only one who uses it is Google when a developer has exceeded his daily limit.

403 – Forbidden

If your request was valid but the server refused to react to it, you will get the 403 response. One of the reasons this happens is because the user doesn’t have required permissions to access the resource while being logged in.

404 – Not Found

The resource you are after cannot be found, but that doesn’t mean it won’t be available in the future. The client can also make subsequent requests.

500 – Server Error

Contrary to 4xx type codes, the 5xx class responses indicate the server has failed to fulfil given requests. The server is sent a response, but it is aware that it cannot perform a request or has encountered an error. Any request method can be met with this response. The server needs to include an entity which further elaborates of the nature of the error and what it involves, as well as if it’s permanent or temporary.

The response 500 indicates a generic type of error and is primarily referred to as the internal server error. It shows up when no other response is applicable and indicates an unforeseen condition.
Aside from it, the most important 5xx response is 501- not implemented. This happens when the server simply has no ability to process the request. It can also happen when the server doesn’t recognize the method used to send the request. This response carries one important implication with it, though. It implies that the request might be available in the future.


HTTP codes are nothing to be afraid of, even though they may seem complicated at first glance. From basic informational codes to server errors, you’ll be equipped to handle any status message you receive. HTTP has been around for ages and is a very useful internet tool, so understanding it will give you an advantage in the online world.

Client Testimonials


Work with us
CEO & Founder of Hoselink & True Protein
Ben Kierath chose Green Web marketing for two of his buisinesses, hoselink and True Protein/ in the video/ Ben explains the service he received as well as some extraordinary results.
Total Appliance Repair Center
GWM team is outstanding. Within short period of time, we have 18 keywords on page #1 of Google which is an outstanding results and good return on investment.
FREE Strategy Session