Whenever a client sends an HTTP request, the server returns an appropriate HTTP response. To help interpret the response, the first line of the response includes a three-digit HTTP status code along with a descriptive message. These status codes make it easier to understand the outcome of a request, identify issues, and troubleshoot problems efficiently.

HTTP Status Codes
HTTP status codes are standardized according to internet protocols defined by the Internet Engineering Task Force (IETF). They are grouped into five categories based on the type of response returned by the server.
- 1xx – Informational Message
- 2xx – Success Message
- 3xx – Redirection Message
- 4xx – Error Messages Related to Client
- 5xx – Error Messages Related to Server
Complete List of HTTP Status Codes
The below list includes all standard status codes along with some of the non-standard codes like 420, 444, 449, 499, and 509.
| Status Code | Description | Explanation |
|---|---|---|
| 100 | Continue | The server has received the initial request headers and the client can continue sending the request body. Commonly used for large uploads. |
| 101 | Switching Protocols | The server agrees to switch communication protocols as requested by the client, such as upgrading from HTTP to WebSocket. |
| 102 | Processing | Indicates the server has received the request and is processing it but no response is available yet. Primarily used in WebDAV. |
| 103 | Early Hints | Allows the server to send preliminary response headers early, helping browsers preload resources before the final response arrives. |
| 200 | OK | The request was successful, and the server returned the requested resource or completed the requested action. |
| 201 | Created | The request succeeded and a new resource was successfully created, often after a POST request. |
| 202 | Accepted | The server accepted the request for processing, but the task has not yet been completed. |
| 203 | Non-Authoritative Information | The server successfully processed the request but returned modified or third-party metadata rather than the original response. |
| 204 | No Content | The request succeeded, but there is no content to return. Commonly used for delete or update actions. |
| 205 | Reset Content | The server processed the request and asks the client to reset or refresh its displayed content. |
| 206 | Partial Content | Only part of the requested resource is returned, usually when range headers are used for downloads or streaming. |
| 207 | Multi-Status | Provides multiple status results for different operations in a single response. Used mainly in WebDAV. |
| 208 | Already Reported | Prevents duplicate processing by indicating resources have already been reported in the response. Used in WebDAV. |
| 226 | IM Used | The server completed a request using instance manipulation techniques to optimize transferred data. |
| 300 | Multiple Choices | The request has multiple possible responses, and the client may choose among them. |
| 301 | Moved Permanently | The requested resource has permanently moved to a new URL. Search engines usually update links automatically. |
| 302 | Found | The resource temporarily exists at another URL. Browsers usually redirect automatically. |
| 303 | See Other | Directs the client to retrieve the resource using a GET request at a different URL. |
| 304 | Not Modified | Indicates cached content is still valid, allowing the client to reuse local data instead of downloading again. |
| 305 | Use Proxy (Deprecated) | Previously instructed clients to access the resource through a proxy server. Deprecated for security reasons. |
| 306 | Unused | Reserved status code that is no longer used but retained for compatibility. |
| 307 | Temporary Redirect | Similar to 302, but preserves the original HTTP method and request body during redirection. |
| 308 | Permanent Redirect | Similar to 301, but guarantees the original request method remains unchanged. |
| 400 | Bad Request | The server cannot process the request because of invalid syntax, malformed data, or incorrect parameters. |
| 401 | Unauthorized | Authentication is required before accessing the requested resource. |
| 402 | Payment Required | Reserved for future payment systems and rarely used in practice. |
| 403 | Forbidden | The server understands the request but refuses permission to access the resource. |
| 404 | Not Found | The requested resource could not be found on the server. |
| 405 | Method Not Allowed | The HTTP method used is not supported for the requested resource. |
| 406 | Not Acceptable | The server cannot provide content matching the client’s requested format or criteria. |
| 407 | Proxy Authentication Required | Authentication through a proxy server is required before the request can proceed. |
| 408 | Request Timeout | The server timed out waiting for the client to complete the request. |
| 409 | Conflict | The request conflicts with the current state of the resource, such as editing conflicts. |
| 410 | Gone | The resource has been permanently removed and is no longer available. |
| 411 | Length Required | The server requires a valid Content-Length header before processing the request. |
| 412 | Precondition Failed | One or more request conditions in the headers were not satisfied. |
| 413 | Content Too Large | The request body exceeds the server’s allowed size limit. |
| 414 | URI Too Long | The request URL is longer than the server can process. |
| 415 | Unsupported Media Type | The server does not support the format or media type of the submitted content. |
| 416 | Range Not Satisfiable | The requested data range cannot be delivered because it falls outside the resource limits. |
| 417 | Expectation Failed | The server cannot satisfy the expectations defined in the request headers. |
| 418 | I’m a Teapot | A humorous April Fools’ status code indicating the server refuses to brew coffee because it is a teapot. |
| 420 | Enhance Your Calm | Used by some services to indicate excessive requests or rate limiting. Previously used by Twitter/X. |
| 421 | Misdirected Request | The request was sent to a server unable to generate a proper response. |
| 422 | Unprocessable Content | The request syntax is valid, but semantic errors prevent processing. Common in APIs. |
| 423 | Locked | The requested resource is locked and cannot currently be modified. |
| 424 | Failed Dependency | The request failed because another dependent request also failed. |
| 425 | Too Early | The server refuses to process a request that could be replayed or duplicated. |
| 426 | Upgrade Required | The client must switch to a newer protocol before continuing. |
| 428 | Precondition Required | The server requires conditional requests to avoid accidental conflicts. |
| 429 | Too Many Requests | The client has exceeded the request limit within a certain period. |
| 431 | Request Header Fields Too Large | The request headers exceed the server’s size limits. |
| 444 | No Response | Used by Nginx to close a connection without returning a response. |
| 449 | Retry With | Used by Microsoft servers to request additional information before retrying. |
| 451 | Unavailable For Legal Reasons | Access to the resource is restricted because of legal or governmental requirements. |
| 499 | Client Closed Request | Indicates the client closed the connection before the server completed processing. |
| 500 | Internal Server Error | A generic server-side error indicating something unexpected went wrong. |
| 501 | Not Implemented | The server does not support the requested functionality or HTTP method. |
| 502 | Bad Gateway | The server received an invalid response from an upstream server. |
| 503 | Service Unavailable | The server is temporarily unavailable, often due to maintenance or overload. |
| 504 | Gateway Timeout | The server did not receive a timely response from an upstream server. |
| 505 | HTTP Version Not Supported | The server does not support the HTTP version used in the request. |
| 506 | Variant Also Negotiates | A server configuration issue caused circular content negotiation. |
| 507 | Insufficient Storage | The server does not have enough storage space to complete the request. |
| 508 | Loop Detected | The server detected an infinite loop while processing the request. |
| 509 | Bandwidth Limit Exceeded | Used by some hosting providers when bandwidth usage exceeds limits. |
| 510 | Not Extended | Additional request extensions are required for the server to fulfill the request. |
| 511 | Network Authentication Required | The client must authenticate to gain access to the network, such as a public Wi-Fi login portal. |
Final Words
HTTP status codes play an important role in communication between a client and a server by indicating the result of a request. Whether a request is successful, redirected, blocked, invalid, or affected by a server issue, these status codes help developers and users quickly understand what happened behind the scenes. By learning the meaning of these response codes, you can better analyze web traffic, debug errors, and ensure smooth communication across web applications.





