HTTP Response Status Codes List

HTTP status codes provide valuable information about the outcome of requests made to web servers, helping clients and servers communicate effectively and handle various scenarios appropriately. Understanding these status codes is essential for web developers to diagnose and troubleshoot issues, ensuring the smooth functioning of web applications.


HTTP Response Status Codes List by tial wizards
List of HTTP Response Status Codes


HTTP Status Codes Overview

HTTP status codes are crucial for understanding how web servers respond to requests. They are categorized into five groups:

1. Informational (1xx):

These codes are like little notes from the server saying it got the request and is working on it. For example, "100 Continue" means the server got part of the request and says, "Keep going, I'm listening!"

2. Success (2xx):

These codes mean the request was successful, and you got what you asked for. "200 OK" is the most common one. It simply means everything went smoothly, and the server is giving you the requested content.

3. Redirection (3xx):

These codes tell your browser to go somewhere else to get what you want. "301 Moved Permanently" means the page you're looking for has a new address, so your browser should go there instead.

4. Client Error (4xx):

These codes are like gentle reminders that something might be wrong on your end. "404 Not Found" is famous. It's like the server saying, "Oops, can't find what you're looking for!"

5. Server Error (5xx):

These codes mean something went wrong on the server's end. "500 Internal Server Error" is a catch-all for when something unexpected happens on the server, like a glitch.


Remember, these codes help you understand what's happening when you visit a website. They're like a language servers and browsers use to talk to each other and make sure everything runs smoothly.


Let's look at each HTTP status code, from 100 to 500, and provide thorough information on each.


1xx Informational Response:

100 Continue:

The server has received the initial part of the request and informs the client that it should continue with the request or ignore it if it's already completed. This status code is typically used in scenarios where a large request is being sent, and the server wants to confirm that the client should proceed before sending the rest of the request.

101 Switching Protocols:

The server acknowledges the client's upgrade request to switch protocols and is ready to use the specified protocol. This status code is commonly seen during WebSocket connections or when upgrading from HTTP to HTTPS.

102 Processing:

The server has received and is processing the request but has not yet completed it. This status code is useful for long-running processes where the server needs to indicate that it has received the request and is working on it.

103 Early Hints:

This status code is primarily used to return some response headers before the final HTTP message. It allows the server to send headers, such as Link headers, before the final response is available, which can be beneficial for optimizing client rendering.




2xx Success:

200 OK:

The request was successful, and the server returns the requested content. This is the most common status code indicating that everything went as expected.

201 Created:

The request has been fulfilled, and a new resource has been created as a result. This status code is often used after a POST request to indicate that a new resource, such as a new user account or a new document, has been successfully created.

202 Accepted:

The request has been accepted for processing, but the processing has not been completed. This status code is typically used when the request triggers a background task or when the processing time is expected to be lengthy.

203 Non-Authoritative Information:

The server is returning a representation of the target resource from a different source, which may be from a cache or a third-party server. This status code is useful in distributed systems where multiple sources can provide the same content.

204 No Content:

The server successfully processed the request but is not returning any content. This status code is often used in scenarios where the client does not need to be redirected or informed of any specific information after the request is complete.

205 Reset Content:

Indicates that the client should reset the document from which the original request was sent. This status code is primarily used in forms where the server wants the client to clear the form after submission.

206 Partial Content:

The server is delivering only part of the resource due to a range header sent by the client. This status code is commonly used when the client requests only a portion of a large file, such as during video streaming or file downloading.




3xx Redirection:

300 Multiple Choices:

Indicates multiple options for the resource that the client may follow. This status code is typically used when the server can serve multiple versions of the same content, such as in multilingual websites.

301 Moved Permanently:

The requested resource has been permanently moved to a new location, and future requests should use the new URL. This status code is crucial for SEO purposes and for informing search engines that the content has permanently moved.

302 Found:

The requested resource resides temporarily under a different URL. This status code is often used for temporary redirects, but its semantics have been clarified in later versions of HTTP, suggesting the use of 303 or 307 instead, depending on the scenario.

303 See Other:

The server is redirecting the client to a different resource, and the client should use a GET method to retrieve the resource. This status code is often used after a POST request to redirect the client to a newly created resource.

304 Not Modified:

Indicates that the client's cached version of the requested resource is still valid and can be used. This status code is commonly used to reduce bandwidth usage and speed up page loading times by informing the client to use its cached copy.

305 Use Proxy:

The requested resource is only available through a proxy, and the client should use the provided proxy server to access it. This status code is rarely used in practice due to security concerns related to proxy usage.

307 Temporary Redirect:

Similar to 302 Found, this status code indicates a temporary redirect. However, the client should use the same method for future requests. This status code is useful when the client's method, such as POST, should be preserved during the redirection.




4xx Client Errors:

400 Bad Request:

The server cannot process the request due to a client error, such as malformed syntax or invalid request parameters. This is a generic error code used when the server cannot determine a more specific error reason.

401 Unauthorized:

The request requires authentication, and the client needs to provide valid credentials for access. This status code is commonly used when accessing protected resources that require authentication, such as login pages or API endpoints.

402 Payment Required:

Reserved for future use. It's not currently implemented by most servers. The intended purpose is to indicate that payment is required before the client can access the resource.

403 Forbidden:

The server understands the request but refuses to authorize it. This status code is often used when the client doesn't have permission to access the requested resource, such as when trying to access a restricted directory or file.

404 Not Found:

The requested resource could not be found on the server. This is one of the most well-known HTTP status codes, indicating that the URL provided by the client does not correspond to any resource on the server.

405 Method Not Allowed:

The request method used by the client is not supported for the requested resource. This status code is typically returned when the client uses an HTTP method that is not allowed for the specific resource, such as trying to use PUT on a read-only resource.

406 Not Acceptable:

The server cannot generate a response that meets the client's requested content characteristics, such as acceptable media types or languages. This status code is often used when the server cannot provide content that matches the client's Accept header.

407 Proxy Authentication Required:

Similar to 401 Unauthorized, but it specifically indicates that the client needs to authenticate with a proxy server. This status code is rarely used and often indicates misconfigurations or issues with proxy servers.

408 Request Timeout:

The server timed out waiting for the client's request. This status code is typically seen in scenarios where the server expects the client to send data within a certain time frame, but the client fails to do so.

409 Conflict:

Indicates that the request could not be completed due to a conflict with the current state of the resource. This status code is often used in concurrent access scenarios, such as when multiple clients try to modify the same resource simultaneously.

410 Gone:

The requested resource is no longer available, and there is no forwarding address. This status code differs from 404 in that it indicates that the resource used to exist but has been intentionally removed and will not be available again.

411 Length Required:

The server refuses to accept the request without a defined Content-Length header. This status code is typically used when the server requires the client to specify the length of the request body but receives a request without it.

412 Precondition Failed:

The server does not meet one of the preconditions specified by the client in the request. This status code is often used with conditional requests, such as If-Match or If-None-Match headers, where the server checks for certain conditions before processing the request.

413 Payload Too Large:

The server refuses to process the request because the payload size exceeds the maximum limit. This status code is commonly used when clients attempt to upload files that are larger than the server's configured maximum size limit.

414 URI Too Long:

The server refuses to process the request because the URI (Uniform Resource Identifier) is too long. This status code is often encountered when clients send excessively long URLs, which may exceed the server's limitations or cause issues with intermediaries.

415 Unsupported Media Type:

The server refuses to process the request because the payload's media type is not supported. This status code is typically used when the client sends data in a format that the server does not understand or cannot process.

416 Range Not Satisfiable:

The server cannot fulfill the request's Range header, indicating that the specified range is invalid or beyond the resource's size. This status code is often used in scenarios where the client requests a specific portion of a resource that does not exist or is outside the resource's boundaries.

417 Expectation Failed:

The server cannot meet the expectations specified in the Expect request header. This status code is typically used when the server cannot fulfill the client's expectations, such as when the client expects certain behaviors that the server cannot provide.

418 I'm a teapot:

This status code is an April Fools' joke specified in RFC 2324, Hyper Text Coffee Pot Control Protocol. It has no real-world application but serves as an Easter egg for developers.

421 Misdirected Request:

The server is unable to produce a response for this request because it is directed at a server that is not able to produce the response. This status code is typically used in scenarios where a server receives a request intended for another server in the network.

422 Unprocessable Entity:

The server understands the content type of the request entity but cannot process the contained instructions. This status code is often used in RESTful API scenarios to indicate that the request was well-formed but contained semantic errors.

423 Locked:

The requested resource is currently locked, and the client should retry the request at a later time. This status code is commonly used in distributed systems to prevent conflicting updates to resources.

424 Failed Dependency:

The request failed because it depended on another request that failed. This status code is often used in scenarios where a previous request must be fulfilled before the current request can proceed.

426 Upgrade Required:

The server refuses to perform the request using the current protocol, and the client should upgrade to a different protocol. This status code is often used when the server requires the client to use a more secure or advanced protocol, such as upgrading from HTTP to HTTPS.

428 Precondition Required:

The server requires the client to send conditional requests using the If-Match or If-Unmodified-Since headers. This status code is typically used to enforce preconditions for resource modification requests.

429 Too Many Requests:

The client has sent too many requests within a given time frame, and the server refuses to process further requests from the client for a period. This status code is commonly used to mitigate denial-of-service attacks or to enforce rate limiting policies.

431 Request Header Fields Too Large:

The server refuses to process the request because the size of one or more request header fields exceeds the server's limit. This status code is often used when clients send excessively large headers, which may cause issues with server processing or intermediaries.

451 Unavailable For Legal Reasons:

The server refuses to process the request due to legal reasons, such as censorship or government-mandated restrictions. This status code is often used to indicate that a resource is unavailable due to legal constraints, such as copyright infringement or court orders.




5xx Server Errors:

500 Internal Server Error:

A generic error message indicating that the server encountered an unexpected condition that prevented it from fulfilling the request. This is a catch-all status code used when the server encounters an error that is not covered by more specific error codes.

501 Not Implemented:

The server does not support the functionality required to fulfill the request. This status code is often used when the server does not recognize the request method or when the functionality required to process the request is not implemented.

502 Bad Gateway:

The server received an invalid response from an upstream server while attempting to fulfill the request. This status code is commonly seen in reverse proxy setups where the proxy server forwards requests to backend servers, and one of the backend servers returns an invalid response.

503 Service Unavailable:

The server is temporarily unable to handle the request due to maintenance or overload. This status code is commonly used when servers are undergoing maintenance, experiencing high load, or are temporarily unavailable for other reasons.

504 Gateway Timeout:

The server, acting as a gateway or proxy, did not receive a timely response from an upstream server. This status code is often seen in reverse proxy setups where the upstream server takes too long to respond, causing the gateway server to time out.

505 HTTP Version Not Supported:

The server does not support the HTTP protocol version used in the request. This status code is typically used when the client sends a request using an HTTP protocol version that is not supported by the server.

506 Variant Also Negotiates:

The server has an internal configuration error, and the requested variant resource is configured to engage in transparent content negotiation itself, and the server is unwilling to supply a default representation. This status code is rarely used in practice.

507 Insufficient Storage:

The server is unable to store the representation needed to complete the request due to insufficient storage space. This status code is often used in distributed file systems or cloud storage scenarios where the server runs out of space to store additional resources.

508 Loop Detected:

The server detected an infinite loop while processing the request. This status code is often used to prevent infinite redirect loops or other cyclic interactions between servers.

510 Not Extended:

The server requires further extensions to fulfill the request. This status code is used when the server requires additional capabilities or extensions not present in the client's request.

511 Network Authentication Required:

The client needs to authenticate to gain network access. This status code is primarily used by captive portals to force the client to authenticate before accessing the network.



In conclusion, HTTP status codes play a vital role in the communication between clients and servers on the web. By understanding these codes and their meanings, developers can troubleshoot issues more effectively and ensure smooth interactions between different components of web systems.



Next Post Previous Post

Cookies Consent

This website uses cookies to analyze traffic and offer you a better Browsing Experience. By using our website.

Learn More