- From: Silvia Pfeiffer <silviapfeiffer1@gmail.com>
- Date: Wed, 23 Sep 2009 18:46:47 +1000
- To: Raphaël Troncy <Raphael.Troncy@cwi.nl>
- Cc: Conrad Parker <conrad@metadecks.org>, Media Fragment <public-media-fragment@w3.org>, Jack Jansen <Jack.Jansen@cwi.nl>, Yves Lafon <ylafon@w3.org>
2009/9/23 Raphaël Troncy <Raphael.Troncy@cwi.nl>:
>> I think we should be consistent and have the Range request also
>> contain the dimension, like so:
>>
>> Range: <dimension>[':' <unit>] '=' <start time> - <end time>
>
> On one side, this is indeed consistent with the Content-Range counterpart
> header
> On the other side, it is slightly different that the current Range request
> that one can express in bytes, e.g.:
> Range: bytes 1113724-2082711
> so rather:
> Range: <unit> ' ' <start byte> '-' <end byte>
>
> Well, I just realize that there is also the use of '=' versus ' ' that
> differ.
> Let's vote on that today?
OK.
Just to be informed: here are the relevant extracts from RFC2616 (HTTP/1.1):
* Accept-Ranges Header
range-unit = bytes-unit | other-range-unit
bytes-unit = "bytes"
other-range-unit = token
Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges
acceptable-ranges = 1#range-unit | "none"
Example: "Accept-Ranges: bytes"
* Content-Range Header
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
Example: "Content-Range: bytes 21010-47021/47022"
* Range Header
ranges-specifier = byte-ranges-specifier
byte-ranges-specifier = bytes-unit "=" byte-range-set
byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec )
byte-range-spec = first-byte-pos "-" [last-byte-pos]
first-byte-pos = 1*DIGIT
last-byte-pos = 1*DIGIT
suffix-byte-range-spec = "-" suffix-length
suffix-length = 1*DIGIT
Range = "Range" ":" ranges-specifier
Example: "Range: bytes=500-600,601-999"
So, firstly, the "Range" header does indeed use a "=".
Secondly, neither Content-Range nor Range are extensible per spec to
other range units, even though Accept-Ranges is. All the RFC says is
"The only range unit defined by HTTP/1.1 is "bytes". HTTP/1.1
implementations MAY ignore ranges specified using other units." .
However, I remember that Yves mentioned that there are discussions
under way to extend this. I found
http://osdir.com/ml/ietf.http-wg/2008-07/msg00142.html and it seems to
indicate the following change:
Content-Range = "Content-Range" ":" content-range-spec
content-range-spec = byte-content-range-spec / ext-content-range- spec
ext-content-range-spec = other-range-unit SP CHAR*
I think we can extend that to the Range header, too.
This means, we can define what "other-range-unit" means and what CHAR*
means. So, we are actually flexible how to structure the range unit
spec and it would easily cover <dimension>[':' <unit>].
In summary, I don't think there is an issue with using:
Range: <dimension>[':' <unit>] '=' <start time> - <end time>
Best Regards,
Silvia.
Received on Wednesday, 23 September 2009 08:47:48 UTC