DevTools
All tools

HTTP Status Codes

Search every HTTP status code by class, with practical explanations.

Sources and selection

HTTP status codes are defined normatively in RFC 9110 (HTTP Semantics) and the IANA HTTP Status Code Registry. The descriptions here are not the spec's wording — they are written from scratch around when you actually hit each code and what it is easily confused with (401 versus 403, 301 versus 308). Unofficial codes that show up in practice but are absent from the standard (nginx's 499, for instance) are included and labelled as such. For the normative definition, follow the sources below.

What is the HTTP Status Code Reference?

This is a searchable reference of HTTP response status codes, each with its code, name, and a practical description. It covers the standard codes from RFC 9110 plus unofficial codes you regularly meet in the field (like nginx's 499 Client Closed Request), from the 100s through the 500s, all in one place.

Status codes are grouped by their leading digit: 1xx informational, 2xx success, 3xx redirection, 4xx client errors, 5xx server errors. Each code carries a one-line description focused on when you actually encounter it — not just a dictionary definition — so an unfamiliar code in a log or API response is quick to make sense of.

This reference is pure static data with no server lookup, so it searches and filters instantly in your browser. You can search by code number, name, or description, and narrow by status class (1xx–5xx) with the tabs — a fast way to find the right code for a situation without memorizing them.

How to use

  1. Type a code number (e.g. 429) or a name/keyword (e.g. timeout, cache) into the search box to filter live across code, name, and description.
  2. Use the tabs (All / 1xx / 2xx / 3xx / 4xx / 5xx) to show a single class, and combine with the search box to narrow further.
  3. Read the code, name, and practical description in the table to interpret a code you saw in logs, or to pick the right code to return from your own API.

Frequently asked questions

What's the difference between 401 and 403?
401 Unauthorized effectively means 'not authenticated' — credentials are missing or invalid and you need to log in (it comes with a WWW-Authenticate header). 403 Forbidden means you are authenticated but lack permission for that resource, so re-authenticating won't grant access.
What's the difference between 301 vs 308, and 302 vs 307?
Historically 301 and 302 often cause the method to change to GET on redirect. 308 (permanent) and 307 (temporary), by contrast, must preserve the original method and body. If you need to redirect a POST while keeping the method intact, use 307/308.
What should I do when I see a 429?
429 Too Many Requests means you've exceeded a rate limit. The response's Retry-After header tells you when you can retry, so clients should honor that value and retry with exponential backoff.
How do 502 and 504 differ?
Both come from a gateway or proxy (reverse proxy, load balancer) talking to an upstream. 502 Bad Gateway means it got an invalid response from the upstream (a sign the backend is down or crashed); 504 Gateway Timeout means the upstream didn't respond in time (a sign the backend is slow).