- 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