HTTP Status Codes Reference
HTTP status codes are three-digit integers returned by web servers to describe the result of a client's request. They are grouped into five classes: 1xx (informational), 2xx (success), 3xx (redirects), 4xx (client errors), and 5xx (server errors).
Source: IETF RFC 9110 (HTTP Semantics) and related RFCs. IETF standards are public domain.
| Code | Name | Description |
|---|---|---|
| 100 | Continue 1xx | The server has received the request headers and the client should proceed. |
| 101 | Switching Protocols 1xx | The server agrees to switch protocols as requested by the client (e.g., HTTP to WebSocket). |
| 200 | OK 2xx | Standard success response. The request was successful. |
| 201 | Created 2xx | The request was fulfilled and a new resource was created. |
| 202 | Accepted 2xx | The request has been accepted for processing, but not yet completed. |
| 204 | No Content 2xx | The server fulfilled the request but returns no body. |
| 206 | Partial Content 2xx | The server is delivering only part of the resource (range requests). |
| 301 | Moved Permanently 3xx | The resource has been permanently moved to a new URL. |
| 302 | Found 3xx | The resource is temporarily at a different URL. |
| 304 | Not Modified 3xx | The resource has not changed since the last request (cache valid). |
| 307 | Temporary Redirect 3xx | Temporary redirect; the client must use the same method for the new request. |
| 308 | Permanent Redirect 3xx | Permanent redirect; the client must use the same method for the new request. |
| 400 | Bad Request 4xx | The server cannot process the request due to a client error (e.g., malformed syntax). |
| 401 | Unauthorized 4xx | Authentication is required and has failed or has not been provided. |
| 403 | Forbidden 4xx | The server understood the request but refuses to authorize it. |
| 404 | Not Found 4xx | The requested resource could not be found on this server. |
| 405 | Method Not Allowed 4xx | The HTTP method used is not allowed for the requested resource. |
| 408 | Request Timeout 4xx | The server timed out waiting for the request. |
| 409 | Conflict 4xx | The request conflicts with the current state of the server. |
| 410 | Gone 4xx | The resource has been permanently deleted and will not be available again. |
| 413 | Content Too Large 4xx | The request body is larger than the server is willing to process. |
| 414 | URI Too Long 4xx | The URI provided was too long for the server to process. |
| 415 | Unsupported Media Type 4xx | The media type of the request body is not supported by the server. |
| 422 | Unprocessable Content 4xx | The server understands the content type but the request entity has semantic errors. |
| 429 | Too Many Requests 4xx | The client has sent too many requests in a given time period (rate limiting). |
| 500 | Internal Server Error 5xx | The server encountered an unexpected condition that prevented it from fulfilling the request. |
| 501 | Not Implemented 5xx | The server does not support the functionality required to fulfill the request. |
| 502 | Bad Gateway 5xx | The server, while acting as a gateway, received an invalid response from an upstream server. |
| 503 | Service Unavailable 5xx | The server is not ready to handle the request (overloaded or down for maintenance). |
| 504 | Gateway Timeout 5xx | The server, acting as a gateway, did not receive a response in time from an upstream server. |
2xx codes indicate that the request was successfully received, understood, and accepted. 200 OK is the most common, meaning the request succeeded. 201 Created means a new resource was created as a result of the request.
Both are redirects: 301 (Moved Permanently) tells browsers and search engines that the resource has moved forever - they should update their bookmarks and SEO ranking. 302 (Found) is a temporary redirect - the client should continue to use the original URL for future requests.
A 500 error means the server encountered an unexpected condition that prevented it from fulfilling the request. It is a catch-all for server-side errors. Common causes include unhandled exceptions in application code, database connection failures, and misconfigured servers.
401 Unauthorized means authentication is required but missing or invalid - the user could potentially access the resource after providing valid credentials. 403 Forbidden means the server understands who the user is but has decided they are not allowed to access the resource regardless of credentials.