HTTP Status Code Meanings

Each test that we run at StatusCake will return a Status Code, and this code is a vital part of the “message” that we get in response to our connection attempt. Each code carries a specific meaning around the status of the web page or service.

You can configure which status codes will give an error within the settings for any uptime test:

status codes

In this article we’ll take you through all of the Status Codes you might see on your StatusCake uptime tests, this can help you better understand your root downtime causes, as well as smaller groupings of results you might be trying to interpret in the latest tests section.

1XX status codes – Codes that start with the number 1 are intended to convey information and will not usually represent an error state. We also include status code 0 here

Code Meaning
0 StatusCake will mark a code 0 when it receives a timeout or connection refusal while trying to process the test
100 The server has received request headers, and is waiting for a request body to be sent
101 The client has requested a switch of protocol, which the server has approved
102 The server has received a request, but no response is available yet. If an instant response is expected, this can be a good code to keep an eye out for, you can configure your StatusCake uptime test to alert you if we see it
103 This code will trigger when the server needs to send response headers before the connection completes

2XX status codes – Codes that start with the number 2 indicate that the desired action was successful, again these are not codes that suggest any particular problem with your server – but there are still some behaviours in this list that you might want your testing to look out for

Code Meaning
200 This code means: OK – everything went well & was completed
201 This code is similar to a 200 above, but also indicates that a resource was created as a result of the connection
202 The request was accepted, but further processing time is required for completion. Completion is not guaranteed, but this code indicates that it’s been logged for processing, either manually or automatically at a later time
204 The connection worked and the request was processed, but there’s no content to be served in response. Whilst this isn’t necessarily an issue, it can be a good code to watch out for using your StatusCake uptime tests
205 An unusual code which indicates the server requesting the client do a page refresh, or clear form content in order to continue
206 This code indicates that the server has sent through only part of the requested resource. This mostly applies to connections involving a file download
207 This code is used in the case of a “Multi-Status”, where more than one status code needs to be returned. If multiple status codes are returned, they will be found in the response body

3XX status codes – Codes that start with the number 3 are generally related to redirection, Uptime tests are configured to follow redirects by default, so seeing some of these codes within your test results may indicate that this option has been disabled, or that redirects are not completing correctly on your server

Code Meaning
300 The server has given the client multiple options based on the connection info sent through, one example of how this could be used would be to serve a different file when a specific user-agent is sent
301 An auto-redirect is triggered to the proper URL when this code is received, the 301 status code is intended to let clients and search engines know that the target resource has been permanently moved to a new URL
302 An auto-redirect is triggered, this code is intended to let the client know that a resource has temporarily been moved to a different URL
303 An auto-redirect is triggered, this response indicates that the resource has been moved to a different URL, and should be accessed via the GET method
304 An auto-redirect is triggered, but the server lets the client know that the content has not been modified. Usually indicating that the requested resource has already been provided, and is cached by the client
305 Error code indicating that the requested resource must be accessed through a proxy
306 Error code indicating that the requested resource needs to be accessed through a different proxy to before, further details are usually returned in the response
307 This status code indicates a temporary redirect is in place, it will typically be sent in place of code 302 by newer systems
308 This status code indicates a permanent redirect is in place, it will typically be sent in place of code 301 by newer systems

4XX status codes – Codes that start with the number 4 will mostly be returned when the server has an error that it thinks may be caused by the client, by default your StatusCake tests will be looking out for most of these automatically

Code Meaning
400 The 400 status code means : bad request. The request could for example contain invalid data, or be too large for the server to handle
401 The 401 status code indicates that the connection was not authorized due to a lack of valid authentication credentials
402 The server can return a 402 code when it detects via the connection that a payment is required to continue. It’s rare to see this code in use right now, but usage may rise in future
403 This code indicates that access to the requested resource has been forbidden by the server. For example, you might see this when a connection happens from a region disallowed by your server
404 This one might be familiar as it’s one of the most commonly issued status codes! The 404 code indicates that the requested resource was not found on the server, usually caused by a missing file or incorrect link
405 The 405 code is given when a resource is requested by the wrong method. You might see this on a StatusCake test if you are sending a GET request but the target server expects POST
406 If the server finds your request to be unacceptable it will return a 406 status code. If you see this one on a StatusCake test it would be advisable to check you aren’t sending restrictive content type headers with the connection
407 A 407 status code means that proxy authentication is required to complete the request
408 The request timed out after a set period, this will be represented in StatusCake as code 0
409 The 409 status code is letting the client know they cannot currently access the resource as it’s in use by another client, and in a state where it cannot be viewed. It could be that the resource is currently being edited
410 This status code is used by the server to acknowledge that there was a resource at the requested URL previously, but that this resource is no longer available, and will not be available again in future
411 You will see a 411 code if the target server requires information on content length to be sent as part of the connection – but this was not received
429 This status code indicates that too many connections have been sent within a given amount of time, this is usually a sign that our testing has been rate limited, and you should reduce the check rate in test settings

5XX status codes – Codes that start with the number 5 mostly returned when the server has an error that it thinks may be caused by the server, by default your StatusCake tests will be looking out for most of these automatically

Code Meaning
500 The 500 code indicates a general server error, it’s used when something unexpected happens, and a more specific status code cannot be given
502 A 502 code means that the server was acting as a proxy or gateway, and did not receive a valid response from the server it would usually direct the connection to
503 This code means that the service is temporarily unavailable, usually due to maintenance or something similar
504 A 504 code means that the server was acting as a proxy or gateway, and did not receive a timely response from the server it would usually direct the connection to

Related Articles