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:
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 |