Every time you visit a website or make an API request, your browser or client communicates with a server — and the server responds with a status code. These HTTP response codes are three-digit numbers that indicate whether a request was successful, redirected, failed, or encountered a server issue.
To make them easier to understand, HTTP codes are grouped by their first digit. Each group represents a different category of response. Let’s break them down.
1xx — Informational Responses
These codes mean that the request was received and is still being processed. They are rarely seen by end users but are used internally between servers.
| Code | Message | Description |
|---|---|---|
| 100 | Continue | The server has received the request headers and the client should proceed to send the request body. |
| 101 | Switching Protocols | The server is switching to a different protocol as requested by the client. |
| 102 | Processing | The server has received and is processing the request, but no response is available yet. |
| 103 | Early Hints | Used to return some response headers before the final response. |
2xx — Success Responses
These indicate that the request was successfully received, understood, and processed.
| Code | Message | Description |
|---|---|---|
| 200 | OK | The request succeeded. |
| 201 | Created | The request succeeded and a new resource was created. |
| 202 | Accepted | The request has been accepted for processing, but not completed yet. |
| 203 | Non-Authoritative Information | The returned information may be from a third-party source. |
| 204 | No Content | The server successfully processed the request but returns no content. |
| 205 | Reset Content | The client should reset the document view. |
| 206 | Partial Content | The server is delivering only part of the resource due to a range header. |
| 207 | Multi-Status | Provides multiple status codes for different parts of a request. |
| 208 | Already Reported | The resource has already been reported in a previous response. |
| 226 | IM Used | The server has fulfilled a GET request using instance manipulations. |
3xx — Redirection Messages
These tell the client that further action is needed to complete the request, usually involving a redirect to another URL.
| Code | Message | Description |
|---|---|---|
| 300 | Multiple Choices | Multiple options for the requested resource. |
| 301 | Moved Permanently | The resource has been moved to a new permanent URL. |
| 302 | Found | The resource is temporarily located elsewhere. |
| 303 | See Other | Directs the client to retrieve the resource from another URI using GET. |
| 304 | Not Modified | The resource has not changed since the last request. |
| 305 | Use Proxy | The resource must be accessed through a proxy. (Deprecated) |
| 307 | Temporary Redirect | The resource is temporarily under another URI. |
| 308 | Permanent Redirect | The resource has been permanently moved to another URI. |
4xx — Client Error Responses
These occur when the client made an error — for example, sending a bad request or trying to access something forbidden.
| Code | Message | Description |
|---|---|---|
| 400 | Bad Request | The server couldn’t understand the request. |
| 401 | Unauthorized | Authentication is required or failed. |
| 402 | Payment Required | Reserved for future use (often related to payment systems). |
| 403 | Forbidden | The client does not have access rights to the content. |
| 404 | Not Found | The requested resource could not be found. |
| 405 | Method Not Allowed | The HTTP method is not allowed for the requested resource. |
| 406 | Not Acceptable | The requested format is not supported by the server. |
| 407 | Proxy Authentication Required | Authentication is required by a proxy server. |
| 408 | Request Timeout | The server timed out waiting for the request. |
| 409 | Conflict | The request conflicts with the current state of the resource. |
| 410 | Gone | The resource is permanently removed. |
| 411 | Length Required | The request did not specify a content length. |
| 412 | Precondition Failed | One or more request conditions were not met. |
| 413 | Payload Too Large | The request body is too large. |
| 414 | URI Too Long | The URI is too long for the server to process. |
| 415 | Unsupported Media Type | The request’s media type is not supported. |
| 416 | Range Not Satisfiable | The requested range cannot be fulfilled. |
| 417 | Expectation Failed | The server cannot meet the requirements of the Expect header. |
| 418 | I’m a Teapot | A playful error from an April Fools’ joke in RFC 2324. |
| 421 | Misdirected Request | The request was sent to a server that can’t produce a response. |
| 422 | Unprocessable Entity | The server understands the content but cannot process it. |
| 423 | Locked | The resource is locked. |
| 424 | Failed Dependency | The request failed because of a previous failure. |
| 425 | Too Early | The server is unwilling to risk processing a premature request. |
| 426 | Upgrade Required | The client should switch to a different protocol. |
| 428 | Precondition Required | The server requires the request to be conditional. |
| 429 | Too Many Requests | The user has sent too many requests in a given time. |
| 431 | Request Header Fields Too Large | The header fields are too large. |
| 451 | Unavailable For Legal Reasons | The resource is restricted for legal reasons. |
5xx — Server Error Responses
These indicate that the server failed to fulfill a valid request, often due to internal issues.
| Code | Message | Description |
|---|---|---|
| 500 | Internal Server Error | A general server error occurred. |
| 501 | Not Implemented | The server doesn’t support the requested functionality. |
| 502 | Bad Gateway | The server received an invalid response from another server. |
| 503 | Service Unavailable | The server is temporarily overloaded or down for maintenance. |
| 504 | Gateway Timeout | The server did not receive a timely response from another server. |
| 505 | HTTP Version Not Supported | The server doesn’t support the HTTP version used in the request. |
| 506 | Variant Also Negotiates | Content negotiation resulted in a circular reference. |
| 507 | Insufficient Storage | The server cannot store the representation needed. |
| 508 | Loop Detected | The server detected an infinite loop while processing a request. |
| 510 | Not Extended | Further extensions to the request are required. |
| 511 | Network Authentication Required | The client needs to authenticate to gain network access. |
Final Thoughts
Understanding grouped HTTP status codes helps developers and site owners diagnose problems faster. Whether you’re debugging an API or optimizing a website, knowing what these numbers mean saves valuable time.
To explore the official specifications, visit the IANA HTTP Status Code Registry.