Glossary

HTTP status codes

HTTP status codes are the three-digit response codes a server sends with every response: 1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error.

Also called Status codes, Response codes.

HTTP status codes, also called HTTP response codes, are the three-digit numbers a server sends back with every response to say what happened to the request. The first digit gives the class (1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error) and the last two digits pick the exact meaning inside it. The classes are the coarse answer to whose problem this is, so getting the class right is most of the diagnosis. The codes and their semantics are defined in RFC 9110.

People who search for HTTP error codes or HTTP exception codes almost always mean the 4xx and 5xx classes, the two that say something went wrong. HTTP has no class called exception: a 4xx blames the request, and a 5xx says the server failed on a request that looked valid. The 1xx, 2xx and 3xx classes are not errors, although a redirect that should not be there can still be a fault.

Uptime monitoring uses the status code as the first verdict on a check. By default an Uptimely website or API check passes only when the response status is between 200 and 399, so every 4xx and 5xx fails it, and the exact code is recorded with the check. A 5xx is unambiguously a server-side failure. A 4xx usually means the check is misconfigured, except 429 and 408, which are about load and timing. If an endpoint answers with a 4xx on purpose, such as a 401 on a route that must reject anonymous requests, change the monitor's criteria to expect the response status code you want instead of leaving it to page every night. To fail on a redirect, add a criteria filter on Response Status Code.

The trap is treating 200 as proof of health. An application that catches its own exception and renders an apologetic error page returns 200 with the failure inside the body, and a check that only looks at the status code will report it as up. Any monitor on a page that matters should also assert something about the content: a string that only appears when the page genuinely rendered.

The five classes, the codes you will meet most often in each, and the default a monitor should take. The common error codes each have a guide under /errors.
ClassMeansCommon codesWhat a monitor should usually do
1xx informationalThe request was received; processing continues.100, 101Never seen as a final response, so ignore.
2xx successThe request was received, understood and accepted.200, 201, 204Pass, but assert on the body too, not the code alone.
3xx redirectionFurther action is needed to complete the request.301, 302, 304, 307, 308Depends on intent: follow it, or fail if the redirect is the bug.
4xx client errorThe request was malformed, unauthorised or for something absent.400, 401, 403, 404, 408, 429Usually a misconfigured check, except 429 and 408.
5xx server errorThe server failed to fulfil an apparently valid request.500, 502, 503, 504Fail the check.
The HTTP status codes you are most likely to see, with a plain meaning and what an Uptimely website or API check does with each by default (it follows redirects and passes on 200 to 399). Codes with a guide link to it.
CodeWhat it meansCheck by default
200 OKThe request succeeded and the response carries the result.Passes
201 CreatedThe request succeeded and created a new resource, usually after a POST.Passes
204 No ContentThe request succeeded and there is no body to return.Passes
301 Moved PermanentlyThe resource has a new permanent URL, and clients should use it from now on.Followed: the final response decides
302 FoundA temporary redirect: the resource is elsewhere for now, so keep using the original URL.Followed: the final response decides
304 Not ModifiedThe client's cached copy is still current, so no body is sent.Passes (rare: a check sends no cache validators)
400 Bad RequestThe server cannot process the request because it is malformed or invalid.Fails
401 UnauthorizedValid authentication credentials are missing or wrong.Fails
403 ForbiddenThe server understood the request and refuses to authorise it. Any credentials sent are not enough.Fails
404 Not FoundNothing was found at that URL.Fails
405 Method Not AllowedThe resource does not allow the method used, for example a POST to a read-only URL.Fails
408 Request TimeoutThe server gave up waiting for the client to finish sending the request.Fails
429 Too Many RequestsThe client sent too many requests in a given time, so the server is rate limiting it.Fails
500 Internal Server ErrorThe server hit an unexpected condition and cannot say more.Fails
502 Bad GatewayA gateway or proxy got an invalid response from the server behind it.Fails
503 Service UnavailableThe server cannot handle the request right now, usually from overload or maintenance.Fails
504 Gateway TimeoutA gateway or proxy did not get a timely response from the server behind it.Fails
520 to 526 (Cloudflare)Cloudflare's own 5xx codes, outside the HTTP standard, for failures between Cloudflare and your origin server.Fails

Questions

What are HTTP response codes?

The same thing as HTTP status codes: the three-digit number at the start of every HTTP response. They are also called HTTP codes or response status codes. The first digit gives the class, and the other two pick the exact meaning inside it.

What does a 3xx status code mean?

The resource is somewhere else, or the client already has it. 301 and 308 are permanent moves, 302 and 307 are temporary ones, and 304 tells a client its cached copy is still good. For a monitor, a redirect is fine when it is the one you meant and a bug when it is not, so decide whether a check should follow it or fail on it.

Which HTTP status codes should fail an uptime check?

Every 5xx, and any code other than the one the page is meant to return. A 4xx usually means the check itself is wrong, except 408 and 429, which are about timing and load. A 2xx still needs a look at the body, because an error page can arrive with a 200.

Can a 200 OK still be an outage?

Yes. An application that catches its own exception often renders an apology page and sends it with a 200. A monitor that reads only the status code calls that page healthy, so a check on a page that matters should also look for text that only appears when the page really worked.

What are HTTP exception codes or HTTP error codes?

HTTP has no class called exception. When people say HTTP error codes or HTTP exception codes they usually mean the 4xx client errors and the 5xx server errors. A 4xx says the request was at fault, a 5xx says the server failed on a valid request, and the first digit alone decides the class.

What is the difference between a 401 and a 403?

A 401 Unauthorized means valid credentials are missing or wrong, so sending the right ones can fix it. A 403 Forbidden means the server understood the request and refuses it, so the credentials you sent, if any, are not enough. Sending the same ones again will not help. A monitor that suddenly gets a 401 has often lost or outgrown its credentials.

What are the most common HTTP status codes?

200 OK for success, 301 and 302 for redirects, 404 Not Found for a missing page, 403 Forbidden and 401 Unauthorized for refused access, 500 Internal Server Error for a server fault, and 502, 503 and 504 for problems at a gateway or an overloaded server. The table on this page lists each with a plain meaning.

What does a status code like 430 mean?

430 is not a standard code: the IANA registry of HTTP status codes lists it as unassigned, so it comes from a particular vendor, CDN or application, and its meaning is whatever that vendor documents. HTTP itself says to treat an unknown code as the x00 code of its class, so a client reads 430 as a 400.

Uptimely records the status code of every check, and a monitor's criteria decide which codes count as down, with checks as often as every minute on every plan.

Start monitoring free →

Part of the Uptimely monitoring glossary — plain definitions of the vocabulary uptime monitoring, incident response and status pages are discussed in. Something here read wrong to you? Email support@getuptimely.com.