Then in werkzeug it is converted to a header like this:
def to_header(self):
"""Converts the object back into an HTTP header."""
ranges = []
for begin, end in self.ranges:
if end is None:
ranges.append(f"{begin}-" if begin >= 0 else str(begin))
else:
ranges.append(f"{begin}-{end - 1}")
return f"{self.units}={','.join(ranges)}"
For example, request header is 792-1955, request.range is 792-1955, response.begin and response.end are 792-1956, content_range:ContentRange is 792-1955, when converted to response header, it is 792-1954.
I think this is a quart problem, according to werkzeug's documentation, end is not included in the range, so end should not be reduced by one.
I've found a bug about
ContentRange
.This is how it is used in
quart
:Then in
werkzeug
it is converted to a header like this:For example, request header is 792-1955,
request.range
is 792-1955,response.begin
andresponse.end
are 792-1956,content_range:ContentRange
is 792-1955, when converted to response header, it is 792-1954.I think this is a quart problem, according to werkzeug's documentation, end is not included in the range, so end should not be reduced by one.
Environment: