- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Mon, 30 Mar 2009 16:46:53 +0200
- To: HTTP Working Group <ietf-http-wg@w3.org>
- CC: Mark Nottingham <mnot@mnot.net>
Mark Nottingham wrote: > > Issue 85 <http://tools.ietf.org/wg/httpbis/trac/ticket/85> asks us to > clarify what content-range unit extensions (i.e., things other than > "bytes") are, or get rid of them. > > Julian has pointed out that there's at least one other one existent > today (although not formally specified); see > <http://msdn.microsoft.com/en-us/magazine/cc301869.aspx>. > > I think the right thing to do here is to document how they're to be > extended (most likely in section 3 of p5). This has been done in draft 06, but there are a few TODOs left... > Straw-man proposal (not exact text): > > Range-unit extensions SHOULD NOT be specific to any format. This is > because caches are allowed to combine ranges from multiple responses, > and to serve range requests out of cache; format-specific range units > make it less likely that implementations will be able to do this > (although there may be exceptions, hence the SHOULD NOT). An > informational reference to p6 to highlight this to potential extenders > would be a good idea. I think that still needs to be done. > We'll also need to determine what the requirements for registration are > (standards-track?), and set up the registry. For now we haven't defined a registry (I think the idea was to wait for the first use case to come up and then discuss again). > Furthermore, Section 6.2 - the BNF says: > >> Content-Range = "Content-Range" ":" content-range-spec >> >> content-range-spec = byte-content-range-spec >> byte-content-range-spec = bytes-unit SP >> byte-range-resp-spec "/" >> ( instance-length | "*" ) >> >> byte-range-resp-spec = (first-byte-pos "-" last-byte-pos) >> | "*" >> instance-length = 1*DIGIT > > This does not allow other range units to be used. If we keep them, this > BNF needs to be changed to something like: > > Content-Range = "Content-Range" ":" content-range-spec > > content-range-spec = byte-content-range-spec / ext-content-range-spec > byte-content-range-spec = bytes-unit SP > byte-range-resp-spec "/" > ( instance-length | "*" ) > > byte-range-resp-spec = (first-byte-pos "-" last-byte-pos) > | "*" > instance-length = 1*DIGIT > ext-content-range-spec = other-range-unit SP CHAR* This has been done. > Note that section 6.2 places several requirements on the use of the > Content-Range header which assume that byte-ranges are in use; we'd need > to adjust the language appropriately. > > Beyond that, I can't see what else we'd need to specify; everything else > is unit-specific. > > > Thoughts? Leftovers: - We currently do not allow the syntax Microsoft is using for row ranges in Exchange (<http://msdn.microsoft.com/en-us/library/aa123634(EXCHG.65).aspx>); should this be tracked as an open issue, or are we in agreement this stays invalid? (feedback from MS would be useful here) - I found it non-intuitive that multipart/byteranges works for other range units as well, and opened a ticket as a reminder (<http://trac.tools.ietf.org/wg/httpbis/trac/ticket/150>) - Finally, in <http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p5-range-06.html#rfc.section.5.4.2>, we have: Range = "Range" ":" OWS Range-v Range-v = byte-ranges-specifier / other-ranges-specifier other-ranges-specifier = 1*CHAR Shouldn't other-ranges-specifier be something like: other-ranges-specifier = other-range-unit "=" 1*CHAR ...so that a recipient can parse the unit name out of the header in a generic way? (unless I'm missing something obvious, this should be tracked as a separate issue) Best regards, Julian
Received on Monday, 30 March 2009 14:47:40 UTC