This article will explain what HTTP status codes are, define what each code means and show you how you can see the status code in Siteimprove.
What are HTTP status codes?
HTTP Response Codes indicate whether specific HTTP requests have been successfully completed. Basically, it's an indicator of whether a web page has loaded successfully. Responses are grouped into five classes: informational responses, successful responses, re-directs, client errors, and server errors.
Where can I see the HTTP status code?
The HTTP status code for a link can be found in the following locations:
1. Quality Assurance > Inventory > Links
2. Quality Assurance > Page Report > Click on broken link
What do the status codes mean?
Below is a list of common HTTP status codes and their definitions. For a more a detailed list, refer to the following article: HTTP Response Codes.
|Status code||Status text||Description|
|200||OK||The request has succeeded. The meaning of success varies depending on the HTTP method:
|300||Multiple Choice||The request has more than one possible responses. The user-agent or user should choose one of them. There is no standardized way to choose one of the responses.|
|301||Moved Permanently||This response code means that the URI of the requested resource has been changed. The new URI is probably given in the response.|
|302||Found||This response code means that the URI of the requested resource has been temporarily changed. New changes in the URI might be made in the future. Therefore, this same URI should be used by the client in future requests.|
|303||See Other||The server sent this response to directing client to get the requested resource from another URI with an GET request.|
|304||Not Modified||This is used for caching purposes to tell the client that the response has not been modified. So, the client can continue to use same cached version of the response.|
|307||Temporary Redirect||The server sent this response to the directing client to get requested resource from another URI with same method that used prior request. This has the same semantic as the 302 Found HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.|
|308||Permanent Redirect||This means that the resource is now permanently located at another URI, specified by the Location:HTTP Response header. This has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.
Note: This is an experimental response code whose specification is currently in draft form.
|Client error responses|
|400||Bad Request||This response means that server could not understand the request due to invalid syntax.|
|401||Unauthorized||Authentication is needed to get the requested response. This is similar to the 403 response code, but in this case, authentication is possible.|
|403||Forbidden||Client does not have access rights to the content so the server is not allowing access to the requested response.|
|404||Not Found||Server cannot find requested resource. This response code is well-known due to its frequent occurrence.|
|405||Method Not Allowed||The request method is known by the server but has been disabled and cannot be used. The two mandatory methods, GET and HEAD, must never be disabled and should not return this error code.|
|408||Request Timeout||This response is sent on an idle connection by some servers, even without any previous request by the client. It means that the server would like to shut down this unused connection. This response is used much more since some browsers, like Chrome or IE9, use HTTP preconnection mechanisms to speed up surfing (see bug 881804, which tracks the future implementation of such a mechanism in Firefox). Also note that some servers merely shut down the connection without sending this message.|
The request could not be completed due to a conflict with the current state of the resource. This code is only allowed in situations where it is expected that the user might be able to resolve the conflict and resubmit the request. The response body SHOULD include enough information for the user to recognize the source of the conflict. Ideally, the response entity would include enough information for the user or user agent to fix the problem; however, that might not be possible and is not required.
Conflicts are most likely to occur in response to a PUT request. For example, if versioning were being used and the entity being PUT included changes to a resource which conflict with those made by an earlier (third-party) request, the server might use the 409 response to indicate that it can't complete the request. In this case, the response entity would likely contain a list of the differences between the two versions in a format defined by the response Content-Type.
|412||Precondition Failed||One or more conditions given in the request header fields evaluated to false when tested on the server. This response code allows the client to place preconditions on the current resource state (its current representations and metadata) and, thus, prevent the request method from being applied if the target resource is in an unexpected state.|
|429||Too Many Requests||
The user has sent too many requests in a given amount of time. Intended for use with rate-limiting schemes to control the rate of traffic sent or received to prevent DoS attacks.
|Server error responses|
|500||Internal Server Error||The server has encountered a situation it doesn't know how to handle.|
|502||Bad Gateway||This error response means that the server, while working as a gateway to get the response needed to handle the request, got an invalid response.|
|503||Service Unavailable||The server is not ready to handle the request. Common causes are a server that is down for maintenance or overloaded. Note that together with this response, a user-friendly page explaining the problem should be sent. This response should be used for temporary conditions and the Retry-After: HTTP header should, if possible, contain the estimated time before the recovery of the service. The webmaster must also take care about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.|
|*Unofficial HTTP status code|
Unable to process request,
|This is not an official HTTP status code. It is used as a “catch-all” error code presented when a more specific error code is not provided by the server we are trying to access.
We see this behavior on social media sites like LinkedIn who either wish to prevent crawlers altogether or limit the number of requests made. This response can be intermittent as in some cases a server will block the crawler IP address for a limited time period.
In such cases, we suggest you re-crawl of the link at a later stage. If the problem persists with a link that you know to be working, you can ignore this specific link in the page report.
*Unofficial HTTP status codes are also seen but these are not standardized in the status code definitions from the Internet Engineering Task Force (IETF) in RFC 7231.