- 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