note right of User: URI fragment which is already buffered User->UserAgent: http://www.example.com/video.ogv#t=10,20 activate UserAgent note right of UserAgent Local copy of fragment already in buffer But the resource could have changed on the server, so it needs to send a conditional GET end note UserAgent->Proxy: GET /video.ogv HTTP/1.1 \nIf-Modified-Since: Sat, 01 Aug 2009 09:34:22 GMT \nRange: bytes=19147-22890 activate Proxy Proxy->OriginServer: GET /video.ogv HTTP/1.1 \nIf-Modified-Since: Sat, 01 Aug 2009 09:34:22 GMT \nRange: bytes=19147-22890 activate OriginServer note right of OriginServer: Check if the resource has changed, \nthe resource was not modified OriginServer->Proxy: HTTP/1.1 304 Not Modified \nContent-Range: bytes 19147-22890/35614993 deactivate OriginServer Proxy->UserAgent: HTTP/1.1 304 Not Modified \nContent-Range: bytes 19147-22890/35614993 deactivate Proxy note right of UserAgent Use existing buffer to serve t=10,20 which may well be slightly more (from a seekable entry point) end note UserAgent->UserAgent: Map byte ranges to time-offset UserAgent->User: Serve the decoded content to the User \nfrom the appropriate time-offset