HTTP Status codes are the number given by a web server that equate to how a HTTP transaction has (or hasn’t) been executed – they are also known as Server Response Codes.
Normally, when HTTP Status Codes are referred to, people are actually talking about the HTTP status code combined with the HTTP reason phrase. For example, one of the most well-known status codes is the infamous 404: Not Found. This is made of the HTTP Status Code ‘404’, along with the HTTP reason phrase ‘Not Found’.
As a visitor to a website, most of the time you would not see these codes unless something goes wrong (such as the aforementioned 404 status code), but servers do also send status codes when transactions are carried out successfully – you just don’t see them.
Here we’ll give you a list of some of the most common HTTP Status Codes, and what they mean:
One of the silent Status Codes/Server Response Codes, this means that the request was received and processed successfully.
301: Moved Permanently
The resource that was requested has been assigned a new permanent URI, and the server should be redirecting you there.
(note: a URI is a Uniform Resource Identifier, which is ‘a string of characters used to identify a resource’, and can be a locator, a name, or both. A subset of these that is more commonly heard of are URLs – Uniform Resource Locators. In the similar mindset that all dogs are animals, but not all animals are dogs, all URLs are URIs, but not all URIs are URLs! Daniel Miessler gives a more detailed explanation of this on his website).
The resource that was requested has been assigned a new temporary URI, and the server should be redirecting you there (but for future requests, it will try and use the original location again).
For the request to be successfully processed, user authentication is required. If you’re seeing the 401 status code, this means the header in your request didn’t contain the authorisation codes necessary to view the page content.
The request was received and understood, but the server refuses to process it. Even with authorisation, the request would not be successful.
404: Not Found
The server was unable to find anything that matched the requested URI, and it is impossible to tell whether this is temporary or permanent. This is often used either when a server does not want to reveal specifically why a request was refused, or if no other response is applicable.
500: Internal Server Error
An error has occurred in the server itself which prevented it from completing the request. This is a generic, default message that is used when no other codes are applicable. When it comes to WordPress this is similar to the ‘error establishing a database connection‘ message which you can see when the WordPress MySQL database gets tied up.
503: Service Unavailable
The server was unable to handle your HTTP request at the time. This could be due to server crash, server maintenance, server overload, or other reasons. It is generally temporary, and is a code that is normally put up until the whatever the problem was has been fixed.
If you’d like to know more, check out our SEO glossary – we’ve explained all the terms you’re ever likely to need to know.