note right of User: Proxy cacheable Server mapped byte ranges User->UserAgent: http://www.example.com/video.ogv#t=10,20 activate UserAgent note right of UserAgent: No local copy of fragment in buffer, Cannot map fragment to byte ranges end note UserAgent->Proxy: GET /video.ogv HTTP/1.1 \nRange: t:npt=10-20 \n Accept-Range-Redirect: bytes activate Proxy Proxy->OriginServer: GET /video.ogv HTTP/1.1 \nRange: t:npt=10-20 Accept-Range-Redirect: bytes activate OriginServer note right of OriginServer: Server converts the given time range to a byte range, sends an empty reply that refers to the right byte range for the correct time range end note OriginServer->Proxy: HTTP/1.1 307 Temporary Redirect \nLocation: http://www.example.com/video.ogv \nAccept-Ranges: bytes, t, xywh, track, id \nContent-Length: 0 \nContent-Range: t:npt 11.85-21.16/653.791 \nRange-Redirect: 19147-22890 \nVary: Accept-Range-Redirect deactivate OriginServer Proxy->UserAgent: HTTP/1.1 307 Temporary Redirect \nLocation: http://www.example.com/video.ogv \nAccept-Ranges: bytes, t, xywh, track, id \nContent-Length: 0 \nContent-Range: t:npt 11.85-21.16/653.791 \nRange-Redirect: 19147-22890 \nVary: Accept-Range-Redirect deactivate Proxy note right of UserAgent: Proceed to put actual fragment request through as a normal byte range request end note UserAgent->Proxy: GET /video.ogv HTTP/1.1 \nHost: www.example.com \nRange: 19147-22890 activate Proxy Proxy->OriginServer: GET /video.ogv HTTP/1.1 \nHost: www.example.com \nRange: 19147-22890 activate OriginServer note right of OriginServer: Extracts bytes corresponding to range OriginServer->Proxy: HTTP/1.1 206 Partial Content \nAccept-Ranges: bytes, t, xywh, track, id \nContent-Range: bytes 19147-22880/35614993 \nContent-Range: t:npt 11.85-21.16/653.791 deactivate OriginServer Proxy->UserAgent: HTTP/1.1 206 Partial Content \nAccept-Ranges: bytes, t, xywh, track, id \nContent-Range: bytes 19147-22880/35614993 \nContent-Range: t:npt 11.85-21.16/653.791 deactivate Proxy UserAgent->User: Serve the decoded content to the User \nfrom the appropriate time-offset deactivate UserAgent note right of UserAgent: The caching Web proxy has now cached the byte range, since it adhered to the normal byte range request protocol end note