4×× - Client Error
416 Requested Range Not Satisfiable
None of the ranges in the request’s Range
header
field1 overlap the current extent of the selected
resource or that the set of ranges requested has been rejected due to
invalid ranges or an excessive request of small or overlapping ranges.
For byte ranges, failing to overlap the current extent means that the
first-byte-pos of all of the byte-range-spec values were greater than
the current length of the selected representation. When this status code
is generated in response to a byte-range request, the sender SHOULD
generate a Content-Range
header field specifying the current length of
the selected representation2.
For example:
HTTP/1.1 416 Range Not Satisfiable Date: Fri, 20 Jan 2012 15:41:54
GMT Content-Range: bytes */47022
Note: Because servers are free to ignore Range, many implementations will simply respond with the entire selected representation in a 200 OK response. That is partly because most clients are prepared to receive a 200 OK to complete the task (albeit less efficiently) and partly because clients might not stop making an invalid partial request until they have received a complete representation. Thus, clients cannot depend on receiving a 416 Range Not Satisfiable response even when it is most appropriate.
- 1
Range
RFC7233 Section 3.1 - 2
Content-Range
RFC7233 Section 4.2 - Source: RFC7233 Section 4.4
416 Code References
- Rails HTTP Status Symbol:
:requested_range_not_satisfiable
- Go HTTP Status Constant:
http.StatusRequestedRangeNotSatisfiable
- Symfony HTTP Status Constant:
Response::HTTP_REQUESTED_RANGE_NOT_SATISFIABLE
- Python2 HTTP Status Constant:
httplib.REQUESTED_RANGE_NOT_SATISFIABLE
- Python3+ HTTP Status Constant:
http.client.REQUESTED_RANGE_NOT_SATISFIABLE
- Python3.5+ HTTP Status Constant:
http.HTTPStatus.REQUESTED_RANGE_NOT_SATISFIABLE