📡 HTTP Status Codes
A searchable reference of every standard HTTP status code, with meanings and common causes.
Informational
The request was received and the process is continuing.
Success
The request was successfully received, understood, and accepted.
Redirection
Further action is needed to complete the request.
Client Error
The request contains bad syntax or cannot be fulfilled.
Server Error
The server failed to fulfil an apparently valid request.
About HTTP Status Codes
Every HTTP response begins with a three-digit status code that tells the client how the request turned out. The first digit defines one of five classes: 1xx informational, 2xx success, 3xx redirection, 4xx client errors, and 5xx server errors. Knowing them well is essential for debugging APIs, tuning caching and redirects, and diagnosing production incidents quickly.
This reference lists all standard codes defined by the IETF (RFC 9110 and related specs), plus the widely-used WebDAV and extension codes. Use the search box to jump to a code by number or keyword, and expand any card for a fuller explanation and the causes you're most likely to hit in practice.
The five classes at a glance
1xx · Informational
The request was received and the process is continuing.
2xx · Success
The request was successfully received, understood, and accepted.
3xx · Redirection
Further action is needed to complete the request.
4xx · Client Error
The request contains bad syntax or cannot be fulfilled.
5xx · Server Error
The server failed to fulfil an apparently valid request.
Frequently Asked Questions
What's the difference between 401 and 403?
401 Unauthorized means you haven't authenticated (or your credentials/token are missing, expired, or invalid) — authenticating correctly may grant access. 403 Forbidden means you are recognized but simply not allowed to access the resource, so re-authenticating won't help; you lack the necessary permissions.
When should I use 301 vs 302 vs 307/308?
Use 301 (permanent) when a URL has moved for good so search engines transfer ranking; use 302/307 (temporary) when the move is short-lived. The modern 307 and 308 additionally guarantee the HTTP method isn't changed (a POST stays a POST), which 301/302 historically did not, so prefer 308 for permanent and 307 for temporary redirects of non-GET requests.
What does a 502 vs 503 vs 504 tell me?
All three are server-side. 502 Bad Gateway means a proxy got an invalid response from the upstream app (often it crashed or is misconfigured). 503 Service Unavailable means the server is overloaded or in maintenance and is usually temporary. 504 Gateway Timeout means the upstream didn't respond in time — commonly a slow query or a timeout that's too short.
Is 429 the same as being blocked?
No. 429 Too Many Requests means you've hit a rate limit and should slow down — it's temporary. Check for a Retry-After header and add exponential backoff to your client. A permanent block is more likely to surface as 403 Forbidden or 451.
Are all these codes officially standardized?
Most are defined in IETF RFCs (notably RFC 9110). A few — like the 1xx/2xx/4xx WebDAV codes (102, 207, 422, 423) and 418 'I'm a teapot' — come from extensions or are semi-humorous, but all are recognized and used in the wild, which is why they're included here.