HTTP status codes are the three-digit numbers a web server returns with every response to tell the browser what happened. The first digit sets the class: 1xx informational, 2xx success, 3xx redirect, 4xx you (the client) made an error, 5xx the server made an error. Here is the full reference for every code you are likely to meet, grouped by class.
📄 Download the printable HTTP status codes (PDF)
A one-page quick reference to keep or print. → Download the HTTP status codes cheat sheet (PDF)
1xx Informational
| Code | Name | Meaning |
|---|---|---|
100 |
Continue | Server received the request headers; the client should send the 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
| Code | Name | Meaning |
|---|---|---|
200 |
OK | The request succeeded. The standard "everything worked" response. |
201 |
Created | The request succeeded and created a new resource. |
202 |
Accepted | The request was accepted for processing but is not complete. |
204 |
No Content | Success, but there is no body to return. |
206 |
Partial Content | Success for a range request (e.g. resumable downloads, video seeking). |
3xx Redirection
| Code | Name | Meaning |
|---|---|---|
301 |
Moved Permanently | The resource has a new permanent URL; update your links. Passes SEO signals. |
302 |
Found | Temporary redirect; the URL may change again, so keep using the original. |
303 |
See Other | Redirect to another URL, fetched with GET (used after a POST). |
304 |
Not Modified | The cached copy is still valid; the client can reuse it. |
307 |
Temporary Redirect | Like 302 but the method (POST, etc.) must not change. |
308 |
Permanent Redirect | Like 301 but the method must not change. |
4xx Client errors
| Code | Name | Meaning |
|---|---|---|
400 |
Bad Request | The server could not understand the request (malformed syntax or params). |
401 |
Unauthorized | Authentication is required or has failed. You are not logged in. |
403 |
Forbidden | You are authenticated but not allowed to access this resource. |
404 |
Not Found | The resource does not exist at this URL. The most familiar error. |
405 |
Method Not Allowed | The HTTP method (GET/POST/...) is not supported for this resource. |
406 |
Not Acceptable | The server cannot produce a response matching the Accept headers. |
408 |
Request Timeout | The client took too long to send the request. |
409 |
Conflict | The request conflicts with the current state (e.g. an edit collision). |
410 |
Gone | The resource was intentionally and permanently removed. |
413 |
Payload Too Large | The request body is larger than the server will accept. |
415 |
Unsupported Media Type | The body format (Content-Type) is not supported. |
418 |
I'm a teapot | An April Fools joke code from RFC 2324; sometimes used as a placeholder. |
422 |
Unprocessable Content | The syntax is fine but the data fails validation. Common in APIs. |
429 |
Too Many Requests | You are being rate-limited; slow down and retry later. |
5xx Server errors
| Code | Name | Meaning |
|---|---|---|
500 |
Internal Server Error | A generic server-side failure. Something broke on the server. |
501 |
Not Implemented | The server does not support the functionality to fulfil the request. |
502 |
Bad Gateway | A gateway or proxy got an invalid response from the upstream server. |
503 |
Service Unavailable | The server is down, overloaded or in maintenance. Usually temporary. |
504 |
Gateway Timeout | A gateway or proxy did not get a response from upstream in time. |
507 |
Insufficient Storage | The server is out of storage to complete the request (WebDAV). |
The ones you will actually hit
Most of the time you only meet a handful: 200 (OK), 301 (permanent redirect), 302 (temporary redirect), 304 (cached, not modified), 400 (bad request), 401 (not logged in), 403 (forbidden), 404 (not found), 429 (rate limited), 500 (server error), 502 (bad gateway) and 503 (service unavailable). The 4xx codes mean the request was wrong; the 5xx codes mean the server failed.
Frequently asked questions
What is an HTTP status code? A three-digit number a server sends with every HTTP response to indicate the result. 2xx means success, 3xx a redirect, 4xx a client error, and 5xx a server error.
What is the difference between a 502 and a 503 error? A 502 Bad Gateway means a proxy or gateway received an invalid response from the upstream server. A 503 Service Unavailable means the server itself is down, overloaded or in maintenance, usually temporarily.
What does a 401 vs 403 error mean? 401 Unauthorized means you are not authenticated (not logged in, or credentials failed). 403 Forbidden means you are authenticated but do not have permission to access the resource.
What is the difference between a 301 and a 302 redirect? A 301 is permanent: the resource has moved for good, update your links, and it passes SEO ranking signals. A 302 is temporary: keep using the original URL because it may return.
Is a 200 status code good? Yes. 200 OK is the standard "the request succeeded" response. Other 2xx codes (201 Created, 204 No Content, 206 Partial Content) also indicate success.