- From: Dave Kristol <dmk@research.bell-labs.com>
- Date: Fri, 24 Jul 1998 11:24:33 -0400 (EDT)
- To: http-wg@cuckoo.hpl.hp.com, jg@w3.org
I propose here corrective wording for open issue RANGEDELIM (described
in <http://www.ics.uci.edu/pub/ietf/http/hypermail/1998q2/0141.html>).
RFC 2046 defines multipart messages. In section 5.1.1, it says,
The boundary delimiter MUST occur at the beginning of a line, i.e.,
following a CRLF, and the initial CRLF is considered to be attached
to the boundary delimiter line rather than part of the preceding
part....
Now, HTTP introduces an interesting ambiguity, because the first line
of an entity body could well be considered the beginning of a line, and
it follows a CRLF. However, since we must ignore the CRLF that
separates the headers from the body, the body does not really begin
with a CRLF. So by my reading of RFC 2046, an HTTP multipart entity
would have to include an extra CRLF preceding the boundary. I have
amended Section 19.2 of the HTTP spec. accordingly, along with the
example.
Dave Kristol
19.2 Internet Media Type multipart/byteranges
When an HTTP 206 (Partial Content) response message includes the
content of multiple ranges (a response to a request for multiple
non-overlapping ranges), these are transmitted as a multipart
message-body (RFC 2046). The media type for this purpose is called
"multipart/byteranges".
The multipart/byteranges media type includes two or more parts, each
with its own Content-Type and Content-Range fields. The required
boundary parameter specifies the boundary string used to separate each
body-part.
Media Type name: multipart
Media subtype name: byteranges
Required parameters: boundary
Optional parameters: none
Encoding considerations: only "7bit", "8bit", or "binary" are
permitted
Security considerations: none
For example:
HTTP/1.1 206 Partial Content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES
[Note: two CRLF's above. Second one is new. :-)]
--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 500-999/8000
...the first range...
--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 7000-7999/8000
...the second range
--THIS_STRING_SEPARATES--
Cautions:
1) Although RFC 2046 mandates that a CRLF precede each boundary, some
existing implementations omit the mandated CRLF that precedes the
first boundary in the body.
2) Although RFC 2046 permits the boundary string to be quoted, some
existing implementations handle a quoted boundary string incorrectly.
19.2.1 Multipart/x-byteranges
...
Note to Jim Gettys: need to add reference to RFC 2046:
Freed, N., and N. Borenstein. "Multipurpose Internet Mail
Extensions (MIME) Part Two: Format of Internet Message Bodies." RFC
2046, Innosoft, First Virtual, November 1996.
Received on Friday, 24 July 1998 08:28:56 UTC