- From: Yves Lafon <ylafon@w3.org>
- Date: Tue, 5 Aug 2008 13:27:49 -0400 (EDT)
- To: Julian Reschke <julian.reschke@gmx.de>
- Cc: Mark Nottingham <mnot@mnot.net>, HTTP Working Group <ietf-http-wg@w3.org>
On Tue, 5 Aug 2008, Julian Reschke wrote:
> Mark Nottingham wrote:
>> ...
>> 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.
>> ...
>
> Playing the devil's advocate: is there *any* range unit other than "bytes" we
> can think of that is indeed independent of formats? Right now, I can't think
> of any.
The text proposed by Mark uses SHOULD NOT, not MUST NOT. In some case, it
might be ok to use a format specific range unit, like 'character' (for
text content in multi/variable-bytes encodings), or 'frames' for video
content. I am not saying that those are good examples, just that it may
happen.
>> We'll also need to determine what the requirements for registration are
>> (standards-track?), and set up the registry.
>> ...
>
> That's quite some effort for something where we're not sure whether it's
> going to be used. Should we consider delaying the registry until later?
Yes, it can probably wait, but if it's a low hanging fruit to add another
small registry...
>> 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:
Well, is it forbidden to ask servers to give back byte-ranges that a cache
can... cache ? What is transported is bytes, so requesting the 10 first
characters of an utf-8 document and receiving 12 bytes using a
Content-Range in bytes might help caches to DTRT, so I am not sure that
the proposed BNF change is desirable (as "exotic" Content-Ranges won't be
cached for sure).
>> 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*
>
> +1
>
> I'm not totally sure we need to fix this for Microsoft's use case (which uses
> "=" instead of SP). It seems to use SEARCH (can somebody contact the author
> of that spec ... ;-), while "Content-Range" seems to apply only to GET. Or
> doesn't it?
>
>
>> 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?
>
> My proposal would be to just fix the grammar in 6.2, and restructure 6.2 so
> that the "bytes" specific stuff ends up in a subsection 6.2.1, and we add a
> 6.2.2 talking about extensions.
>
> BR, Julian
>
>
--
Baroula que barouleras, au tiéu toujou t'entourneras.
~~Yves
Received on Tuesday, 5 August 2008 17:28:24 UTC