Every HTTP status code you'll actually run into, grouped by class, with what each one really means.
Tap any row to copy the value in the first column.
No matches.
How the classes work
HTTP status codes are grouped by their first digit, and knowing the five classes lets you read most responses at a glance. 1xx is informational, 2xx means success, 3xx is a redirect, 4xx is a client error (the request was wrong — wrong URL, missing auth, bad data), and 5xx is a server error (the request was fine but the server failed). When you're debugging, that first digit tells you which side to look at: a 4xx is usually your code's fault, a 5xx is usually the server's.
The ones you'll see most
A handful come up constantly. 200 is the everyday success; 301 and 302 are permanent and temporary redirects; 401 versus 403 trips people up — 401 means "we don't know who you are" (authenticate), while 403 means "we know who you are and you still can't"; 404 is the famous not-found; 429 means you're being rate-limited; and 500, 502 and 503 are the server-side failures you'll meet when something's down. For working with these from the command line, see the curl commands.
What's the difference between 401 and 403?
401 Unauthorized means authentication is missing or failed — you need to log in. 403 Forbidden means you're authenticated but don't have permission for this resource. Logging in won't fix a 403.
What's the difference between 301 and 302?
301 is a permanent redirect — browsers and search engines update to the new URL and pass on ranking. 302 is temporary — the original URL is kept as the canonical one. Use 301 when a page has truly moved for good.
Is 418 'I'm a teapot' a real status code?
Yes and no — it started as an April Fools' joke in RFC 2324 (the Hyper Text Coffee Pot Control Protocol), but it's defined and supported by many frameworks, so you'll occasionally see it used humorously.