Handling HTML5 Video for iOS and Safari clients
info+varnish at shee.org
info+varnish at shee.org
Fri Sep 8 12:55:58 UTC 2017
Am 07.09.2017 um 17:35 schrieb Dridi Boukelmoune <dridi at varni.sh>:
> It might be a known bug when browsers ask for multiple ranges in a
> single request, Varnish may serve the first one, disregard the rest
> and think it is done, so that leaves the browser hanging waiting for
> the rest of the response.
Thanks to pointing to this direction. Looking into it I see following (trimmed):
Request 1
ReqMethod GET
ReqURL /test.mp4
ReqHeader range: bytes=0-1
VCL_call HIT
RespStatus 200
RespReason OK
RespHeader Content-Length: 7081786
VCL_return deliver
RespHeader Accept-Ranges: bytes
RespHeader Content-Range: bytes 0-1/7081786
RespStatus 206
RespReason Partial Content
RespUnset Content-Length: 7081786
RespHeader Content-Length: 2
Request 2
ReqMethod GET
ReqURL /test.mp4
ReqHeader range: bytes=65509-7081785
VCL_call HIT
RespStatus 200
RespReason OK
RespHeader Content-Length: 7081786
VCL_return deliver
RespHeader Accept-Ranges: bytes
RespHeader Content-Range: bytes 65509-7081785/7081786
RespStatus 206
RespReason Partial Content
RespUnset Content-Length: 7081786
RespHeader Content-Length: 7016277
Seems to be mapped correctly, one range in one request. Also the response seems to be "valid" (adapted Content-Length).
> I think it you can work around that in VCL by detecting when you have
> more than one range and return a 416 response.
It seems to be related to the range handling in varnish, but the problem is not clearly right now.
Any other suggestions would be greatly appreciated.
--
Leon
More information about the varnish-misc
mailing list