| draft-ietf-httpbis-p5-range-24.txt | draft-ietf-httpbis-p5-range-25.txt | |||
|---|---|---|---|---|
| HTTPbis Working Group R. Fielding, Ed. | HTTPbis Working Group R. Fielding, Ed. | |||
| Internet-Draft Adobe | Internet-Draft Adobe | |||
| Obsoletes: 2616 (if approved) Y. Lafon, Ed. | Obsoletes: 2616 (if approved) Y. Lafon, Ed. | |||
| Intended status: Standards Track W3C | Intended status: Standards Track W3C | |||
| Expires: March 29, 2014 J. Reschke, Ed. | Expires: May 21, 2014 J. Reschke, Ed. | |||
| greenbytes | greenbytes | |||
| September 25, 2013 | November 17, 2013 | |||
| Hypertext Transfer Protocol (HTTP/1.1): Range Requests | Hypertext Transfer Protocol (HTTP/1.1): Range Requests | |||
| draft-ietf-httpbis-p5-range-24 | draft-ietf-httpbis-p5-range-25 | |||
| Abstract | Abstract | |||
| The Hypertext Transfer Protocol (HTTP) is an application-level | The Hypertext Transfer Protocol (HTTP) is an application-level | |||
| protocol for distributed, collaborative, hypertext information | protocol for distributed, collaborative, hypertext information | |||
| systems. This document defines range requests and the rules for | systems. This document defines range requests and the rules for | |||
| constructing and combining responses to those requests. | constructing and combining responses to those requests. | |||
| Editorial Note (To be removed by RFC Editor) | Editorial Note (To be removed by RFC Editor) | |||
| Discussion of this draft takes place on the HTTPBIS working group | Discussion of this draft takes place on the HTTPBIS working group | |||
| mailing list (ietf-http-wg@w3.org), which is archived at | mailing list (ietf-http-wg@w3.org), which is archived at | |||
| <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | |||
| The current issues list is at | The current issues list is at | |||
| <http://tools.ietf.org/wg/httpbis/trac/report/3> and related | <http://tools.ietf.org/wg/httpbis/trac/report/3> and related | |||
| documents (including fancy diffs) can be found at | documents (including fancy diffs) can be found at | |||
| <http://tools.ietf.org/wg/httpbis/>. | <http://tools.ietf.org/wg/httpbis/>. | |||
| The changes in this draft are summarized in Appendix E.5. | The changes in this draft are summarized in Appendix E.1. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on March 29, 2014. | This Internet-Draft will expire on May 21, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 3, line 28 | skipping to change at page 3, line 28 | |||
| 4.1. 206 Partial Content . . . . . . . . . . . . . . . . . . . 10 | 4.1. 206 Partial Content . . . . . . . . . . . . . . . . . . . 10 | |||
| 4.2. Content-Range . . . . . . . . . . . . . . . . . . . . . . 12 | 4.2. Content-Range . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 4.3. Combining Ranges . . . . . . . . . . . . . . . . . . . . . 14 | 4.3. Combining Ranges . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 4.4. 416 Range Not Satisfiable . . . . . . . . . . . . . . . . 15 | 4.4. 416 Range Not Satisfiable . . . . . . . . . . . . . . . . 15 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.1. Range Unit Registry . . . . . . . . . . . . . . . . . . . 15 | 5.1. Range Unit Registry . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.1.1. Procedure . . . . . . . . . . . . . . . . . . . . . . 15 | 5.1.1. Procedure . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.1.2. Registrations . . . . . . . . . . . . . . . . . . . . 16 | 5.1.2. Registrations . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.2. Status Code Registration . . . . . . . . . . . . . . . . . 16 | 5.2. Status Code Registration . . . . . . . . . . . . . . . . . 16 | |||
| 5.3. Header Field Registration . . . . . . . . . . . . . . . . 16 | 5.3. Header Field Registration . . . . . . . . . . . . . . . . 16 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 5.4. Internet Media Type Registration . . . . . . . . . . . . . 17 | |||
| 6.1. Denial of Service Attacks using Range . . . . . . . . . . 17 | 5.4.1. Internet Media Type multipart/byteranges . . . . . . . 17 | |||
| 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 6.1. Denial of Service Attacks using Range . . . . . . . . . . 18 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 17 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 18 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| Appendix A. Internet Media Type multipart/byteranges . . . . . . 18 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 18 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 19 | ||||
| Appendix A. Internet Media Type multipart/byteranges . . . . . . 19 | ||||
| Appendix B. Changes from RFC 2616 . . . . . . . . . . . . . . . . 20 | Appendix B. Changes from RFC 2616 . . . . . . . . . . . . . . . . 20 | |||
| Appendix C. Imported ABNF . . . . . . . . . . . . . . . . . . . . 21 | Appendix C. Imported ABNF . . . . . . . . . . . . . . . . . . . . 21 | |||
| Appendix D. Collected ABNF . . . . . . . . . . . . . . . . . . . 21 | Appendix D. Collected ABNF . . . . . . . . . . . . . . . . . . . 21 | |||
| Appendix E. Change Log (to be removed by RFC Editor before | Appendix E. Change Log (to be removed by RFC Editor before | |||
| publication) . . . . . . . . . . . . . . . . . . . . 23 | publication) . . . . . . . . . . . . . . . . . . . . 23 | |||
| E.1. Since draft-ietf-httpbis-p5-range-19 . . . . . . . . . . . 23 | E.1. Since draft-ietf-httpbis-p5-range-24 . . . . . . . . . . . 23 | |||
| E.2. Since draft-ietf-httpbis-p5-range-20 . . . . . . . . . . . 23 | Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| E.3. Since draft-ietf-httpbis-p5-range-21 . . . . . . . . . . . 23 | ||||
| E.4. Since draft-ietf-httpbis-p5-range-22 . . . . . . . . . . . 24 | ||||
| E.5. Since draft-ietf-httpbis-p5-range-23 . . . . . . . . . . . 24 | ||||
| Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | ||||
| 1. Introduction | 1. Introduction | |||
| Hypertext Transfer Protocol (HTTP) clients often encounter | Hypertext Transfer Protocol (HTTP) clients often encounter | |||
| interrupted data transfers as a result of canceled requests or | interrupted data transfers as a result of canceled requests or | |||
| dropped connections. When a client has stored a partial | dropped connections. When a client has stored a partial | |||
| representation, it is desirable to request the remainder of that | representation, it is desirable to request the remainder of that | |||
| representation in a subsequent request rather than transfer the | representation in a subsequent request rather than transfer the | |||
| entire representation. Likewise, devices with limited local storage | entire representation. Likewise, devices with limited local storage | |||
| might benefit from being able to request only a subset of a larger | might benefit from being able to request only a subset of a larger | |||
| skipping to change at page 6, line 45 | skipping to change at page 6, line 45 | |||
| bytes=500-700,601-999 | bytes=500-700,601-999 | |||
| If a valid byte-range-set includes at least one byte-range-spec with | If a valid byte-range-set includes at least one byte-range-spec with | |||
| a first-byte-pos that is less than the current length of the | a first-byte-pos that is less than the current length of the | |||
| representation, or at least one suffix-byte-range-spec with a non- | representation, or at least one suffix-byte-range-spec with a non- | |||
| zero suffix-length, then the byte-range-set is satisfiable. | zero suffix-length, then the byte-range-set is satisfiable. | |||
| Otherwise, the byte-range-set is unsatisfiable. | Otherwise, the byte-range-set is unsatisfiable. | |||
| In the byte range syntax, first-byte-pos, last-byte-pos, and suffix- | In the byte range syntax, first-byte-pos, last-byte-pos, and suffix- | |||
| length are expressed as decimal number of octets. Since there is no | length are expressed as decimal number of octets. Since there is no | |||
| predefined limit to the length of a payload, recipients ought to | predefined limit to the length of a payload, recipients MUST | |||
| anticipate potentially large decimal numerals and prevent parsing | anticipate potentially large decimal numerals and prevent parsing | |||
| errors due to integer conversion overflows. | errors due to integer conversion overflows. | |||
| 2.2. Other Range Units | 2.2. Other Range Units | |||
| Range units are intended to be extensible. New range units ought to | Range units are intended to be extensible. New range units ought to | |||
| be registered with IANA, as defined in Section 5.1. | be registered with IANA, as defined in Section 5.1. | |||
| other-range-unit = token | other-range-unit = token | |||
| skipping to change at page 7, line 30 | skipping to change at page 7, line 30 | |||
| An origin server that supports byte-range requests for a given target | An origin server that supports byte-range requests for a given target | |||
| resource MAY send | resource MAY send | |||
| Accept-Ranges: bytes | Accept-Ranges: bytes | |||
| to indicate what range units are supported. A client MAY generate | to indicate what range units are supported. A client MAY generate | |||
| range requests without having received this header field for the | range requests without having received this header field for the | |||
| resource involved. Range units are defined in Section 2. | resource involved. Range units are defined in Section 2. | |||
| A server that does not support any kind of range request for the | A server that does not support any kind of range request for the | |||
| target resource resource MAY send | target resource MAY send | |||
| Accept-Ranges: none | Accept-Ranges: none | |||
| to advise the client not to attempt a range request. | to advise the client not to attempt a range request. | |||
| 3. Range Requests | 3. Range Requests | |||
| 3.1. Range | 3.1. Range | |||
| The "Range" header field on a GET request modifies the method | The "Range" header field on a GET request modifies the method | |||
| skipping to change at page 11, line 24 | skipping to change at page 11, line 24 | |||
| ...the first range... | ...the first range... | |||
| --THIS_STRING_SEPARATES | --THIS_STRING_SEPARATES | |||
| Content-Type: application/pdf | Content-Type: application/pdf | |||
| Content-Range: bytes 7000-7999/8000 | Content-Range: bytes 7000-7999/8000 | |||
| ...the second range | ...the second range | |||
| --THIS_STRING_SEPARATES-- | --THIS_STRING_SEPARATES-- | |||
| When multiple ranges are requested, a server MAY coalesce any of the | When multiple ranges are requested, a server MAY coalesce any of the | |||
| ranges that overlap or that are separated by a gap that is smaller | ranges that overlap, or that are separated by a gap that is smaller | |||
| than the overhead of sending multiple parts, regardless of the order | than the overhead of sending multiple parts, regardless of the order | |||
| in which the corresponding byte-range-spec appeared in the received | in which the corresponding byte-range-spec appeared in the received | |||
| Range header field. Since the typical overhead between parts of a | Range header field. Since the typical overhead between parts of a | |||
| multipart/byteranges payload is around 80 bytes, depending on the | multipart/byteranges payload is around 80 bytes, depending on the | |||
| selected representation's media type and the chosen boundary | selected representation's media type and the chosen boundary | |||
| parameter length, it can be less efficient to transfer many small | parameter length, it can be less efficient to transfer many small | |||
| disjoint parts than it is to transfer the entire selected | disjoint parts than it is to transfer the entire selected | |||
| representation. | representation. | |||
| A server MUST NOT generate a multipart response to a request for a | A server MUST NOT generate a multipart response to a request for a | |||
| skipping to change at page 12, line 19 | skipping to change at page 12, line 19 | |||
| Vary. | Vary. | |||
| If a 206 is generated in response to a request with an If-Range | If a 206 is generated in response to a request with an If-Range | |||
| header field, the sender SHOULD NOT generate other representation | header field, the sender SHOULD NOT generate other representation | |||
| header fields beyond those required above, because the client is | header fields beyond those required above, because the client is | |||
| understood to already have a prior response containing those header | understood to already have a prior response containing those header | |||
| fields. Otherwise, the sender MUST generate all of the | fields. Otherwise, the sender MUST generate all of the | |||
| representation header fields that would have been sent in a 200 (OK) | representation header fields that would have been sent in a 200 (OK) | |||
| response to the same request. | response to the same request. | |||
| A 206 response is cacheable unless otherwise indicated by explicit | A 206 response is cacheable by default; i.e., unless otherwise | |||
| cache controls (see Section 4.2.2 of [Part6]). | indicated by explicit cache controls (see Section 4.2.2 of [Part6]). | |||
| 4.2. Content-Range | 4.2. Content-Range | |||
| The "Content-Range" header field is sent in a single part 206 | The "Content-Range" header field is sent in a single part 206 | |||
| (Partial Content) response to indicate the partial range of the | (Partial Content) response to indicate the partial range of the | |||
| selected representation enclosed as the message payload, sent in each | selected representation enclosed as the message payload, sent in each | |||
| part of a multipart 206 response to indicate the range enclosed | part of a multipart 206 response to indicate the range enclosed | |||
| within each body part, and sent in 416 (Range Not Satisfiable) | within each body part, and sent in 416 (Range Not Satisfiable) | |||
| responses to provide information about the selected representation. | responses to provide information about the selected representation. | |||
| skipping to change at page 15, line 42 | skipping to change at page 15, line 42 | |||
| received a complete representation. Thus, clients cannot depend | received a complete representation. Thus, clients cannot depend | |||
| on receiving a 416 (Range Not Satisfiable) response even when it | on receiving a 416 (Range Not Satisfiable) response even when it | |||
| is most appropriate. | is most appropriate. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| 5.1. Range Unit Registry | 5.1. Range Unit Registry | |||
| The HTTP Range Unit Registry defines the name space for the range | The HTTP Range Unit Registry defines the name space for the range | |||
| unit names and refers to their corresponding specifications. The | unit names and refers to their corresponding specifications. The | |||
| registry will be created and maintained at | registry will be created and maintained at (the suggested URI) | |||
| <http://www.iana.org/assignments/http-parameters>. | <http://www.iana.org/assignments/http-parameters>. | |||
| 5.1.1. Procedure | 5.1.1. Procedure | |||
| Registration of an HTTP Range Unit MUST include the following fields: | Registration of an HTTP Range Unit MUST include the following fields: | |||
| o Name | o Name | |||
| o Description | o Description | |||
| o Pointer to specification text | o Pointer to specification text | |||
| skipping to change at page 17, line 17 | skipping to change at page 17, line 17 | |||
| +-------------------+----------+----------+-------------+ | +-------------------+----------+----------+-------------+ | |||
| | Accept-Ranges | http | standard | Section 2.3 | | | Accept-Ranges | http | standard | Section 2.3 | | |||
| | Content-Range | http | standard | Section 4.2 | | | Content-Range | http | standard | Section 4.2 | | |||
| | If-Range | http | standard | Section 3.2 | | | If-Range | http | standard | Section 3.2 | | |||
| | Range | http | standard | Section 3.1 | | | Range | http | standard | Section 3.1 | | |||
| +-------------------+----------+----------+-------------+ | +-------------------+----------+----------+-------------+ | |||
| The change controller is: "IETF (iesg@ietf.org) - Internet | The change controller is: "IETF (iesg@ietf.org) - Internet | |||
| Engineering Task Force". | Engineering Task Force". | |||
| 5.4. Internet Media Type Registration | ||||
| IANA maintains the registry of Internet media types [BCP13] at | ||||
| <http://www.iana.org/assignments/media-types>. | ||||
| This document serves as the specification for the Internet media type | ||||
| "multipart/byteranges". The following is to be registered with IANA. | ||||
| 5.4.1. Internet Media Type multipart/byteranges | ||||
| Type name: multipart | ||||
| Subtype name: byteranges | ||||
| Required parameters: boundary | ||||
| Optional parameters: none | ||||
| Encoding considerations: only "7bit", "8bit", or "binary" are | ||||
| permitted | ||||
| Security considerations: none | ||||
| Interoperability considerations: none | ||||
| Published specification: This specification (see Appendix A). | ||||
| Applications that use this media type: HTTP components supporting | ||||
| multiple ranges in a single request. | ||||
| Additional information: | ||||
| Magic number(s): none | ||||
| File extension(s): none | ||||
| Macintosh file type code(s): none | ||||
| Person and email address to contact for further information: See | ||||
| Authors Section. | ||||
| Intended usage: COMMON | ||||
| Restrictions on usage: none | ||||
| Author: See Authors Section. | ||||
| Change controller: IESG | ||||
| 6. Security Considerations | 6. Security Considerations | |||
| This section is meant to inform developers, information providers, | This section is meant to inform developers, information providers, | |||
| and users of known security concerns specific to the HTTP/1.1 range | and users of known security concerns specific to the HTTP/1.1 range | |||
| request mechanisms. More general security considerations are | request mechanisms. More general security considerations are | |||
| addressed in HTTP messaging [Part1] and semantics [Part2]. | addressed in HTTP messaging [Part1] and semantics [Part2]. | |||
| 6.1. Denial of Service Attacks using Range | 6.1. Denial of Service Attacks using Range | |||
| Unconstrained multiple range requests are susceptible to denial of | Unconstrained multiple range requests are susceptible to denial of | |||
| skipping to change at page 17, line 47 | skipping to change at page 18, line 49 | |||
| 7. Acknowledgments | 7. Acknowledgments | |||
| See Section 10 of [Part1]. | See Section 10 of [Part1]. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [Part1] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | [Part1] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | |||
| Protocol (HTTP/1.1): Message Syntax and Routing", | Protocol (HTTP/1.1): Message Syntax and Routing", | |||
| draft-ietf-httpbis-p1-messaging-24 (work in progress), | draft-ietf-httpbis-p1-messaging-25 (work in progress), | |||
| September 2013. | November 2013. | |||
| [Part2] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | [Part2] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | |||
| Protocol (HTTP/1.1): Semantics and Content", | Protocol (HTTP/1.1): Semantics and Content", | |||
| draft-ietf-httpbis-p2-semantics-24 (work in progress), | draft-ietf-httpbis-p2-semantics-25 (work in progress), | |||
| September 2013. | November 2013. | |||
| [Part4] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | [Part4] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | |||
| Protocol (HTTP/1.1): Conditional Requests", | Protocol (HTTP/1.1): Conditional Requests", | |||
| draft-ietf-httpbis-p4-conditional-24 (work in progress), | draft-ietf-httpbis-p4-conditional-25 (work in progress), | |||
| September 2013. | November 2013. | |||
| [Part6] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | [Part6] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | |||
| Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching", | Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching", | |||
| draft-ietf-httpbis-p6-cache-24 (work in progress), | draft-ietf-httpbis-p6-cache-25 (work in progress), | |||
| September 2013. | November 2013. | |||
| [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | |||
| Extensions (MIME) Part Two: Media Types", RFC 2046, | Extensions (MIME) Part Two: Media Types", RFC 2046, | |||
| November 1996. | November 1996. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", STD 68, RFC 5234, January 2008. | Specifications: ABNF", STD 68, RFC 5234, January 2008. | |||
| skipping to change at page 18, line 49 | skipping to change at page 20, line 4 | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
| IANA Considerations Section in RFCs", BCP 26, RFC 5226, | IANA Considerations Section in RFCs", BCP 26, RFC 5226, | |||
| May 2008. | May 2008. | |||
| Appendix A. Internet Media Type multipart/byteranges | Appendix A. Internet Media Type multipart/byteranges | |||
| When a 206 (Partial Content) response message includes the content of | When a 206 (Partial Content) response message includes the content of | |||
| multiple ranges, they are transmitted as body parts in a multipart | multiple ranges, they are transmitted as body parts in a multipart | |||
| message body ([RFC2046], Section 5.1) with the media type of | message body ([RFC2046], Section 5.1) with the media type of | |||
| "multipart/byteranges". The following definition is to be registered | "multipart/byteranges". | |||
| with IANA [BCP13]. | ||||
| The multipart/byteranges media type includes one or more body parts, | The multipart/byteranges media type includes one or more body parts, | |||
| each with its own Content-Type and Content-Range fields. The | each with its own Content-Type and Content-Range fields. The | |||
| required boundary parameter specifies the boundary string used to | required boundary parameter specifies the boundary string used to | |||
| separate each body part. | separate each body part. | |||
| Type name: multipart | ||||
| Subtype name: byteranges | ||||
| Required parameters: boundary | ||||
| Optional parameters: none | ||||
| Encoding considerations: only "7bit", "8bit", or "binary" are | ||||
| permitted | ||||
| Security considerations: none | ||||
| Interoperability considerations: none | ||||
| Published specification: This specification (see Appendix A). | ||||
| Applications that use this media type: HTTP components supporting | ||||
| multiple ranges in a single request. | ||||
| Additional information: | ||||
| Magic number(s): none | ||||
| File extension(s): none | ||||
| Macintosh file type code(s): none | ||||
| Person and email address to contact for further information: See | ||||
| Authors Section. | ||||
| Intended usage: COMMON | ||||
| Restrictions on usage: none | ||||
| Author: See Authors Section. | ||||
| Change controller: IESG | ||||
| Implementation Notes: | Implementation Notes: | |||
| 1. Additional CRLFs might precede the first boundary string in the | 1. Additional CRLFs might precede the first boundary string in the | |||
| body. | body. | |||
| 2. Although [RFC2046] permits the boundary string to be quoted, some | 2. Although [RFC2046] permits the boundary string to be quoted, some | |||
| existing implementations handle a quoted boundary string | existing implementations handle a quoted boundary string | |||
| incorrectly. | incorrectly. | |||
| 3. A number of clients and servers were coded to an early draft of | 3. A number of clients and servers were coded to an early draft of | |||
| skipping to change at page 23, line 7 | skipping to change at page 23, line 7 | |||
| suffix-byte-range-spec = "-" suffix-length | suffix-byte-range-spec = "-" suffix-length | |||
| suffix-length = 1*DIGIT | suffix-length = 1*DIGIT | |||
| token = <token, defined in [Part1], Section 3.2.6> | token = <token, defined in [Part1], Section 3.2.6> | |||
| unsatisfied-range = "*/" complete-length | unsatisfied-range = "*/" complete-length | |||
| Appendix E. Change Log (to be removed by RFC Editor before publication) | Appendix E. Change Log (to be removed by RFC Editor before publication) | |||
| Changes up to the first Working Group Last Call draft are summarized | Changes up to the IETF Last Call draft are summarized in <http:// | |||
| in <http://tools.ietf.org/html/ | tools.ietf.org/html/draft-ietf-httpbis-p5-range-24#appendix-E>. | |||
| draft-ietf-httpbis-p5-range-19#appendix-D>. | ||||
| E.1. Since draft-ietf-httpbis-p5-range-19 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/358>: "ABNF list | ||||
| expansion code problem" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/361>: "ABNF | ||||
| requirements for recipients" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/367>: "reserve | ||||
| 'none' as byte range unit" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/368>: "note | ||||
| introduction of new IANA registries as normative changes" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/369>: "range units | ||||
| vs leading zeroes vs size" | ||||
| E.2. Since draft-ietf-httpbis-p5-range-20 | ||||
| o Conformance criteria and considerations regarding error handling | ||||
| are now defined in Part 1. | ||||
| E.3. Since draft-ietf-httpbis-p5-range-21 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/175>: "Security | ||||
| consideration: range flooding" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/223>: "Allowing | ||||
| heuristic caching for new status codes" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/311>: "Add | ||||
| limitations to Range to reduce its use as a denial-of-service | ||||
| tool" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/407>: "416 and | ||||
| multipart/byteranges" | ||||
| E.4. Since draft-ietf-httpbis-p5-range-22 | E.1. Since draft-ietf-httpbis-p5-range-24 | |||
| Closed issues: | Closed issues: | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/436>: "explain list | o <http://tools.ietf.org/wg/httpbis/trac/ticket/506>: "APPSDIR | |||
| expansion in ABNF appendices" | review of draft-ietf-httpbis-p5-range-24" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/437>: "incorrect | ||||
| example dates" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/438>: "media type | ||||
| registration template issues" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/462>: "Editorial | ||||
| suggestions" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/485>: "MUSTs and | ||||
| other feedback" | ||||
| E.5. Since draft-ietf-httpbis-p5-range-23 | ||||
| Closed issues: | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/489>: "is P5's | o <http://tools.ietf.org/wg/httpbis/trac/ticket/507>: "integer value | |||
| definition of strong validator consistent with P4?" | parsing" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/490>: "p5 editorial | o <http://tools.ietf.org/wg/httpbis/trac/ticket/508>: "broken | |||
| comments" | sentence in description of 206" | |||
| Index | Index | |||
| 2 | 2 | |||
| 206 Partial Content (status code) 10 | 206 Partial Content (status code) 10 | |||
| 4 | 4 | |||
| 416 Range Not Satisfiable (status code) 15 | 416 Range Not Satisfiable (status code) 15 | |||
| A | A | |||
| skipping to change at page 25, line 30 | skipping to change at page 24, line 19 | |||
| ranges-specifier 5 | ranges-specifier 5 | |||
| suffix-byte-range-spec 6 | suffix-byte-range-spec 6 | |||
| suffix-length 6 | suffix-length 6 | |||
| unsatisfied-range 12 | unsatisfied-range 12 | |||
| I | I | |||
| If-Range header field 9 | If-Range header field 9 | |||
| M | M | |||
| Media Type | Media Type | |||
| multipart/byteranges 18 | multipart/byteranges 17, 19 | |||
| multipart/x-byteranges 20 | multipart/x-byteranges 20 | |||
| multipart/byteranges Media Type 18 | multipart/byteranges Media Type 17, 19 | |||
| multipart/x-byteranges Media Type 20 | multipart/x-byteranges Media Type 20 | |||
| R | R | |||
| Range header field 7 | Range header field 7 | |||
| Authors' Addresses | Authors' Addresses | |||
| Roy T. Fielding (editor) | Roy T. Fielding (editor) | |||
| Adobe Systems Incorporated | Adobe Systems Incorporated | |||
| 345 Park Ave | 345 Park Ave | |||
| End of changes. 26 change blocks. | ||||
| 142 lines changed or deleted | 90 lines changed or added | |||
This html diff was produced by rfcdiff 1.38. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||