> For the complete documentation index, see [llms.txt](https://clients.medianova.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://clients.medianova.com/getting-started/concepts/http-response-codes.md).

# HTTP Response Codes

Reference HTTP response status codes and understand how they apply to CDN, origin, caching, redirect, authentication, and error scenarios.

HTTP response status codes indicate the outcome of an HTTP request after it has been processed by a server, proxy, or CDN. They help clients and operators determine whether a request succeeded, requires additional action, or failed.

In a CDN environment, status codes are particularly useful for troubleshooting cache behavior, origin connectivity, redirects, authentication, rate limiting, and other request-processing conditions.

HTTP status codes are grouped into five categories:

| Category              | Description                                                                        |
| --------------------- | ---------------------------------------------------------------------------------- |
| **1xx Informational** | Indicates that the request was received and processing is continuing.              |
| **2xx Success**       | Indicates that the request was successfully received, understood, and processed.   |
| **3xx Redirection**   | Indicates that additional action is required to complete the request.              |
| **4xx Client Error**  | Indicates that the request cannot be processed because of a client-side condition. |
| **5xx Server Error**  | Indicates that the server failed to fulfill a valid request.                       |

### HTTP Status Codes in a CDN

When a request passes through a CDN, the response status code can be generated by the origin server or by an intermediary such as the CDN, depending on how the request is processed.

The status code therefore provides an important starting point when diagnosing delivery issues.

Common CDN scenarios include:

| Status Code                 | Typical CDN Scenario                                                                                                        |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **200 OK**                  | Content is successfully delivered from the CDN cache or origin.                                                             |
| **301 / 302**               | A redirect sends the client to another URL.                                                                                 |
| **304 Not Modified**        | A conditional request confirms that the existing representation can be reused without transferring the response body again. |
| **403 Forbidden**           | Access is denied by the origin or by an applicable security policy.                                                         |
| **429 Too Many Requests**   | A rate limiting policy rejects requests that exceed the configured limit.                                                   |
| **502 Bad Gateway**         | The CDN or another gateway receives an invalid response from an upstream server.                                            |
| **503 Service Unavailable** | The server handling the request is temporarily unable to process it.                                                        |
| **504 Gateway Timeout**     | The CDN or another gateway does not receive a response from an upstream server within the applicable timeout.               |

{% hint style="info" %}
A CDN does not replace HTTP status codes. Depending on the request flow, it can forward a status code received from the origin or generate its own response while processing the request.
{% endhint %}

### Status Code Reference

#### 1xx Informational

1xx status codes are interim responses. They indicate that the request has been received and processing is continuing. A final response follows the informational response.

| Code                        | Meaning                                                                                                                                                                   |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **100 Continue**            | The server has received the initial request headers and indicates that the client can continue sending the request body. Commonly associated with `Expect: 100-continue`. |
| **101 Switching Protocols** | The server agrees to switch protocols according to the client's request.                                                                                                  |
| **102 Processing**          | A WebDAV status indicating that the server has received the request and is still processing it.                                                                           |
| **103 Early Hints**         | Allows a server to send selected response headers before the final response, such as `Link` headers that allow clients to begin preloading resources.                     |

#### 2xx Success

2xx status codes indicate that the request was successfully received and processed.

| Code                                  | Meaning                                                                                                                                      |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **200 OK**                            | The request succeeded. The response content depends on the HTTP method and requested resource.                                               |
| **201 Created**                       | The request succeeded and created a new resource. The response can include a `Location` header identifying the new resource.                 |
| **202 Accepted**                      | The request was accepted for processing, but processing has not necessarily completed.                                                       |
| **203 Non-Authoritative Information** | The request succeeded, but the returned metadata differs from what would have been provided by the origin server.                            |
| **204 No Content**                    | The request succeeded and the server returns no response body.                                                                               |
| **205 Reset Content**                 | The request succeeded and the client is instructed to reset the document view.                                                               |
| **206 Partial Content**               | The server returns part of the requested representation in response to a range request. Commonly used for large-file delivery and streaming. |
| **207 Multi-Status**                  | A WebDAV response that provides status information for multiple resources.                                                                   |
| **208 Already Reported**              | A WebDAV status used to avoid repeatedly reporting members of the same collection.                                                           |

#### 3xx Redirection

3xx status codes indicate that additional action may be required to complete the request.

| Code                       | Meaning                                                                                                                                                                               |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **300 Multiple Choices**   | Multiple representations or destinations are available for the requested resource.                                                                                                    |
| **301 Moved Permanently**  | The resource has been permanently assigned a new URI.                                                                                                                                 |
| **302 Found**              | The resource is temporarily available at a different URI.                                                                                                                             |
| **303 See Other**          | The client is directed to retrieve another resource using a `GET` request.                                                                                                            |
| **304 Not Modified**       | A conditional request indicates that the selected representation has not changed, allowing the client to reuse its existing representation without receiving the response body again. |
| **307 Temporary Redirect** | The resource is temporarily available at another URI. The client must preserve the original HTTP method when following the redirect.                                                  |
| **308 Permanent Redirect** | The resource has permanently moved to another URI. The client must preserve the original HTTP method when following the redirect.                                                     |

#### 4xx Client Error

4xx status codes indicate that the request cannot be fulfilled because of a condition associated with the client request.

| Code                                    | Meaning                                                                                                                          |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| **400 Bad Request**                     | The server cannot process the request because it is malformed or otherwise invalid.                                              |
| **401 Unauthorized**                    | Authentication credentials are required or the supplied credentials are invalid.                                                 |
| **402 Payment Required**                | Reserved for future use.                                                                                                         |
| **403 Forbidden**                       | The server understands the request but refuses to fulfill it.                                                                    |
| **404 Not Found**                       | The requested resource cannot be found.                                                                                          |
| **405 Method Not Allowed**              | The requested HTTP method is not supported for the target resource.                                                              |
| **406 Not Acceptable**                  | The server cannot provide a representation that satisfies the request's content negotiation requirements.                        |
| **407 Proxy Authentication Required**   | Authentication with an intermediary proxy is required.                                                                           |
| **408 Request Timeout**                 | The server did not receive a complete request within the time it was prepared to wait.                                           |
| **409 Conflict**                        | The request conflicts with the current state of the target resource.                                                             |
| **410 Gone**                            | The target resource is no longer available and the condition is expected to be permanent.                                        |
| **411 Length Required**                 | The server requires the request to include a defined content length.                                                             |
| **412 Precondition Failed**             | One or more conditions specified in the request evaluated to false.                                                              |
| **413 Content Too Large**               | The request content exceeds a limit accepted by the server.                                                                      |
| **414 URI Too Long**                    | The request URI exceeds the length the server is willing to process.                                                             |
| **415 Unsupported Media Type**          | The server refuses the request because its content format is not supported.                                                      |
| **416 Range Not Satisfiable**           | The requested byte range cannot be satisfied for the selected representation.                                                    |
| **417 Expectation Failed**              | The server cannot meet the expectation specified in the `Expect` request header.                                                 |
| **418 I'm a teapot**                    | A status code originally defined by RFC 2324 as part of the Hyper Text Coffee Pot Control Protocol.                              |
| **421 Misdirected Request**             | The request was sent to a server that cannot produce a response for the target URI.                                              |
| **422 Unprocessable Content**           | The server understands the request content and syntax but cannot process the supplied instructions.                              |
| **423 Locked**                          | A WebDAV status indicating that the target resource is locked.                                                                   |
| **424 Failed Dependency**               | A WebDAV status indicating that the request failed because another required operation failed.                                    |
| **425 Too Early**                       | The server refuses to process the request because doing so could expose it to a replay attack.                                   |
| **426 Upgrade Required**                | The server refuses to process the request using the current protocol but indicates that the client can use a different protocol. |
| **428 Precondition Required**           | The server requires the request to be conditional, typically to prevent conflicting updates.                                     |
| **429 Too Many Requests**               | The client has sent more requests than permitted within the applicable rate limit.                                               |
| **431 Request Header Fields Too Large** | The server refuses to process the request because the request headers are too large.                                             |
| **451 Unavailable For Legal Reasons**   | Access to the resource is denied because of a legal requirement.                                                                 |

#### Non-Standard NGINX Status Codes

The following codes are not standard HTTP status codes. They can appear in NGINX-based environments and logs and may be relevant when troubleshooting CDN or reverse-proxy request processing.

| Code                                    | Meaning                                                                                                                                                                 |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **444 No Response**                     | NGINX closes the connection without sending an HTTP response to the client.                                                                                             |
| **494 Request Header Too Large**        | NGINX indicates that the request headers exceed the configured limit.                                                                                                   |
| **495 SSL Certificate Error**           | NGINX indicates an error while verifying a client certificate.                                                                                                          |
| **496 SSL Certificate Required**        | NGINX expected a client certificate, but the client did not provide one.                                                                                                |
| **497 HTTP Request Sent to HTTPS Port** | A plain HTTP request was sent to a port configured to accept HTTPS.                                                                                                     |
| **499 Client Closed Request**           | The client closed the connection before NGINX could return the response. This value can appear in access logs but is not returned to the client as an HTTP status code. |

{% hint style="info" %}
Non-standard status codes can depend on the server or proxy implementation. Do not assume that these codes have the same meaning outside the environment that generates them.
{% endhint %}

#### 5xx Server Error

5xx status codes indicate that the server encountered a condition that prevented it from fulfilling the request.

| Code                                    | Meaning                                                                                                      |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| **500 Internal Server Error**           | The server encountered an unexpected condition that prevented it from fulfilling the request.                |
| **501 Not Implemented**                 | The server does not support the functionality required to fulfill the request.                               |
| **502 Bad Gateway**                     | A server acting as a gateway or proxy received an invalid response from an upstream server.                  |
| **503 Service Unavailable**             | The server is temporarily unable to process the request, such as during overload or maintenance.             |
| **504 Gateway Timeout**                 | A server acting as a gateway or proxy 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**         | The selected representation results in a circular content negotiation reference.                             |
| **507 Insufficient Storage**            | A WebDAV status indicating that the server cannot store the representation required to complete the request. |
| **508 Loop Detected**                   | A WebDAV status indicating that the server detected an infinite loop while processing the request.           |
| **510 Not Extended**                    | Additional extensions to the request are required for the server to fulfill it.                              |
| **511 Network Authentication Required** | The client must authenticate to obtain network access, such as through a captive portal.                     |

### References

* **RFC 9110: HTTP Semantics** — HTTP semantics, status codes, methods, fields, authentication, and related protocol concepts.
* **RFC 9111: HTTP Caching** — HTTP caching behavior and cache-related semantics.
* **RFC 6585: Additional HTTP Status Codes** — Defines additional status codes including `428 Precondition Required`, `429 Too Many Requests`, `431 Request Header Fields Too Large`, and `511 Network Authentication Required`.
* **RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)** — Defines WebDAV-specific status codes.
* **RFC 8297: An HTTP Status Code for Indicating Hints** — Defines `103 Early Hints`.
* **RFC 8470: Using Early Data in HTTP** — Defines `425 Too Early` and HTTP early-data handling.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://clients.medianova.com/getting-started/concepts/http-response-codes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
