Developer

HTTP Status Code Reference

Look up the meaning of HTTP status codes like 200, 404, 500.

Search and filtering run entirely in your browser — nothing is sent to a server.

What is this tool?

The HTTP status code dictionary lets you instantly look up the meaning, typical cause, and recommended response for any three-digit status code returned by a server. Type a code number or part of its name, or use the category chips to filter.

Category guide
  • 1xx Informational: the request was received and processing continues.
  • 2xx Success: the request was completed successfully.
  • 3xx Redirection: further action (e.g. following another URL) is needed to complete the request.
  • 4xx Client Error: the request itself has a problem the server cannot process.
  • 5xx Server Error: the request was valid but the server failed to fulfill it.
Privacy & processing

All search and filtering happens entirely in your browser. Nothing you type is sent to a server or stored.

The 5 classes at a glance

HTTP status codes fall into 5 classes based on their first digit. Here they are with representative codes.

ClassMeaningRepresentative codes
1xxInformational — request received, processing continues100, 101, 103
2xxSuccess — the request was handled correctly200, 201, 204
3xxRedirection — further action is needed301, 302, 304
4xxClient error — something's wrong with the request400, 401, 404
5xxServer error — the request was valid but the server failed500, 502, 503

Clients (browsers, API libraries) can decide whether to retry, follow a redirect, or treat something as an error just by looking at the first digit, without needing to know every specific code.

Real-world misuse — error bodies under 200, and the 301 vs 302 cache trap

Two common anti-patterns where status codes are used against their intended meaning.

1. Error bodies under 200 — Some APIs return 200 OK even when the request actually failed, signaling the failure only inside the JSON body (e.g. {"error": "..."}). This makes caches, monitoring, and client auto-retry/logging logic all treat the response as a success, forcing every consumer to parse the body just to detect failure. The rule of thumb: use 4xx/5xx for failures and 2xx for success at the status-code level itself.

2. The 301 vs 302 cache trap — Browsers cache 301 Moved Permanently indefinitely, so future requests skip the server entirely and jump straight to the cached target. Ship a 301 with the wrong redirect target and the browser cache can keep the problem alive long after you fix the server (users may need to clear their cache). Conversely, using 301 instead of 302 for a temporary change lets search engines permanently transfer the old URL's SEO value to the new one — hard to undo. Reserve 301 for truly permanent moves, and use 302 or 307 for temporary redirects, A/B tests, or maintenance windows.

What is an HTTP status code?
An HTTP status code is a three-digit number a server returns to tell the client the result of its request. The first digit marks the broad category (1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error), and browsers or API clients use it to decide what to do next.
What's the difference between 404 and 410?
Both mean a resource can't be found, but 404 Not Found is used when the server can't tell whether the resource ever existed at that path, while 410 Gone explicitly states the resource existed before but was intentionally and permanently removed.
What should I do about a 500 error?
A 500 Internal Server Error stems from server-side code or configuration issues, so it can't be fixed from the client. Try again shortly, and if it persists, contact the site or service operator or check server logs.
How many status codes exist, and why does this dictionary only list some?
IANA has registered roughly 60 official HTTP status codes, but this dictionary curates the ones developers actually encounter most often across all five categories (1xx-5xx). Rarely used codes were left out since they're searched far less often.
What do the 5 status code classes mean?
1xx is informational (processing continues), 2xx is success, 3xx is redirection (further action needed), 4xx is client error, and 5xx is server error. A client can decide whether to retry, follow a redirect, or treat something as an error just from the first digit.
Is it OK to return 200 with an error in the body?
This is a discouraged anti-pattern. Keeping the status code at 200 while only signaling failure inside the body makes caches, monitoring, and client auto-retry logic all treat the response as a success. The rule: use 4xx/5xx for failures and 2xx for success at the status-code level.
Should I use 301 or 302?
Reserve 301 for truly permanent moves. Browsers cache 301s indefinitely and search engines permanently transfer SEO value to the new URL, so using 301 for a temporary change is hard to undo. Use 302 or 307 for temporary redirects or maintenance windows.