416 Range Not Satisfiable HTTP Status Code

Description

HTTP status code 416, "Range Not Satisfiable," indicates that the server cannot fulfill the request for a range of data specified by the client through the Range header. This situation occurs when the requested range is not available within the target URI's data scope, either because the range is outside the size of the target's data or because the specific range is invalid for some other reason.

For example, if a client requests a part of a file that exceeds the file's end, the server will respond with a 416 status code. This tells the client that the requested range cannot be served. In response to a 416 error, the server typically includes a Content-Range header indicating the maximum available data size, helping the client to adjust its request range.

The 416 status code is particularly relevant in scenarios where partial content is requested or transferred, such as resuming downloads or streaming large files. It essentially acts as a mechanism for the server to notify the client about the impracticality or impossibility of serving the requested byte range, encouraging the client to either request a different range or retrieve the entire resource.

Status

HTTP
416 Range Not Satisfiable

Common Causes

Here are several common causes for this error:

  1. Invalid Byte Range: The requested range specified in the Range header is invalid or not formatted correctly. For example, the range might start with a higher value and end with a lower value (e.g., bytes=500-100), which is not logically possible.

  2. Resource Length Unknown: If the server cannot determine the length of the targeted resource (for instance, in cases of dynamically generated content without a defined content length), it may not be able to process the range request accurately.

  3. Range Out of Bounds: The requested byte range is not available within the current content of the resource. This might happen if the client is requesting a portion of the file that exceeds the file's total size. For example, requesting bytes=1000-2000 on a resource that is only 500 bytes in length.

  4. Multiple Ranges Requested, Not Supported: Some servers or specific resources might not support requests for multiple ranges. If the client requests several parts of a resource in one request, and the server or the resource cannot handle that, it might respond with a 416 status code.

  5. Resource Modification: If the resource has been modified and the client's range request no longer matches the current state of the resource, a server might return this status code. This is more likely in dynamic content or resources that change frequently.

  6. Configuration or Programming Errors: Server-side configuration issues or programming errors can also result in a 416 error. This might occur if the server software is misconfigured or if there's an error in the application handling range requests.

  7. Client Error: Sometimes, the issue might stem from the client-side, such as a misconfigured HTTP client or a web browser plugin that incorrectly handles or modifies range requests.

Handling a 416 error usually involves checking the Range header for correctness, ensuring the targeted resource exists and is accessible, and confirming the server supports the requested type of range requests.

Browser Support

The following table will show you the current browser support for the 416 Range Not Satisfiable HTTP status code.

Desktop
Edge Chrome Firefox Opera Safari
YesYesYesYesYes
Tablets / Mobile
Chrome Firefox Opera Safari Samsung Webview
YesYesYesYesYesYes

Last updated by CSSPortal on: 1st April 2024