HTTP Status Codes is a plain-English reference to the status codes web servers send back: what each one means and, for errors, the usual causes and what to do. Search by number or keyword. It covers all standard codes you are likely to meet, plus a few common unofficial ones.
The five classes
- 1xx: informational, rarely seen directly.
- 2xx: success. 200 OK is the most common.
- 3xx: redirects and cached responses.
- 4xx: the request has a problem: wrong URL, not logged in, not allowed, invalid data, or too many requests.
- 5xx: the server failed. The request may work if you try again later.
Most common errors
- 404 Not Found: the page or API route doesn’t exist.
- 401 and 403: not logged in, or not allowed.
- 429 Too Many Requests: rate limited; slow down and retry.
- 500, 502, 503 and 504: server-side failures, crashes and timeouts.
How to check a website’s status code
Run curl -I https://example.com to see the status line and headers, or open the Network tab in your browser’s developer tools. Paste the headers into the HTTP Headers Analyzer for an explanation of each one.
Frequently asked questions
What is the difference between 401 and 403?
401 means “we don’t know who you are”: log in or send valid credentials. 403 means “we know who you are, but you’re not allowed”.
What is the difference between 301 and 302?
301 is a permanent move: browsers and search engines update to the new URL. 302 is temporary: they keep using the original URL.
What is the difference between 502 and 504?
Both come from a proxy or load balancer. 502 means the server behind it sent a broken response or none at all; 504 means it took too long to answer.
Are 520 and 522 real status codes?
They aren’t part of the HTTP standard; they are Cloudflare’s own codes for problems reaching a website’s server.
Last updated