CommunitySolidServer / CommunitySolidServer

An open and modular implementation of the Solid specifications

Home Page:https://communitysolidserver.github.io/CommunitySolidServer/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support for Range Headers

jaxoncreed opened this issue · comments

Feature description

When sending a request for a large file with range headers (for example curl --range 0-99 "https://example.pod/video.mov") the pod returns the full download, not the specified range.

Support for the range header would allow audio and video tracks to load more efficiently on web browsers. Safari will also refuse to play any audio or video if it doesn't have the range header (https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html#//apple_ref/doc/uid/TP40006514-SW6).

I thought we already had an issue about this but I can't seem to find it, so maybe it never made it to an actual issue.

The main challenge for this is that this will probably require a change in the DataAccessor interface to indicate the requested range. Feasibility of this will also depend on the type of backend. For example with a SPARQL backend a range might be interpreted differently than using bytes. Could have support for different unit types.