- From: Sandro Hawke <sandro@w3.org>
- Date: Mon, 15 Sep 2014 21:13:07 -0400
- To: HTTP Working Group <ietf-http-wg@w3.org>
Earlier today the LDP Working Group discussed the matter of whether we could use range headers instead of separate page URIs. Use of Range headers was suggested on this list recently. Our conclusion was still "no", for the following reasons. Please let us know if you see a good solution to any/all of them: 1. We don't know how the server would initiate use of Range. With our current separate-page design, the server can do a 303 redirect to the first page if it determines the representation of the entire resource is too big. The question here is what to do when the client didn't anticipate this possibility. True, the 303 isn't a great solution either, since unprepared clients might not handle it well either. Perhaps one should give a 4xx or 5xx when the client asks for a giant resource without a range header...? But there's no "representation too big" code defined. 2. We don't know how we could do safe changes. With our current design, it's possible for the resource to change while paging is happening, and the client ends up with a representation whose inaccuracy is bounded by the extent of the change. The data is thus still usually perfectly usable. (If such a change is not acceptable, the client can of course detect the change using etags and restart.) This bounded inaccuracy a simple and practical concept with RDF (in a way it isn't with arbitrary byte strings). Just using Range, a deletion would often result in data unrelated to the change being dropped from what the client sees. I suppose perhaps one could use some kind of tombstones to avoid this problem, not closing in gaps from deletion. Basically, a client might ask for triples 0-9 and only get 3 triples because the others were deleted? Does that make sense with Range? Is it okay to not have the elements be contiguous? 3. Many of our usual RDF data systems don't support retrieval of ranges by integer sequence numbers. While some database systems have an internal integer row number in every table that could be used for Range, many others do not, and we don't know of a straightforward and appropriate way to add it. 4. Finally, there was some question as to whether the Web infrastructure has any useful support for non-byte ranges. This is perhaps not an objection, but it came up during the discussion, and we'd be interested in any data people have on this. Bottom line is we still think just using rel=first/last/next/prev, among distinct resources, is a pretty reasonable design. And if we're doing that, it'd be nice to have 2nn Contents-of-Related. -- Sandro
Received on Tuesday, 16 September 2014 01:13:13 UTC