HTTP Status Codes
Every HTTP response code and what it means.
Every HTTP response carries a three-digit status code that tells the client how the request went. The first digit sets the class: 1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error.
Here's the full list you'll actually run into, grouped by class.
1xx — Informational
| Code | Name | Meaning |
|---|---|---|
| 100 | Continue | The server received the request headers; the client should send the body. |
| 101 | Switching Protocols | The server is switching protocols as requested (e.g. to WebSockets). |
| 103 | Early Hints | Preload hints sent before the final response. |
2xx — Success
| Code | Name | Meaning |
|---|---|---|
| 200 | OK | Standard success response. |
| 201 | Created | The request succeeded and a new resource was created. |
| 202 | Accepted | Accepted for processing, but not yet completed. |
| 204 | No Content | Success, but there's no body to return. |
| 206 | Partial Content | Partial response for a range request (e.g. video streaming). |
3xx — Redirection
| Code | Name | Meaning |
|---|---|---|
| 301 | Moved Permanently | The resource has permanently moved; update your links. |
| 302 | Found | Temporary redirect to another URL. |
| 303 | See Other | Fetch the resource with a GET at another URL. |
| 304 | Not Modified | The cached version is still valid; nothing changed. |
| 307 | Temporary Redirect | Temporary redirect that preserves the request method. |
| 308 | Permanent Redirect | Permanent redirect that preserves the request method. |
4xx — Client errors
| Code | Name | Meaning |
|---|---|---|
| 400 | Bad Request | The server can't process the request due to a client error. |
| 401 | Unauthorized | Authentication is required or has failed. |
| 403 | Forbidden | Authenticated, but not allowed to access this resource. |
| 404 | Not Found | The resource doesn't exist. |
| 405 | Method Not Allowed | The HTTP method isn't supported for this resource. |
| 408 | Request Timeout | The client took too long to send the request. |
| 409 | Conflict | The request conflicts with the current state (e.g. a duplicate). |
| 410 | Gone | The resource is permanently gone. |
| 418 | I'm a teapot | An April Fools' joke code — the server refuses to brew coffee. |
| 422 | Unprocessable Entity | Well-formed but semantically invalid (common for validation). |
| 429 | Too Many Requests | You've been rate-limited; slow down. |
5xx — Server errors
| Code | Name | Meaning |
|---|---|---|
| 500 | Internal Server Error | A generic server-side error. |
| 501 | Not Implemented | The server doesn't support the functionality required. |
| 502 | Bad Gateway | A gateway/proxy got an invalid response upstream. |
| 503 | Service Unavailable | The server is overloaded or down for maintenance. |
| 504 | Gateway Timeout | A gateway/proxy timed out waiting upstream. |
FAQ
301 is a permanent redirect (search engines transfer ranking and update their index); 302 is temporary (the original URL keeps its ranking).
Use 401 when authentication is missing or failed, and 403 when the user is authenticated but simply isn't permitted.
Last reviewed 2026-08-20.