HTTP status codes
Every common HTTP status code with a plain-English meaning — grouped by class, plus the pairs developers mix up.
1xx — Informational
The request was received; processing continues.
| Code | Name | Meaning |
|---|---|---|
| 100 | Continue | Headers received — the client can send the request body. |
| 101 | Switching Protocols | Server is switching protocols as requested (e.g. to WebSocket). |
| 103 | Early Hints | Preload hints sent before the final response. |
2xx — Success
The request succeeded.
| Code | Name | Meaning |
|---|---|---|
| 200 | OK | Standard success response. |
| 201 | Created | Request succeeded and created a new resource. |
| 202 | Accepted | Accepted for processing, not yet completed. |
| 204 | No Content | Success with no response body. |
| 206 | Partial Content | Partial response to a range request. |
3xx — Redirection
Further action is needed to complete the request.
| Code | Name | Meaning |
|---|---|---|
| 301 | Moved Permanently | Resource permanently moved; update links (passes SEO signal). |
| 302 | Found | Temporary redirect; keep using the original URL. |
| 303 | See Other | Redirect to fetch the resource with GET. |
| 304 | Not Modified | Cached copy is still valid; no body sent. |
| 307 | Temporary Redirect | Like 302, but the HTTP method is preserved. |
| 308 | Permanent Redirect | Like 301, but the HTTP method is preserved. |
4xx — Client Error
The request was wrong or not allowed.
| Code | Name | Meaning |
|---|---|---|
| 400 | Bad Request | Malformed request the server can't understand. |
| 401 | Unauthorized | Authentication required or failed — you're not logged in. |
| 403 | Forbidden | Authenticated but not allowed — you can't access this. |
| 404 | Not Found | No resource exists at this URL. |
| 405 | Method Not Allowed | HTTP method not supported for this resource. |
| 406 | Not Acceptable | Can't produce a response matching the Accept headers. |
| 409 | Conflict | Request conflicts with the current state (e.g. a duplicate). |
| 410 | Gone | Resource was permanently removed. |
| 413 | Payload Too Large | Request body exceeds the server limit. |
| 415 | Unsupported Media Type | Body format is not supported. |
| 418 | I'm a teapot | A joke code from an April Fools RFC — not a real error. |
| 422 | Unprocessable Entity | Well-formed but semantically invalid (validation failed). |
| 429 | Too Many Requests | Rate limited — slow down and retry later. |
5xx — Server Error
The server failed to fulfil a valid request.
| Code | Name | Meaning |
|---|---|---|
| 500 | Internal Server Error | Generic server-side failure. |
| 501 | Not Implemented | Server doesn't support the functionality. |
| 502 | Bad Gateway | An upstream server returned an invalid response. |
| 503 | Service Unavailable | Server is temporarily overloaded or down. |
| 504 | Gateway Timeout | An upstream server didn't respond in time. |
| 505 | HTTP Version Not Supported | The HTTP version is not supported. |
Commonly confused
- 401 vs 403
- 401 means not authenticated ("who are you?"); 403 means authenticated but not permitted ("I know you, and you still can't").
- 301 vs 302
- 301 is permanent — browsers cache it and it transfers SEO signal. 302 is temporary — keep using the original URL.
- 307 vs 302
- Both are temporary, but 307 guarantees the HTTP method (e.g. POST) is kept; 302 historically allowed it to change to GET.
- 502 vs 504
- 502 means the upstream gave a bad/invalid response; 504 means the upstream gave no response in time (a timeout).
Related dev tools: JWT decoder · JSON formatter · Base64 · Number base converter
Frequently asked questions
What are the 5 categories of HTTP status codes?
1xx informational, 2xx success, 3xx redirection, 4xx client error, and 5xx server error.
What is the difference between 401 and 403?
401 Unauthorized means you are not authenticated (not logged in). 403 Forbidden means you are authenticated but not permitted to access the resource.
What is a 429 error?
429 Too Many Requests means you have been rate limited. Slow your request rate and retry after the time in the Retry-After header if present.
Is HTTP 418 a real status code?
418 I'm a teapot comes from a 1998 April Fools RFC (Hyper Text Coffee Pot Control Protocol). It is not used for real errors, though some frameworks keep it as an easter egg.