Changeset 2141


Ignore:
Timestamp:
Jan 20, 2013, 6:35:35 AM (7 years ago)
Author:
fielding@…
Message:

(editorial) prepare to move request fields up; no text changes

Location:
draft-ietf-httpbis/latest
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p5-range.html

    r2140 r2141  
    473473      <link rel="Chapter" title="1 Introduction" href="#rfc.section.1">
    474474      <link rel="Chapter" title="2 Range Units" href="#rfc.section.2">
    475       <link rel="Chapter" title="3 Status Code Definitions" href="#rfc.section.3">
    476       <link rel="Chapter" title="4 Responses to a Range Request" href="#rfc.section.4">
    477       <link rel="Chapter" title="5 Header Field Definitions" href="#rfc.section.5">
    478       <link rel="Chapter" title="6 IANA Considerations" href="#rfc.section.6">
    479       <link rel="Chapter" title="7 Security Considerations" href="#rfc.section.7">
    480       <link rel="Chapter" title="8 Acknowledgments" href="#rfc.section.8">
    481       <link rel="Chapter" href="#rfc.section.9" title="9 References">
     475      <link rel="Chapter" title="3 Range Requests" href="#rfc.section.3">
     476      <link rel="Chapter" title="4 Status Code Definitions" href="#rfc.section.4">
     477      <link rel="Chapter" title="5 Responses to a Range Request" href="#rfc.section.5">
     478      <link rel="Chapter" title="6 Header Field Definitions" href="#rfc.section.6">
     479      <link rel="Chapter" title="7 IANA Considerations" href="#rfc.section.7">
     480      <link rel="Chapter" title="8 Security Considerations" href="#rfc.section.8">
     481      <link rel="Chapter" title="9 Acknowledgments" href="#rfc.section.9">
     482      <link rel="Chapter" href="#rfc.section.10" title="10 References">
    482483      <link rel="Appendix" title="A Internet Media Type multipart/byteranges" href="#rfc.section.A">
    483484      <link rel="Appendix" title="B Changes from RFC 2616" href="#rfc.section.B">
     
    581582            </ul>
    582583         </li>
    583          <li><a href="#rfc.section.3">3.</a>&nbsp;&nbsp;&nbsp;<a href="#status.code.definitions">Status Code Definitions</a><ul>
    584                <li><a href="#rfc.section.3.1">3.1</a>&nbsp;&nbsp;&nbsp;<a href="#status.206">206 Partial Content</a></li>
    585                <li><a href="#rfc.section.3.2">3.2</a>&nbsp;&nbsp;&nbsp;<a href="#status.416">416 Range Not Satisfiable</a></li>
     584         <li><a href="#rfc.section.3">3.</a>&nbsp;&nbsp;&nbsp;<a href="#range.requests">Range Requests</a></li>
     585         <li><a href="#rfc.section.4">4.</a>&nbsp;&nbsp;&nbsp;<a href="#status.code.definitions">Status Code Definitions</a><ul>
     586               <li><a href="#rfc.section.4.1">4.1</a>&nbsp;&nbsp;&nbsp;<a href="#status.206">206 Partial Content</a></li>
     587               <li><a href="#rfc.section.4.2">4.2</a>&nbsp;&nbsp;&nbsp;<a href="#status.416">416 Range Not Satisfiable</a></li>
    586588            </ul>
    587589         </li>
    588          <li><a href="#rfc.section.4">4.</a>&nbsp;&nbsp;&nbsp;<a href="#range.response">Responses to a Range Request</a><ul>
    589                <li><a href="#rfc.section.4.1">4.1</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.1">Response to a Single and Multiple Ranges Request</a></li>
    590                <li><a href="#rfc.section.4.2">4.2</a>&nbsp;&nbsp;&nbsp;<a href="#combining.byte.ranges">Combining Ranges</a></li>
     590         <li><a href="#rfc.section.5">5.</a>&nbsp;&nbsp;&nbsp;<a href="#range.response">Responses to a Range Request</a><ul>
     591               <li><a href="#rfc.section.5.1">5.1</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.1">Response to a Single and Multiple Ranges Request</a></li>
     592               <li><a href="#rfc.section.5.2">5.2</a>&nbsp;&nbsp;&nbsp;<a href="#combining.byte.ranges">Combining Ranges</a></li>
    591593            </ul>
    592594         </li>
    593          <li><a href="#rfc.section.5">5.</a>&nbsp;&nbsp;&nbsp;<a href="#header.field.definitions">Header Field Definitions</a><ul>
    594                <li><a href="#rfc.section.5.1">5.1</a>&nbsp;&nbsp;&nbsp;<a href="#header.accept-ranges">Accept-Ranges</a></li>
    595                <li><a href="#rfc.section.5.2">5.2</a>&nbsp;&nbsp;&nbsp;<a href="#header.content-range">Content-Range</a></li>
    596                <li><a href="#rfc.section.5.3">5.3</a>&nbsp;&nbsp;&nbsp;<a href="#header.if-range">If-Range</a></li>
    597                <li><a href="#rfc.section.5.4">5.4</a>&nbsp;&nbsp;&nbsp;<a href="#header.range">Range</a><ul>
    598                      <li><a href="#rfc.section.5.4.1">5.4.1</a>&nbsp;&nbsp;&nbsp;<a href="#range.retrieval.requests">Range Retrieval Requests</a></li>
     595         <li><a href="#rfc.section.6">6.</a>&nbsp;&nbsp;&nbsp;<a href="#header.field.definitions">Header Field Definitions</a><ul>
     596               <li><a href="#rfc.section.6.1">6.1</a>&nbsp;&nbsp;&nbsp;<a href="#header.accept-ranges">Accept-Ranges</a></li>
     597               <li><a href="#rfc.section.6.2">6.2</a>&nbsp;&nbsp;&nbsp;<a href="#header.content-range">Content-Range</a></li>
     598               <li><a href="#rfc.section.6.3">6.3</a>&nbsp;&nbsp;&nbsp;<a href="#header.if-range">If-Range</a></li>
     599               <li><a href="#rfc.section.6.4">6.4</a>&nbsp;&nbsp;&nbsp;<a href="#header.range">Range</a></li>
     600            </ul>
     601         </li>
     602         <li><a href="#rfc.section.7">7.</a>&nbsp;&nbsp;&nbsp;<a href="#IANA.considerations">IANA Considerations</a><ul>
     603               <li><a href="#rfc.section.7.1">7.1</a>&nbsp;&nbsp;&nbsp;<a href="#range.unit.registry">Range Unit Registry</a><ul>
     604                     <li><a href="#rfc.section.7.1.1">7.1.1</a>&nbsp;&nbsp;&nbsp;<a href="#range.unit.registry.procedure">Procedure</a></li>
     605                     <li><a href="#rfc.section.7.1.2">7.1.2</a>&nbsp;&nbsp;&nbsp;<a href="#range.unit.registration">Registrations</a></li>
    599606                  </ul>
    600607               </li>
     608               <li><a href="#rfc.section.7.2">7.2</a>&nbsp;&nbsp;&nbsp;<a href="#status.code.registration">Status Code Registration</a></li>
     609               <li><a href="#rfc.section.7.3">7.3</a>&nbsp;&nbsp;&nbsp;<a href="#header.field.registration">Header Field Registration</a></li>
    601610            </ul>
    602611         </li>
    603          <li><a href="#rfc.section.6">6.</a>&nbsp;&nbsp;&nbsp;<a href="#IANA.considerations">IANA Considerations</a><ul>
    604                <li><a href="#rfc.section.6.1">6.1</a>&nbsp;&nbsp;&nbsp;<a href="#range.unit.registry">Range Unit Registry</a><ul>
    605                      <li><a href="#rfc.section.6.1.1">6.1.1</a>&nbsp;&nbsp;&nbsp;<a href="#range.unit.registry.procedure">Procedure</a></li>
    606                      <li><a href="#rfc.section.6.1.2">6.1.2</a>&nbsp;&nbsp;&nbsp;<a href="#range.unit.registration">Registrations</a></li>
    607                   </ul>
    608                </li>
    609                <li><a href="#rfc.section.6.2">6.2</a>&nbsp;&nbsp;&nbsp;<a href="#status.code.registration">Status Code Registration</a></li>
    610                <li><a href="#rfc.section.6.3">6.3</a>&nbsp;&nbsp;&nbsp;<a href="#header.field.registration">Header Field Registration</a></li>
     612         <li><a href="#rfc.section.8">8.</a>&nbsp;&nbsp;&nbsp;<a href="#security.considerations">Security Considerations</a><ul>
     613               <li><a href="#rfc.section.8.1">8.1</a>&nbsp;&nbsp;&nbsp;<a href="#overlapping.ranges">Overlapping Ranges</a></li>
    611614            </ul>
    612615         </li>
    613          <li><a href="#rfc.section.7">7.</a>&nbsp;&nbsp;&nbsp;<a href="#security.considerations">Security Considerations</a><ul>
    614                <li><a href="#rfc.section.7.1">7.1</a>&nbsp;&nbsp;&nbsp;<a href="#overlapping.ranges">Overlapping Ranges</a></li>
    615             </ul>
    616          </li>
    617          <li><a href="#rfc.section.8">8.</a>&nbsp;&nbsp;&nbsp;<a href="#acks">Acknowledgments</a></li>
    618          <li><a href="#rfc.section.9">9.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references">References</a><ul>
    619                <li><a href="#rfc.section.9.1">9.1</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references.1">Normative References</a></li>
    620                <li><a href="#rfc.section.9.2">9.2</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references.2">Informative References</a></li>
     616         <li><a href="#rfc.section.9">9.</a>&nbsp;&nbsp;&nbsp;<a href="#acks">Acknowledgments</a></li>
     617         <li><a href="#rfc.section.10">10.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references">References</a><ul>
     618               <li><a href="#rfc.section.10.1">10.1</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references.1">Normative References</a></li>
     619               <li><a href="#rfc.section.10.2">10.2</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references.2">Informative References</a></li>
    621620            </ul>
    622621         </li>
     
    660659      <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a>&nbsp;<a id="range.units" href="#range.units">Range Units</a></h1>
    661660      <p id="rfc.section.2.p.1">A representation can be partitioned into subranges according to various structural units, depending on the structure inherent
    662          in the representation's media type. Such a <dfn>range unit</dfn> can be used in the <a href="#range.retrieval.requests" class="smpl">Range</a> (<a href="#header.range" id="rfc.xref.header.range.1" title="Range">Section&nbsp;5.4</a>) and <a href="#header.content-range" class="smpl">Content-Range</a> (<a href="#header.content-range" id="rfc.xref.header.content-range.1" title="Content-Range">Section&nbsp;5.2</a>) header fields to delineate the parts of a representation that are either requested or transferred, respectively.
     661         in the representation's media type. Such a <dfn>range unit</dfn> can be used in the <a href="#header.range" class="smpl">Range</a> (<a href="#header.range" id="rfc.xref.header.range.1" title="Range">Section&nbsp;6.4</a>) and <a href="#header.content-range" class="smpl">Content-Range</a> (<a href="#header.content-range" id="rfc.xref.header.content-range.1" title="Content-Range">Section&nbsp;6.2</a>) header fields to delineate the parts of a representation that are either requested or transferred, respectively.
    663662      </p>
    664663      <div id="rfc.figure.u.1"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span>  <a href="#range.units" class="smpl">range-unit</a>       = <a href="#range.units" class="smpl">bytes-unit</a> / <a href="#range.units" class="smpl">other-range-unit</a>
     
    725724      </ul>
    726725      <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2</a>&nbsp;<a id="range.units.other" href="#range.units.other">Other Range Units</a></h2>
    727       <p id="rfc.section.2.2.p.1">The only range unit defined by HTTP/1.1 is "bytes" (<a href="#byte.ranges" title="Byte Ranges">Section&nbsp;2.1</a>). Additional units can be defined as described in <a href="#range.unit.registry" title="Range Unit Registry">Section&nbsp;6.1</a>.
    728       </p>
    729       <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="status.code.definitions" href="#status.code.definitions">Status Code Definitions</a></h1>
     726      <p id="rfc.section.2.2.p.1">The only range unit defined by HTTP/1.1 is "bytes" (<a href="#byte.ranges" title="Byte Ranges">Section&nbsp;2.1</a>). Additional units can be defined as described in <a href="#range.unit.registry" title="Range Unit Registry">Section&nbsp;7.1</a>.
     727      </p>
     728      <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="range.requests" href="#range.requests">Range Requests</a></h1>
     729      <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a>&nbsp;<a id="status.code.definitions" href="#status.code.definitions">Status Code Definitions</a></h1>
    730730      <div id="rfc.iref.11"></div>
    731       <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;<a id="status.206" href="#status.206">206 Partial Content</a></h2>
    732       <p id="rfc.section.3.1.p.1">The <dfn>206 (Partial Content)</dfn> status code indicates that the server has fulfilled the partial GET request for the resource. The request <em class="bcp14">MUST</em> have included a <a href="#range.retrieval.requests" class="smpl">Range</a> header field (<a href="#header.range" id="rfc.xref.header.range.2" title="Range">Section&nbsp;5.4</a>) indicating the desired range, and <em class="bcp14">MAY</em> have included an <a href="#header.if-range" class="smpl">If-Range</a> header field (<a href="#header.if-range" id="rfc.xref.header.if-range.1" title="If-Range">Section&nbsp;5.3</a>) to make the request conditional.
    733       </p>
    734       <p id="rfc.section.3.1.p.2">When a 206 response is generated, the sender <em class="bcp14">MUST</em> generate the following header fields:
     731      <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a>&nbsp;<a id="status.206" href="#status.206">206 Partial Content</a></h2>
     732      <p id="rfc.section.4.1.p.1">The <dfn>206 (Partial Content)</dfn> status code indicates that the server has fulfilled the partial GET request for the resource. The request <em class="bcp14">MUST</em> have included a <a href="#header.range" class="smpl">Range</a> header field (<a href="#header.range" id="rfc.xref.header.range.2" title="Range">Section&nbsp;6.4</a>) indicating the desired range, and <em class="bcp14">MAY</em> have included an <a href="#header.if-range" class="smpl">If-Range</a> header field (<a href="#header.if-range" id="rfc.xref.header.if-range.1" title="If-Range">Section&nbsp;6.3</a>) to make the request conditional.
     733      </p>
     734      <p id="rfc.section.4.1.p.2">When a 206 response is generated, the sender <em class="bcp14">MUST</em> generate the following header fields:
    735735      </p>
    736736      <ul>
    737          <li>Either a <a href="#header.content-range" class="smpl">Content-Range</a> header field (<a href="#header.content-range" id="rfc.xref.header.content-range.2" title="Content-Range">Section&nbsp;5.2</a>) indicating the range included with this response, or a multipart/byteranges <a href="p2-semantics.html#header.content-type" class="smpl">Content-Type</a> including Content-Range fields for each part. If a <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> header field is present in the response, its value <em class="bcp14">MUST</em> match the actual number of octets transmitted in the message body.
     737         <li>Either a <a href="#header.content-range" class="smpl">Content-Range</a> header field (<a href="#header.content-range" id="rfc.xref.header.content-range.2" title="Content-Range">Section&nbsp;6.2</a>) indicating the range included with this response, or a multipart/byteranges <a href="p2-semantics.html#header.content-type" class="smpl">Content-Type</a> including Content-Range fields for each part. If a <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> header field is present in the response, its value <em class="bcp14">MUST</em> match the actual number of octets transmitted in the message body.
    738738         </li>
    739739         <li>Date</li>
     
    741741         </li>
    742742      </ul>
    743       <p id="rfc.section.3.1.p.3">If a 206 is generated in response to a request with an <a href="#header.if-range" class="smpl">If-Range</a> header field, the sender <em class="bcp14">SHOULD NOT</em> generate other representation header fields beyond those described above. Otherwise, the sender <em class="bcp14">MUST</em> generate all of the same representation header fields that would have been sent in a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response to the same request.
    744       </p>
    745       <p id="rfc.section.3.1.p.4">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 206 responses.
     743      <p id="rfc.section.4.1.p.3">If a 206 is generated in response to a request with an <a href="#header.if-range" class="smpl">If-Range</a> header field, the sender <em class="bcp14">SHOULD NOT</em> generate other representation header fields beyond those described above. Otherwise, the sender <em class="bcp14">MUST</em> generate all of the same representation header fields that would have been sent in a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response to the same request.
     744      </p>
     745      <p id="rfc.section.4.1.p.4">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 206 responses.
    746746      </p>
    747747      <div id="rfc.iref.11"></div>
    748       <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a>&nbsp;<a id="status.416" href="#status.416">416 Range Not Satisfiable</a></h2>
    749       <p id="rfc.section.3.2.p.1">The <dfn>416 (Range Not Satisfiable)</dfn> status code indicates that none of the ranges-specifier values in the request's <a href="#range.retrieval.requests" class="smpl">Range</a> header field (<a href="#header.range" id="rfc.xref.header.range.3" title="Range">Section&nbsp;5.4</a>) overlap the current extent of the selected resource and the request did not include an <a href="#header.if-range" class="smpl">If-Range</a> header field (<a href="#header.if-range" id="rfc.xref.header.if-range.2" title="If-Range">Section&nbsp;5.3</a>). (For byte-ranges, this means that the first-byte-pos of all of the byte-range-spec values were greater than the current
     748      <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a>&nbsp;<a id="status.416" href="#status.416">416 Range Not Satisfiable</a></h2>
     749      <p id="rfc.section.4.2.p.1">The <dfn>416 (Range Not Satisfiable)</dfn> status code indicates that none of the ranges-specifier values in the request's <a href="#header.range" class="smpl">Range</a> header field (<a href="#header.range" id="rfc.xref.header.range.3" title="Range">Section&nbsp;6.4</a>) overlap the current extent of the selected resource and the request did not include an <a href="#header.if-range" class="smpl">If-Range</a> header field (<a href="#header.if-range" id="rfc.xref.header.if-range.2" title="If-Range">Section&nbsp;6.3</a>). (For byte-ranges, this means that the first-byte-pos of all of the byte-range-spec values were greater than the current
    750750         length of the selected representation.)
    751751      </p>
    752       <p id="rfc.section.3.2.p.2">When this status code is sent in response to a byte-range request, the sender <em class="bcp14">SHOULD</em> generate a <a href="#header.content-range" class="smpl">Content-Range</a> header field specifying the current length of the selected representation (see <a href="#header.content-range" id="rfc.xref.header.content-range.3" title="Content-Range">Section&nbsp;5.2</a>).
     752      <p id="rfc.section.4.2.p.2">When this status code is sent in response to a byte-range request, the sender <em class="bcp14">SHOULD</em> generate a <a href="#header.content-range" class="smpl">Content-Range</a> header field specifying the current length of the selected representation (see <a href="#header.content-range" id="rfc.xref.header.content-range.3" title="Content-Range">Section&nbsp;6.2</a>).
    753753      </p>
    754754      <div id="rfc.figure.u.10"></div>
     
    757757Content-Range: bytes */47022
    758758Content-Type: image/gif
    759 </pre><div class="note" id="rfc.section.3.2.p.4">
     759</pre><div class="note" id="rfc.section.4.2.p.4">
    760760         <p> <b>Note:</b> Clients cannot depend on servers to send a <a href="#status.416" class="smpl">416 (Range Not
    761                Satisfiable)</a> response instead of a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response for an unsatisfiable <a href="#range.retrieval.requests" class="smpl">Range</a> header field, since not all servers implement this header field.
     761               Satisfiable)</a> response instead of a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response for an unsatisfiable <a href="#header.range" class="smpl">Range</a> header field, since not all servers implement this header field.
    762762         </p>
    763763      </div>
    764       <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a>&nbsp;<a id="range.response" href="#range.response">Responses to a Range Request</a></h1>
    765       <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a>&nbsp;Response to a Single and Multiple Ranges Request
     764      <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a>&nbsp;<a id="range.response" href="#range.response">Responses to a Range Request</a></h1>
     765      <h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a>&nbsp;Response to a Single and Multiple Ranges Request
    766766      </h2>
    767       <p id="rfc.section.4.1.p.1">When an HTTP message includes the content of a single range (for example, a response to a request for a single range, or to
     767      <p id="rfc.section.5.1.p.1">When an HTTP message includes the content of a single range (for example, a response to a request for a single range, or to
    768768         a request for a set of ranges that overlap without any holes), this content is transmitted with a <a href="#header.content-range" class="smpl">Content-Range</a> header field, and a <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> header field showing the number of bytes actually transferred. For example,
    769769      </p>
     
    774774Content-Length: 26012
    775775Content-Type: image/gif
    776 </pre><p id="rfc.section.4.1.p.3">When an HTTP message includes the content of multiple ranges (for example, a response to a request for multiple non-overlapping
     776</pre><p id="rfc.section.5.1.p.3">When an HTTP message includes the content of multiple ranges (for example, a response to a request for multiple non-overlapping
    777777         ranges), these are transmitted as a multipart message. The multipart media type used for this purpose is "multipart/byteranges"
    778778         as defined in <a href="#internet.media.type.multipart.byteranges" title="Internet Media Type multipart/byteranges">Appendix&nbsp;A</a>.
    779779      </p>
    780       <p id="rfc.section.4.1.p.4">A server <em class="bcp14">MAY</em> combine requested ranges when those ranges are overlapping (see <a href="#overlapping.ranges" title="Overlapping Ranges">Section&nbsp;7.1</a>).
    781       </p>
    782       <p id="rfc.section.4.1.p.5">A response to a request for a single range <em class="bcp14">MUST NOT</em> be sent using the multipart/byteranges media type. A response to a request for multiple ranges, whose result is a single range, <em class="bcp14">MAY</em> be sent as a multipart/byteranges media type with one part. A client that cannot decode a multipart/byteranges message <em class="bcp14">MUST NOT</em> ask for multiple ranges in a single request.
    783       </p>
    784       <p id="rfc.section.4.1.p.6">When a client asks for multiple ranges in one request, the server <em class="bcp14">SHOULD</em> send them in the order that they appeared in the request.
    785       </p>
    786       <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a>&nbsp;<a id="combining.byte.ranges" href="#combining.byte.ranges">Combining Ranges</a></h2>
    787       <p id="rfc.section.4.2.p.1">A response might transfer only a subrange of a representation if the connection closed prematurely or if the request used
     780      <p id="rfc.section.5.1.p.4">A server <em class="bcp14">MAY</em> combine requested ranges when those ranges are overlapping (see <a href="#overlapping.ranges" title="Overlapping Ranges">Section&nbsp;8.1</a>).
     781      </p>
     782      <p id="rfc.section.5.1.p.5">A response to a request for a single range <em class="bcp14">MUST NOT</em> be sent using the multipart/byteranges media type. A response to a request for multiple ranges, whose result is a single range, <em class="bcp14">MAY</em> be sent as a multipart/byteranges media type with one part. A client that cannot decode a multipart/byteranges message <em class="bcp14">MUST NOT</em> ask for multiple ranges in a single request.
     783      </p>
     784      <p id="rfc.section.5.1.p.6">When a client asks for multiple ranges in one request, the server <em class="bcp14">SHOULD</em> send them in the order that they appeared in the request.
     785      </p>
     786      <h2 id="rfc.section.5.2"><a href="#rfc.section.5.2">5.2</a>&nbsp;<a id="combining.byte.ranges" href="#combining.byte.ranges">Combining Ranges</a></h2>
     787      <p id="rfc.section.5.2.p.1">A response might transfer only a subrange of a representation if the connection closed prematurely or if the request used
    788788         one or more Range specifications. After several such transfers, a client might have received several ranges of the same representation.
    789789         These ranges can only be safely combined if they all have in common the same strong validator, where "strong validator" is
    790790         defined to be either an entity-tag that is not marked as weak (<a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>) or, if no entity-tag is provided, a <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> value that is strong in the sense defined by <a href="p4-conditional.html#lastmod.comparison" title="Comparison">Section 2.2.2</a> of <a href="#Part4" id="rfc.xref.Part4.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>.
    791791      </p>
    792       <p id="rfc.section.4.2.p.2">When a client receives an incomplete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response or a <a href="#status.206" class="smpl">206 (Partial Content)</a> response, and already has one or more partial responses for the same method and effective request URI that have the same strong
     792      <p id="rfc.section.5.2.p.2">When a client receives an incomplete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response or a <a href="#status.206" class="smpl">206 (Partial Content)</a> response, and already has one or more partial responses for the same method and effective request URI that have the same strong
    793793         validator as present in the new response, the recipient <em class="bcp14">MAY</em> combine some or all of those responses into a set of continuous ranges. A client <em class="bcp14">MUST NOT</em> combine responses that differ in the strong validator or that do not have a strong validator.
    794794      </p>
    795       <p id="rfc.section.4.2.p.3">If the new response is an incomplete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response, then the header fields of that new response are used for any combined response and replace those of the matching
     795      <p id="rfc.section.5.2.p.3">If the new response is an incomplete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response, then the header fields of that new response are used for any combined response and replace those of the matching
    796796         stored responses.
    797797      </p>
    798       <p id="rfc.section.4.2.p.4">If the new response is a <a href="#status.206" class="smpl">206 (Partial Content)</a> response and at least one of the matching stored responses is a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a>, then the combined response header fields consist of the most recent 200 response's header fields. If all of the matching
     798      <p id="rfc.section.5.2.p.4">If the new response is a <a href="#status.206" class="smpl">206 (Partial Content)</a> response and at least one of the matching stored responses is a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a>, then the combined response header fields consist of the most recent 200 response's header fields. If all of the matching
    799799         stored responses are 206 responses, then the stored response with the most recent header fields is used as the source of header
    800800         fields for the combined response, except that the client <em class="bcp14">MUST</em> use other header fields provided in the new response, aside from <a href="#header.content-range" class="smpl">Content-Range</a>, to replace all instances of the corresponding header fields in the stored response.
    801801      </p>
    802       <p id="rfc.section.4.2.p.5">The combined response message body consists of the union of partial content ranges in the new response and each of the selected
     802      <p id="rfc.section.5.2.p.5">The combined response message body consists of the union of partial content ranges in the new response and each of the selected
    803803         responses. If the union consists of the entire range of the representation, then the client <em class="bcp14">MUST</em> record the combined response as if it were a complete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response, including a <a href="p1-messaging.html#header.content-length" class="smpl">Content-Length</a> header field that reflects the complete length. Otherwise, the client <em class="bcp14">MUST</em> record the set of continuous ranges as one of the following: an incomplete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response if the combined response is a prefix of the representation, a single <a href="#status.206" class="smpl">206 (Partial Content)</a> response containing a multipart/byteranges body, or multiple <a href="#status.206" class="smpl">206 (Partial Content)</a> responses, each with one continuous range that is indicated by a <a href="#header.content-range" class="smpl">Content-Range</a> header field.
    804804      </p>
    805       <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a>&nbsp;<a id="header.field.definitions" href="#header.field.definitions">Header Field Definitions</a></h1>
    806       <p id="rfc.section.5.p.1">This section defines the syntax and semantics of HTTP/1.1 header fields related to range requests and partial responses.</p>
     805      <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a>&nbsp;<a id="header.field.definitions" href="#header.field.definitions">Header Field Definitions</a></h1>
     806      <p id="rfc.section.6.p.1">This section defines the syntax and semantics of HTTP/1.1 header fields related to range requests and partial responses.</p>
    807807      <div id="rfc.iref.a.1"></div>
    808       <h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a>&nbsp;<a id="header.accept-ranges" href="#header.accept-ranges">Accept-Ranges</a></h2>
    809       <p id="rfc.section.5.1.p.1">The "Accept-Ranges" header field allows a resource to indicate its acceptance of range requests.</p>
     808      <h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a>&nbsp;<a id="header.accept-ranges" href="#header.accept-ranges">Accept-Ranges</a></h2>
     809      <p id="rfc.section.6.1.p.1">The "Accept-Ranges" header field allows a resource to indicate its acceptance of range requests.</p>
    810810      <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span>  <a href="#header.accept-ranges" class="smpl">Accept-Ranges</a>     = <a href="#header.accept-ranges" class="smpl">acceptable-ranges</a>
    811811  <a href="#header.accept-ranges" class="smpl">acceptable-ranges</a> = 1#<a href="#range.units" class="smpl">range-unit</a> / "none"
    812 </pre><p id="rfc.section.5.1.p.3">Origin servers that accept byte-range requests <em class="bcp14">MAY</em> send
     812</pre><p id="rfc.section.6.1.p.3">Origin servers that accept byte-range requests <em class="bcp14">MAY</em> send
    813813      </p>
    814814      <div id="rfc.figure.u.13"></div><pre class="text">  Accept-Ranges: bytes
    815 </pre><p id="rfc.section.5.1.p.5">but are not required to do so. Clients <em class="bcp14">MAY</em> generate range requests without having received this header field for the resource involved. Range units are defined in <a href="#range.units" title="Range Units">Section&nbsp;2</a>.
    816       </p>
    817       <p id="rfc.section.5.1.p.6">Servers that do not accept any kind of range request for a resource <em class="bcp14">MAY</em> send
     815</pre><p id="rfc.section.6.1.p.5">but are not required to do so. Clients <em class="bcp14">MAY</em> generate range requests without having received this header field for the resource involved. Range units are defined in <a href="#range.units" title="Range Units">Section&nbsp;2</a>.
     816      </p>
     817      <p id="rfc.section.6.1.p.6">Servers that do not accept any kind of range request for a resource <em class="bcp14">MAY</em> send
    818818      </p>
    819819      <div id="rfc.figure.u.14"></div><pre class="text">  Accept-Ranges: none
    820 </pre><p id="rfc.section.5.1.p.8">to advise the client not to attempt a range request.</p>
     820</pre><p id="rfc.section.6.1.p.8">to advise the client not to attempt a range request.</p>
    821821      <div id="rfc.iref.c.1"></div>
    822       <h2 id="rfc.section.5.2"><a href="#rfc.section.5.2">5.2</a>&nbsp;<a id="header.content-range" href="#header.content-range">Content-Range</a></h2>
    823       <p id="rfc.section.5.2.p.1">The "Content-Range" header field is sent with a partial representation to specify where in the full representation the payload
     822      <h2 id="rfc.section.6.2"><a href="#rfc.section.6.2">6.2</a>&nbsp;<a id="header.content-range" href="#header.content-range">Content-Range</a></h2>
     823      <p id="rfc.section.6.2.p.1">The "Content-Range" header field is sent with a partial representation to specify where in the full representation the payload
    824824         body is intended to be applied.
    825825      </p>
     
    838838  <a href="#header.content-range" class="smpl">other-content-range</a> = <a href="#range.units" class="smpl">other-range-unit</a> <a href="#imported.abnf" class="smpl">SP</a> <a href="#header.content-range" class="smpl">other-range-resp</a>
    839839  <a href="#header.content-range" class="smpl">other-range-resp</a>    = *<a href="#imported.abnf" class="smpl">CHAR</a>
    840 </pre><p id="rfc.section.5.2.p.3">Range units are defined in <a href="#range.units" title="Range Units">Section&nbsp;2</a>. A recipient of a <a href="#status.206" class="smpl">206 (Partial Content)</a> response containing a <a href="#header.content-range" class="smpl">Content-Range</a> header field with a <a href="#range.units" class="smpl">range unit</a> that the recipient does not understand <em class="bcp14">MUST NOT</em> attempt to recombine it with a stored representation. A proxy that receives such a message <em class="bcp14">SHOULD</em> forward it downstream.
    841       </p>
    842       <p id="rfc.section.5.2.p.4">For byte ranges, a sender <em class="bcp14">SHOULD</em> indicate the complete length of the representation from which the range has been extracted unless the complete length is unknown
     840</pre><p id="rfc.section.6.2.p.3">Range units are defined in <a href="#range.units" title="Range Units">Section&nbsp;2</a>. A recipient of a <a href="#status.206" class="smpl">206 (Partial Content)</a> response containing a <a href="#header.content-range" class="smpl">Content-Range</a> header field with a <a href="#range.units" class="smpl">range unit</a> that the recipient does not understand <em class="bcp14">MUST NOT</em> attempt to recombine it with a stored representation. A proxy that receives such a message <em class="bcp14">SHOULD</em> forward it downstream.
     841      </p>
     842      <p id="rfc.section.6.2.p.4">For byte ranges, a sender <em class="bcp14">SHOULD</em> indicate the complete length of the representation from which the range has been extracted unless the complete length is unknown
    843843         or difficult to determine. An asterisk character ("*") in place of the complete-length indicates that the representation length
    844844         was unknown when the header field was generated.
    845845      </p>
    846       <p id="rfc.section.5.2.p.5">A Content-Range field value with a <a href="#header.content-range" class="smpl">byte-range-resp</a> that has a <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a> value less than its <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a> value, or a <a href="#header.content-range" class="smpl">complete-length</a> value less than or equal to its <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a> value, is invalid. The recipient of an invalid <a href="#header.content-range" class="smpl">Content-Range</a>  <em class="bcp14">MUST NOT</em> attempt to recombine the received content with a stored representation.
    847       </p>
    848       <p id="rfc.section.5.2.p.6">A server generating a <a href="#status.206" class="smpl">206 (Partial Content)</a> response to a byte range request <em class="bcp14">MUST</em> send, in each body-part of a multipart response or in the header block of a single part response, a Content-Range header field
     846      <p id="rfc.section.6.2.p.5">A Content-Range field value with a <a href="#header.content-range" class="smpl">byte-range-resp</a> that has a <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a> value less than its <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a> value, or a <a href="#header.content-range" class="smpl">complete-length</a> value less than or equal to its <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a> value, is invalid. The recipient of an invalid <a href="#header.content-range" class="smpl">Content-Range</a>  <em class="bcp14">MUST NOT</em> attempt to recombine the received content with a stored representation.
     847      </p>
     848      <p id="rfc.section.6.2.p.6">A server generating a <a href="#status.206" class="smpl">206 (Partial Content)</a> response to a byte range request <em class="bcp14">MUST</em> send, in each body-part of a multipart response or in the header block of a single part response, a Content-Range header field
    849849         containing a <a href="#header.content-range" class="smpl">byte-range-resp</a> value that reflects the corresponding range being sent. The following example would apply when the complete length of the
    850850         selected representation is known by the sender to be 1234 bytes:
    851851      </p>
    852852      <div id="rfc.figure.u.16"></div><pre class="text">  Content-Range: bytes 42-1233/1234
    853 </pre><p id="rfc.section.5.2.p.8">or this second example would apply when the complete length is unknown:</p>
     853</pre><p id="rfc.section.6.2.p.8">or this second example would apply when the complete length is unknown:</p>
    854854      <div id="rfc.figure.u.17"></div><pre class="text">  Content-Range: bytes 42-1233/*
    855 </pre><p id="rfc.section.5.2.p.10">A server generating a <a href="#status.416" class="smpl">416 (Range Not Satisfiable)</a> response to a byte range request <em class="bcp14">SHOULD</em> send a Content-Range header field with an <a href="#header.content-range" class="smpl">unsatisfied-range</a> value, as in the following example:
     855</pre><p id="rfc.section.6.2.p.10">A server generating a <a href="#status.416" class="smpl">416 (Range Not Satisfiable)</a> response to a byte range request <em class="bcp14">SHOULD</em> send a Content-Range header field with an <a href="#header.content-range" class="smpl">unsatisfied-range</a> value, as in the following example:
    856856      </p>
    857857      <div id="rfc.figure.u.18"></div><pre class="text">  Content-Range: bytes */1234
    858 </pre><p id="rfc.section.5.2.p.12">The complete-length in a 416 response indicates the current length of the selected representation, which will be known by
     858</pre><p id="rfc.section.6.2.p.12">The complete-length in a 416 response indicates the current length of the selected representation, which will be known by
    859859         the server generating the response because that is how it determined the range to be unsatisfiable.
    860860      </p>
    861       <p id="rfc.section.5.2.p.13">The "Content-Range" header field has no meaning for status codes that do not explicitly describe its semantic. For this specification,
     861      <p id="rfc.section.6.2.p.13">The "Content-Range" header field has no meaning for status codes that do not explicitly describe its semantic. For this specification,
    862862         only the <a href="#status.206" class="smpl">206 (Partial Content)</a> and <a href="#status.416" class="smpl">416 (Range Not Satisfiable)</a> status codes describe a meaning for Content-Range.
    863863      </p>
    864       <p id="rfc.section.5.2.p.14">More examples of Content-Range values, assuming that the representation contains a total of 1234 bytes: </p>
     864      <p id="rfc.section.6.2.p.14">More examples of Content-Range values, assuming that the representation contains a total of 1234 bytes: </p>
    865865      <ul>
    866866         <li>The first 500 bytes:
     
    878878      </ul>
    879879      <div id="rfc.iref.i.1"></div>
    880       <h2 id="rfc.section.5.3"><a href="#rfc.section.5.3">5.3</a>&nbsp;<a id="header.if-range" href="#header.if-range">If-Range</a></h2>
    881       <p id="rfc.section.5.3.p.1">If a client has a partial copy of a representation and wishes to have an up-to-date copy of the entire representation, it
    882          could use the <a href="#range.retrieval.requests" class="smpl">Range</a> header field with a conditional GET (using either or both of <a href="p4-conditional.html#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> and <a href="p4-conditional.html#header.if-match" class="smpl">If-Match</a>.) However, if the condition fails because the representation has been modified, the client would then have to make a second
     880      <h2 id="rfc.section.6.3"><a href="#rfc.section.6.3">6.3</a>&nbsp;<a id="header.if-range" href="#header.if-range">If-Range</a></h2>
     881      <p id="rfc.section.6.3.p.1">If a client has a partial copy of a representation and wishes to have an up-to-date copy of the entire representation, it
     882         could use the <a href="#header.range" class="smpl">Range</a> header field with a conditional GET (using either or both of <a href="p4-conditional.html#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> and <a href="p4-conditional.html#header.if-match" class="smpl">If-Match</a>.) However, if the condition fails because the representation has been modified, the client would then have to make a second
    883883         request to obtain the entire current representation.
    884884      </p>
    885       <p id="rfc.section.5.3.p.2">The "If-Range" header field allows a client to "short-circuit" the second request. Informally, its meaning is: if the representation
     885      <p id="rfc.section.6.3.p.2">The "If-Range" header field allows a client to "short-circuit" the second request. Informally, its meaning is: if the representation
    886886         is unchanged, send me the part(s) that I am requesting in Range; otherwise, send me the entire representation.
    887887      </p>
    888888      <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.22"></span>  <a href="#header.if-range" class="smpl">If-Range</a> = <a href="#imported.abnf" class="smpl">entity-tag</a> / <a href="#imported.abnf" class="smpl">HTTP-date</a>
    889 </pre><p id="rfc.section.5.3.p.4">Clients <em class="bcp14">MUST NOT</em> use an entity-tag marked as weak in an If-Range field value and <em class="bcp14">MUST NOT</em> use a <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> date in an If-Range field value unless it has no entity-tag for the representation and the Last-Modified date it does have
     889</pre><p id="rfc.section.6.3.p.4">Clients <em class="bcp14">MUST NOT</em> use an entity-tag marked as weak in an If-Range field value and <em class="bcp14">MUST NOT</em> use a <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> date in an If-Range field value unless it has no entity-tag for the representation and the Last-Modified date it does have
    890890         for the representation is strong in the sense defined by <a href="p4-conditional.html#lastmod.comparison" title="Comparison">Section 2.2.2</a> of <a href="#Part4" id="rfc.xref.Part4.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>.
    891891      </p>
    892       <p id="rfc.section.5.3.p.5">A server that evaluates a conditional range request that is applicable to one of its representations <em class="bcp14">MUST</em> evaluate the condition as false if the entity-tag used as a validator is marked as weak or, when an HTTP-date is used as the
     892      <p id="rfc.section.6.3.p.5">A server that evaluates a conditional range request that is applicable to one of its representations <em class="bcp14">MUST</em> evaluate the condition as false if the entity-tag used as a validator is marked as weak or, when an HTTP-date is used as the
    893893         validator, if the date value is not strong in the sense defined by <a href="p4-conditional.html#lastmod.comparison" title="Comparison">Section 2.2.2</a> of <a href="#Part4" id="rfc.xref.Part4.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>. (A server can distinguish between a valid HTTP-date and any form of entity-tag by examining the first two characters.)
    894894      </p>
    895       <p id="rfc.section.5.3.p.6">The If-Range header field <em class="bcp14">SHOULD</em> only be sent by clients together with a Range header field. The If-Range header field <em class="bcp14">MUST</em> be ignored if it is received in a request that does not include a Range header field. The If-Range header field <em class="bcp14">MUST</em> be ignored by a server that does not support the sub-range operation.
    896       </p>
    897       <p id="rfc.section.5.3.p.7">If the validator given in the If-Range header field matches the current validator for the selected representation of the target
     895      <p id="rfc.section.6.3.p.6">The If-Range header field <em class="bcp14">SHOULD</em> only be sent by clients together with a Range header field. The If-Range header field <em class="bcp14">MUST</em> be ignored if it is received in a request that does not include a Range header field. The If-Range header field <em class="bcp14">MUST</em> be ignored by a server that does not support the sub-range operation.
     896      </p>
     897      <p id="rfc.section.6.3.p.7">If the validator given in the If-Range header field matches the current validator for the selected representation of the target
    898898         resource, then the server <em class="bcp14">SHOULD</em> send the specified sub-range of the representation using a <a href="#status.206" class="smpl">206 (Partial Content)</a> response. If the validator does not match, then the server <em class="bcp14">SHOULD</em> send the entire representation using a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response.
    899899      </p>
    900900      <div id="rfc.iref.r.1"></div>
    901       <h2 id="rfc.section.5.4"><a href="#rfc.section.5.4">5.4</a>&nbsp;<a id="header.range" href="#header.range">Range</a></h2>
    902       <h3 id="rfc.section.5.4.1"><a href="#rfc.section.5.4.1">5.4.1</a>&nbsp;<a id="range.retrieval.requests" href="#range.retrieval.requests">Range Retrieval Requests</a></h3>
    903       <p id="rfc.section.5.4.1.p.1">The "Range" header field on a GET request modifies the method semantics to request transfer of only one or more sub-ranges
     901      <h2 id="rfc.section.6.4"><a href="#rfc.section.6.4">6.4</a>&nbsp;<a id="header.range" href="#header.range">Range</a></h2>
     902      <p id="rfc.section.6.4.p.1">The "Range" header field on a GET request modifies the method semantics to request transfer of only one or more sub-ranges
    904903         of the selected representation data in a successful response, rather than the entire representation data.
    905904      </p>
    906       <div id="rfc.figure.u.24"></div><pre class="inline"><span id="rfc.iref.g.23"></span>  <a href="#range.retrieval.requests" class="smpl">Range</a> = <a href="#rule.ranges-specifier" class="smpl">byte-ranges-specifier</a> / <a href="#range.retrieval.requests" class="smpl">other-ranges-specifier</a>
    907   <a href="#range.retrieval.requests" class="smpl">other-ranges-specifier</a> = <a href="#range.units" class="smpl">other-range-unit</a> "=" <a href="#range.retrieval.requests" class="smpl">other-range-set</a>
    908   <a href="#range.retrieval.requests" class="smpl">other-range-set</a> = 1*<a href="#imported.abnf" class="smpl">CHAR</a>
    909 </pre><p id="rfc.section.5.4.1.p.3">A server <em class="bcp14">MAY</em> ignore the Range header field. However, origin servers and intermediate caches ought to support byte ranges when possible,
     905      <div id="rfc.figure.u.24"></div><pre class="inline"><span id="rfc.iref.g.23"></span>  <a href="#header.range" class="smpl">Range</a> = <a href="#rule.ranges-specifier" class="smpl">byte-ranges-specifier</a> / <a href="#header.range" class="smpl">other-ranges-specifier</a>
     906  <a href="#header.range" class="smpl">other-ranges-specifier</a> = <a href="#range.units" class="smpl">other-range-unit</a> "=" <a href="#header.range" class="smpl">other-range-set</a>
     907  <a href="#header.range" class="smpl">other-range-set</a> = 1*<a href="#imported.abnf" class="smpl">CHAR</a>
     908</pre><p id="rfc.section.6.4.p.3">A server <em class="bcp14">MAY</em> ignore the Range header field. However, origin servers and intermediate caches ought to support byte ranges when possible,
    910909         since Range supports efficient recovery from partially failed transfers and partial retrieval of large representations. A
    911910         server <em class="bcp14">MUST</em> ignore a Range header field received with a request method other than GET.
    912911      </p>
    913       <p id="rfc.section.5.4.1.p.4">An origin server <em class="bcp14">MUST</em> ignore a <a href="#range.retrieval.requests" class="smpl">Range</a> header field that contains a range unit it does not understand. A proxy <em class="bcp14">MAY</em> either discard a <a href="#range.retrieval.requests" class="smpl">Range</a> header field that contains a range unit it does not understand or pass it to the next inbound server when forwarding the request.
    914       </p>
    915       <p id="rfc.section.5.4.1.p.5">The Range header field is evaluated after evaluating the preconditions of <a href="#Part4" id="rfc.xref.Part4.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a> and only if the result of their evaluation is leading toward a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response. In other words, Range is ignored when a conditional GET would result in a <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a> response.
    916       </p>
    917       <p id="rfc.section.5.4.1.p.6">The If-Range header field (<a href="#header.if-range" id="rfc.xref.header.if-range.3" title="If-Range">Section&nbsp;5.3</a>) can be used as a precondition to applying the Range header field.
    918       </p>
    919       <p id="rfc.section.5.4.1.p.7">If all of the preconditions are true, the server supports the Range header field for the target resource, the specified range(s)
    920          are syntactically correct (as defined in <a href="#byte.ranges" title="Byte Ranges">Section&nbsp;2.1</a>), and at least one of the ranges has a non-empty intersection with the current selected representation extent, then the server <em class="bcp14">MAY</em> respond with a status code of <a href="#status.206" class="smpl">206 (Partial Content)</a> and a payload containing one or more partial representations that correspond to those requested, as defined in <a href="#range.response" title="Responses to a Range Request">Section&nbsp;4</a>.
    921       </p>
    922       <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a>&nbsp;<a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1>
    923       <h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a>&nbsp;<a id="range.unit.registry" href="#range.unit.registry">Range Unit Registry</a></h2>
    924       <p id="rfc.section.6.1.p.1">The HTTP Range Unit Registry defines the name space for the range unit names and refers to their corresponding specifications.
     912      <p id="rfc.section.6.4.p.4">An origin server <em class="bcp14">MUST</em> ignore a <a href="#header.range" class="smpl">Range</a> header field that contains a range unit it does not understand. A proxy <em class="bcp14">MAY</em> either discard a <a href="#header.range" class="smpl">Range</a> header field that contains a range unit it does not understand or pass it to the next inbound server when forwarding the request.
     913      </p>
     914      <p id="rfc.section.6.4.p.5">The Range header field is evaluated after evaluating the preconditions of <a href="#Part4" id="rfc.xref.Part4.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a> and only if the result of their evaluation is leading toward a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response. In other words, Range is ignored when a conditional GET would result in a <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a> response.
     915      </p>
     916      <p id="rfc.section.6.4.p.6">The If-Range header field (<a href="#header.if-range" id="rfc.xref.header.if-range.3" title="If-Range">Section&nbsp;6.3</a>) can be used as a precondition to applying the Range header field.
     917      </p>
     918      <p id="rfc.section.6.4.p.7">If all of the preconditions are true, the server supports the Range header field for the target resource, the specified range(s)
     919         are syntactically correct (as defined in <a href="#byte.ranges" title="Byte Ranges">Section&nbsp;2.1</a>), and at least one of the ranges has a non-empty intersection with the current selected representation extent, then the server <em class="bcp14">MAY</em> respond with a status code of <a href="#status.206" class="smpl">206 (Partial Content)</a> and a payload containing one or more partial representations that correspond to those requested, as defined in <a href="#range.response" title="Responses to a Range Request">Section&nbsp;5</a>.
     920      </p>
     921      <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a>&nbsp;<a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1>
     922      <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a>&nbsp;<a id="range.unit.registry" href="#range.unit.registry">Range Unit Registry</a></h2>
     923      <p id="rfc.section.7.1.p.1">The HTTP Range Unit Registry defines the name space for the range unit names and refers to their corresponding specifications.
    925924         The registry is maintained at &lt;<a href="http://www.iana.org/assignments/http-range-specifiers">http://www.iana.org/assignments/http-range-specifiers</a>&gt;.
    926925      </p>
    927       <h3 id="rfc.section.6.1.1"><a href="#rfc.section.6.1.1">6.1.1</a>&nbsp;<a id="range.unit.registry.procedure" href="#range.unit.registry.procedure">Procedure</a></h3>
    928       <p id="rfc.section.6.1.1.p.1">Registration of an HTTP Range Unit <em class="bcp14">MUST</em> include the following fields:
     926      <h3 id="rfc.section.7.1.1"><a href="#rfc.section.7.1.1">7.1.1</a>&nbsp;<a id="range.unit.registry.procedure" href="#range.unit.registry.procedure">Procedure</a></h3>
     927      <p id="rfc.section.7.1.1.p.1">Registration of an HTTP Range Unit <em class="bcp14">MUST</em> include the following fields:
    929928      </p>
    930929      <ul>
     
    933932         <li>Pointer to specification text</li>
    934933      </ul>
    935       <p id="rfc.section.6.1.1.p.2">Values to be added to this name space require IETF Review (see <a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>, <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a>).
    936       </p>
    937       <h3 id="rfc.section.6.1.2"><a href="#rfc.section.6.1.2">6.1.2</a>&nbsp;<a id="range.unit.registration" href="#range.unit.registration">Registrations</a></h3>
    938       <p id="rfc.section.6.1.2.p.1">The initial HTTP Range Unit Registry shall contain the registrations below:</p>
     934      <p id="rfc.section.7.1.1.p.2">Values to be added to this name space require IETF Review (see <a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>, <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a>).
     935      </p>
     936      <h3 id="rfc.section.7.1.2"><a href="#rfc.section.7.1.2">7.1.2</a>&nbsp;<a id="range.unit.registration" href="#range.unit.registration">Registrations</a></h3>
     937      <p id="rfc.section.7.1.2.p.1">The initial HTTP Range Unit Registry shall contain the registrations below:</p>
    939938      <div id="rfc.table.1">
    940939         <div id="iana.range.units.table"></div>
     
    956955                  <td class="left">none</td>
    957956                  <td class="left">reserved as keyword, indicating no ranges are supported</td>
    958                   <td class="left"><a href="#header.accept-ranges" id="rfc.xref.header.accept-ranges.1" title="Accept-Ranges">Section&nbsp;5.1</a></td>
     957                  <td class="left"><a href="#header.accept-ranges" id="rfc.xref.header.accept-ranges.1" title="Accept-Ranges">Section&nbsp;6.1</a></td>
    959958               </tr>
    960959            </tbody>
    961960         </table>
    962961      </div>
    963       <p id="rfc.section.6.1.2.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p>
    964       <h2 id="rfc.section.6.2"><a href="#rfc.section.6.2">6.2</a>&nbsp;<a id="status.code.registration" href="#status.code.registration">Status Code Registration</a></h2>
    965       <p id="rfc.section.6.2.p.1">The HTTP Status Code Registry located at &lt;<a href="http://www.iana.org/assignments/http-status-codes">http://www.iana.org/assignments/http-status-codes</a>&gt; shall be updated with the registrations below:
     962      <p id="rfc.section.7.1.2.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p>
     963      <h2 id="rfc.section.7.2"><a href="#rfc.section.7.2">7.2</a>&nbsp;<a id="status.code.registration" href="#status.code.registration">Status Code Registration</a></h2>
     964      <p id="rfc.section.7.2.p.1">The HTTP Status Code Registry located at &lt;<a href="http://www.iana.org/assignments/http-status-codes">http://www.iana.org/assignments/http-status-codes</a>&gt; shall be updated with the registrations below:
    966965      </p>
    967966      <div id="rfc.table.2">
     
    979978                  <td class="left">206</td>
    980979                  <td class="left">Partial Content</td>
    981                   <td class="left"> <a href="#status.206" id="rfc.xref.status.206.1" title="206 Partial Content">Section&nbsp;3.1</a>
     980                  <td class="left"> <a href="#status.206" id="rfc.xref.status.206.1" title="206 Partial Content">Section&nbsp;4.1</a>
    982981                  </td>
    983982               </tr>
     
    985984                  <td class="left">416</td>
    986985                  <td class="left">Range Not Satisfiable</td>
    987                   <td class="left"> <a href="#status.416" id="rfc.xref.status.416.1" title="416 Range Not Satisfiable">Section&nbsp;3.2</a>
     986                  <td class="left"> <a href="#status.416" id="rfc.xref.status.416.1" title="416 Range Not Satisfiable">Section&nbsp;4.2</a>
    988987                  </td>
    989988               </tr>
     
    991990         </table>
    992991      </div>
    993       <h2 id="rfc.section.6.3"><a href="#rfc.section.6.3">6.3</a>&nbsp;<a id="header.field.registration" href="#header.field.registration">Header Field Registration</a></h2>
    994       <p id="rfc.section.6.3.p.1">The Message Header Field Registry located at &lt;<a href="http://www.iana.org/assignments/message-headers/message-header-index.html">http://www.iana.org/assignments/message-headers/message-header-index.html</a>&gt; shall be updated with the permanent registrations below (see <a href="#BCP90" id="rfc.xref.BCP90.1"><cite title="Registration Procedures for Message Header Fields">[BCP90]</cite></a>):
     992      <h2 id="rfc.section.7.3"><a href="#rfc.section.7.3">7.3</a>&nbsp;<a id="header.field.registration" href="#header.field.registration">Header Field Registration</a></h2>
     993      <p id="rfc.section.7.3.p.1">The Message Header Field Registry located at &lt;<a href="http://www.iana.org/assignments/message-headers/message-header-index.html">http://www.iana.org/assignments/message-headers/message-header-index.html</a>&gt; shall be updated with the permanent registrations below (see <a href="#BCP90" id="rfc.xref.BCP90.1"><cite title="Registration Procedures for Message Header Fields">[BCP90]</cite></a>):
    995994      </p>
    996995      <div id="rfc.table.3">
     
    10101009                  <td class="left">http</td>
    10111010                  <td class="left">standard</td>
    1012                   <td class="left"> <a href="#header.accept-ranges" id="rfc.xref.header.accept-ranges.2" title="Accept-Ranges">Section&nbsp;5.1</a>
     1011                  <td class="left"> <a href="#header.accept-ranges" id="rfc.xref.header.accept-ranges.2" title="Accept-Ranges">Section&nbsp;6.1</a>
    10131012                  </td>
    10141013               </tr>
     
    10171016                  <td class="left">http</td>
    10181017                  <td class="left">standard</td>
    1019                   <td class="left"> <a href="#header.content-range" id="rfc.xref.header.content-range.4" title="Content-Range">Section&nbsp;5.2</a>
     1018                  <td class="left"> <a href="#header.content-range" id="rfc.xref.header.content-range.4" title="Content-Range">Section&nbsp;6.2</a>
    10201019                  </td>
    10211020               </tr>
     
    10241023                  <td class="left">http</td>
    10251024                  <td class="left">standard</td>
    1026                   <td class="left"> <a href="#header.if-range" id="rfc.xref.header.if-range.4" title="If-Range">Section&nbsp;5.3</a>
     1025                  <td class="left"> <a href="#header.if-range" id="rfc.xref.header.if-range.4" title="If-Range">Section&nbsp;6.3</a>
    10271026                  </td>
    10281027               </tr>
     
    10311030                  <td class="left">http</td>
    10321031                  <td class="left">standard</td>
    1033                   <td class="left"> <a href="#header.range" id="rfc.xref.header.range.4" title="Range">Section&nbsp;5.4</a>
     1032                  <td class="left"> <a href="#header.range" id="rfc.xref.header.range.4" title="Range">Section&nbsp;6.4</a>
    10341033                  </td>
    10351034               </tr>
     
    10371036         </table>
    10381037      </div>
    1039       <p id="rfc.section.6.3.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p>
    1040       <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a>&nbsp;<a id="security.considerations" href="#security.considerations">Security Considerations</a></h1>
    1041       <p id="rfc.section.7.p.1">This section is meant to inform developers, information providers, and users of known security concerns specific to the HTTP/1.1
     1038      <p id="rfc.section.7.3.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p>
     1039      <h1 id="rfc.section.8"><a href="#rfc.section.8">8.</a>&nbsp;<a id="security.considerations" href="#security.considerations">Security Considerations</a></h1>
     1040      <p id="rfc.section.8.p.1">This section is meant to inform developers, information providers, and users of known security concerns specific to the HTTP/1.1
    10421041         range request mechanisms. More general security considerations are addressed in HTTP messaging <a href="#Part1" id="rfc.xref.Part1.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a> and semantics <a href="#Part2" id="rfc.xref.Part2.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>.
    10431042      </p>
    1044       <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a>&nbsp;<a id="overlapping.ranges" href="#overlapping.ranges">Overlapping Ranges</a></h2>
    1045       <p id="rfc.section.7.1.p.1">Range requests containing overlapping ranges can lead to a situation where the server is sending far more data than the size
     1043      <h2 id="rfc.section.8.1"><a href="#rfc.section.8.1">8.1</a>&nbsp;<a id="overlapping.ranges" href="#overlapping.ranges">Overlapping Ranges</a></h2>
     1044      <p id="rfc.section.8.1.p.1">Range requests containing overlapping ranges can lead to a situation where the server is sending far more data than the size
    10461045         of the complete resource representation.
    10471046      </p>
    1048       <h1 id="rfc.section.8"><a href="#rfc.section.8">8.</a>&nbsp;<a id="acks" href="#acks">Acknowledgments</a></h1>
    1049       <p id="rfc.section.8.p.1">See <a href="p1-messaging.html#acks" title="Acknowledgments">Section 9</a> of <a href="#Part1" id="rfc.xref.Part1.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>.
    1050       </p>
    1051       <h1 id="rfc.references"><a id="rfc.section.9" href="#rfc.section.9">9.</a> References
     1047      <h1 id="rfc.section.9"><a href="#rfc.section.9">9.</a>&nbsp;<a id="acks" href="#acks">Acknowledgments</a></h1>
     1048      <p id="rfc.section.9.p.1">See <a href="p1-messaging.html#acks" title="Acknowledgments">Section 9</a> of <a href="#Part1" id="rfc.xref.Part1.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>.
     1049      </p>
     1050      <h1 id="rfc.references"><a id="rfc.section.10" href="#rfc.section.10">10.</a> References
    10521051      </h1>
    1053       <h2 id="rfc.references.1"><a href="#rfc.section.9.1" id="rfc.section.9.1">9.1</a> Normative References
     1052      <h2 id="rfc.references.1"><a href="#rfc.section.10.1" id="rfc.section.10.1">10.1</a> Normative References
    10541053      </h2>
    10551054      <table>             
     
    10901089         </tr>
    10911090      </table>
    1092       <h2 id="rfc.references.2"><a href="#rfc.section.9.2" id="rfc.section.9.2">9.2</a> Informative References
     1091      <h2 id="rfc.references.2"><a href="#rfc.section.10.2" id="rfc.section.10.2">10.2</a> Informative References
    10931092      </h2>
    10941093      <table>       
     
    12251224      </ol>
    12261225      <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a>&nbsp;<a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h1>
    1227       <p id="rfc.section.B.p.1">A weak validator cannot be used in a <a href="#status.206" class="smpl">206</a> response. (<a href="#status.206" id="rfc.xref.status.206.2" title="206 Partial Content">Section&nbsp;3.1</a>)
    1228       </p>
    1229       <p id="rfc.section.B.p.2">The Content-Range header field only has meaning when the status code explicitly defines its use. (<a href="#header.content-range" id="rfc.xref.header.content-range.5" title="Content-Range">Section&nbsp;5.2</a>)
     1226      <p id="rfc.section.B.p.1">A weak validator cannot be used in a <a href="#status.206" class="smpl">206</a> response. (<a href="#status.206" id="rfc.xref.status.206.2" title="206 Partial Content">Section&nbsp;4.1</a>)
     1227      </p>
     1228      <p id="rfc.section.B.p.2">The Content-Range header field only has meaning when the status code explicitly defines its use. (<a href="#header.content-range" id="rfc.xref.header.content-range.5" title="Content-Range">Section&nbsp;6.2</a>)
    12301229      </p>
    12311230      <p id="rfc.section.B.p.3">Servers are given more leeway in how they respond to a range request, in order to mitigate abuse by malicious (or just greedy)
     
    12341233      <p id="rfc.section.B.p.4">multipart/byteranges can consist of a single part. (<a href="#internet.media.type.multipart.byteranges" title="Internet Media Type multipart/byteranges">Appendix&nbsp;A</a>)
    12351234      </p>
    1236       <p id="rfc.section.B.p.5">This specification introduces a Range Specifier Registry. (<a href="#range.unit.registry" title="Range Unit Registry">Section&nbsp;6.1</a>)
     1235      <p id="rfc.section.B.p.5">This specification introduces a Range Specifier Registry. (<a href="#range.unit.registry" title="Range Unit Registry">Section&nbsp;7.1</a>)
    12371236      </p>
    12381237      <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a>&nbsp;<a id="imported.abnf" href="#imported.abnf">Imported ABNF</a></h1>
     
    12611260<a href="#imported.abnf" class="smpl">OWS</a> = &lt;OWS, defined in [Part1], Section 3.2.3&gt;
    12621261
    1263 <a href="#range.retrieval.requests" class="smpl">Range</a> = byte-ranges-specifier / other-ranges-specifier
     1262<a href="#header.range" class="smpl">Range</a> = byte-ranges-specifier / other-ranges-specifier
    12641263
    12651264<a href="#header.accept-ranges" class="smpl">acceptable-ranges</a> = ( *( "," OWS ) range-unit *( OWS "," [ OWS
     
    12871286<a href="#header.content-range" class="smpl">other-content-range</a> = other-range-unit SP other-range-resp
    12881287<a href="#header.content-range" class="smpl">other-range-resp</a> = *CHAR
    1289 <a href="#range.retrieval.requests" class="smpl">other-range-set</a> = 1*CHAR
     1288<a href="#header.range" class="smpl">other-range-set</a> = 1*CHAR
    12901289<a href="#range.units" class="smpl">other-range-unit</a> = token
    1291 <a href="#range.retrieval.requests" class="smpl">other-ranges-specifier</a> = other-range-unit "=" other-range-set
     1290<a href="#header.range" class="smpl">other-ranges-specifier</a> = other-range-unit "=" other-range-set
    12921291
    12931292<a href="#range.units" class="smpl">range-unit</a> = bytes-unit / other-range-unit
     
    13291328         <ul class="ind">
    13301329            <li><a id="rfc.index.2" href="#rfc.index.2"><b>2</b></a><ul>
    1331                   <li>206 Partial Content (status code)&nbsp;&nbsp;<a href="#rfc.iref.11"><b>3.1</b></a>, <a href="#rfc.xref.status.206.1">6.2</a>, <a href="#rfc.xref.status.206.2">B</a></li>
     1330                  <li>206 Partial Content (status code)&nbsp;&nbsp;<a href="#rfc.iref.11"><b>4.1</b></a>, <a href="#rfc.xref.status.206.1">7.2</a>, <a href="#rfc.xref.status.206.2">B</a></li>
    13321331               </ul>
    13331332            </li>
    13341333            <li><a id="rfc.index.4" href="#rfc.index.4"><b>4</b></a><ul>
    1335                   <li>416 Range Not Satisfiable (status code)&nbsp;&nbsp;<a href="#rfc.iref.11"><b>3.2</b></a>, <a href="#rfc.xref.status.416.1">6.2</a></li>
     1334                  <li>416 Range Not Satisfiable (status code)&nbsp;&nbsp;<a href="#rfc.iref.11"><b>4.2</b></a>, <a href="#rfc.xref.status.416.1">7.2</a></li>
    13361335               </ul>
    13371336            </li>
    13381337            <li><a id="rfc.index.A" href="#rfc.index.A"><b>A</b></a><ul>
    1339                   <li>Accept-Ranges header field&nbsp;&nbsp;<a href="#rfc.iref.a.1"><b>5.1</b></a>, <a href="#rfc.xref.header.accept-ranges.1">6.1.2</a>, <a href="#rfc.xref.header.accept-ranges.2">6.3</a></li>
     1338                  <li>Accept-Ranges header field&nbsp;&nbsp;<a href="#rfc.iref.a.1"><b>6.1</b></a>, <a href="#rfc.xref.header.accept-ranges.1">7.1.2</a>, <a href="#rfc.xref.header.accept-ranges.2">7.3</a></li>
    13401339               </ul>
    13411340            </li>
    13421341            <li><a id="rfc.index.B" href="#rfc.index.B"><b>B</b></a><ul>
    1343                   <li><em>BCP13</em>&nbsp;&nbsp;<a href="#BCP13"><b>9.2</b></a>, <a href="#rfc.xref.BCP13.1">A</a></li>
    1344                   <li><em>BCP90</em>&nbsp;&nbsp;<a href="#rfc.xref.BCP90.1">6.3</a>, <a href="#BCP90"><b>9.2</b></a></li>
     1342                  <li><em>BCP13</em>&nbsp;&nbsp;<a href="#BCP13"><b>10.2</b></a>, <a href="#rfc.xref.BCP13.1">A</a></li>
     1343                  <li><em>BCP90</em>&nbsp;&nbsp;<a href="#rfc.xref.BCP90.1">7.3</a>, <a href="#BCP90"><b>10.2</b></a></li>
    13451344               </ul>
    13461345            </li>
    13471346            <li><a id="rfc.index.C" href="#rfc.index.C"><b>C</b></a><ul>
    1348                   <li>Content-Range header field&nbsp;&nbsp;<a href="#rfc.xref.header.content-range.1">2</a>, <a href="#rfc.xref.header.content-range.2">3.1</a>, <a href="#rfc.xref.header.content-range.3">3.2</a>, <a href="#rfc.iref.c.1"><b>5.2</b></a>, <a href="#rfc.xref.header.content-range.4">6.3</a>, <a href="#rfc.xref.header.content-range.5">B</a></li>
     1347                  <li>Content-Range header field&nbsp;&nbsp;<a href="#rfc.xref.header.content-range.1">2</a>, <a href="#rfc.xref.header.content-range.2">4.1</a>, <a href="#rfc.xref.header.content-range.3">4.2</a>, <a href="#rfc.iref.c.1"><b>6.2</b></a>, <a href="#rfc.xref.header.content-range.4">7.3</a>, <a href="#rfc.xref.header.content-range.5">B</a></li>
    13491348               </ul>
    13501349            </li>
     
    13521351                  <li><tt>Grammar</tt>&nbsp;&nbsp;
    13531352                     <ul>
    1354                         <li><tt>Accept-Ranges</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.12"><b>5.1</b></a></li>
    1355                         <li><tt>acceptable-ranges</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.13"><b>5.1</b></a></li>
    1356                         <li><tt>byte-content-range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.15"><b>5.2</b></a></li>
    1357                         <li><tt>byte-range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.17"><b>5.2</b></a></li>
    1358                         <li><tt>byte-range-resp</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.16"><b>5.2</b></a></li>
     1353                        <li><tt>Accept-Ranges</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.12"><b>6.1</b></a></li>
     1354                        <li><tt>acceptable-ranges</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.13"><b>6.1</b></a></li>
     1355                        <li><tt>byte-content-range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.15"><b>6.2</b></a></li>
     1356                        <li><tt>byte-range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.17"><b>6.2</b></a></li>
     1357                        <li><tt>byte-range-resp</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.16"><b>6.2</b></a></li>
    13591358                        <li><tt>byte-range-set</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.6"><b>2.1</b></a></li>
    13601359                        <li><tt>byte-range-spec</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.7"><b>2.1</b></a></li>
    13611360                        <li><tt>byte-ranges-specifier</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.5"><b>2.1</b></a></li>
    13621361                        <li><tt>bytes-unit</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.2"><b>2</b></a></li>
    1363                         <li><tt>complete-length</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.21"><b>5.2</b></a></li>
    1364                         <li><tt>Content-Range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.14"><b>5.2</b></a></li>
     1362                        <li><tt>complete-length</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.21"><b>6.2</b></a></li>
     1363                        <li><tt>Content-Range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.14"><b>6.2</b></a></li>
    13651364                        <li><tt>first-byte-pos</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.8"><b>2.1</b></a></li>
    1366                         <li><tt>If-Range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.22"><b>5.3</b></a></li>
     1365                        <li><tt>If-Range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.22"><b>6.3</b></a></li>
    13671366                        <li><tt>last-byte-pos</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.9"><b>2.1</b></a></li>
    1368                         <li><tt>other-content-range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.19"><b>5.2</b></a></li>
    1369                         <li><tt>other-range-resp</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.20"><b>5.2</b></a></li>
     1367                        <li><tt>other-content-range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.19"><b>6.2</b></a></li>
     1368                        <li><tt>other-range-resp</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.20"><b>6.2</b></a></li>
    13701369                        <li><tt>other-range-unit</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.3"><b>2</b></a></li>
    1371                         <li><tt>Range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.23"><b>5.4.1</b></a></li>
     1370                        <li><tt>Range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.23"><b>6.4</b></a></li>
    13721371                        <li><tt>range-unit</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.1"><b>2</b></a></li>
    13731372                        <li><tt>ranges-specifier</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.4"><b>2.1</b></a></li>
    13741373                        <li><tt>suffix-byte-range-spec</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.10"><b>2.1</b></a></li>
    13751374                        <li><tt>suffix-length</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.11"><b>2.1</b></a></li>
    1376                         <li><tt>unsatisfied-range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.18"><b>5.2</b></a></li>
     1375                        <li><tt>unsatisfied-range</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.18"><b>6.2</b></a></li>
    13771376                     </ul>
    13781377                  </li>
     
    13801379            </li>
    13811380            <li><a id="rfc.index.I" href="#rfc.index.I"><b>I</b></a><ul>
    1382                   <li>If-Range header field&nbsp;&nbsp;<a href="#rfc.xref.header.if-range.1">3.1</a>, <a href="#rfc.xref.header.if-range.2">3.2</a>, <a href="#rfc.iref.i.1"><b>5.3</b></a>, <a href="#rfc.xref.header.if-range.3">5.4.1</a>, <a href="#rfc.xref.header.if-range.4">6.3</a></li>
     1381                  <li>If-Range header field&nbsp;&nbsp;<a href="#rfc.xref.header.if-range.1">4.1</a>, <a href="#rfc.xref.header.if-range.2">4.2</a>, <a href="#rfc.iref.i.1"><b>6.3</b></a>, <a href="#rfc.xref.header.if-range.3">6.4</a>, <a href="#rfc.xref.header.if-range.4">7.3</a></li>
    13831382               </ul>
    13841383            </li>
     
    13951394            </li>
    13961395            <li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul>
    1397                   <li><em>Part1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1.1</a>, <a href="#rfc.xref.Part1.2">1.2</a>, <a href="#rfc.xref.Part1.3">7</a>, <a href="#rfc.xref.Part1.4">8</a>, <a href="#Part1"><b>9.1</b></a>, <a href="#rfc.xref.Part1.5">C</a>, <a href="#rfc.xref.Part1.6">C</a>, <a href="#rfc.xref.Part1.7">C</a><ul>
     1396                  <li><em>Part1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1.1</a>, <a href="#rfc.xref.Part1.2">1.2</a>, <a href="#rfc.xref.Part1.3">8</a>, <a href="#rfc.xref.Part1.4">9</a>, <a href="#Part1"><b>10.1</b></a>, <a href="#rfc.xref.Part1.5">C</a>, <a href="#rfc.xref.Part1.6">C</a>, <a href="#rfc.xref.Part1.7">C</a><ul>
    13981397                        <li><em>Section 1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.2">1.2</a></li>
    13991398                        <li><em>Section 2.5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1.1</a></li>
    14001399                        <li><em>Section 3.2.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.6">C</a></li>
    14011400                        <li><em>Section 3.2.6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.7">C</a></li>
    1402                         <li><em>Section 9</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.4">8</a></li>
     1401                        <li><em>Section 9</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.4">9</a></li>
    14031402                     </ul>
    14041403                  </li>
    1405                   <li><em>Part2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">7</a>, <a href="#Part2"><b>9.1</b></a>, <a href="#rfc.xref.Part2.2">C</a><ul>
     1404                  <li><em>Part2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">8</a>, <a href="#Part2"><b>10.1</b></a>, <a href="#rfc.xref.Part2.2">C</a><ul>
    14061405                        <li><em>Section 7.1.1.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.2">C</a></li>
    14071406                     </ul>
    14081407                  </li>
    1409                   <li><em>Part4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.1">4.2</a>, <a href="#rfc.xref.Part4.2">4.2</a>, <a href="#rfc.xref.Part4.3">5.3</a>, <a href="#rfc.xref.Part4.4">5.3</a>, <a href="#rfc.xref.Part4.5">5.4.1</a>, <a href="#Part4"><b>9.1</b></a>, <a href="#rfc.xref.Part4.6">C</a><ul>
    1410                         <li><em>Section 2.2.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.2">4.2</a>, <a href="#rfc.xref.Part4.3">5.3</a>, <a href="#rfc.xref.Part4.4">5.3</a></li>
    1411                         <li><em>Section 2.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.1">4.2</a>, <a href="#rfc.xref.Part4.6">C</a></li>
     1408                  <li><em>Part4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.1">5.2</a>, <a href="#rfc.xref.Part4.2">5.2</a>, <a href="#rfc.xref.Part4.3">6.3</a>, <a href="#rfc.xref.Part4.4">6.3</a>, <a href="#rfc.xref.Part4.5">6.4</a>, <a href="#Part4"><b>10.1</b></a>, <a href="#rfc.xref.Part4.6">C</a><ul>
     1409                        <li><em>Section 2.2.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.2">5.2</a>, <a href="#rfc.xref.Part4.3">6.3</a>, <a href="#rfc.xref.Part4.4">6.3</a></li>
     1410                        <li><em>Section 2.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.1">5.2</a>, <a href="#rfc.xref.Part4.6">C</a></li>
    14121411                     </ul>
    14131412                  </li>
    1414                   <li><em>Part6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.1">3.1</a>, <a href="#Part6"><b>9.1</b></a><ul>
    1415                         <li><em>Section 4.1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.1">3.1</a></li>
     1413                  <li><em>Part6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.1">4.1</a>, <a href="#Part6"><b>10.1</b></a><ul>
     1414                        <li><em>Section 4.1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.1">4.1</a></li>
    14161415                     </ul>
    14171416                  </li>
     
    14191418            </li>
    14201419            <li><a id="rfc.index.R" href="#rfc.index.R"><b>R</b></a><ul>
    1421                   <li>Range header field&nbsp;&nbsp;<a href="#rfc.xref.header.range.1">2</a>, <a href="#rfc.xref.header.range.2">3.1</a>, <a href="#rfc.xref.header.range.3">3.2</a>, <a href="#rfc.iref.r.1"><b>5.4</b></a>, <a href="#rfc.xref.header.range.4">6.3</a></li>
    1422                   <li><em>RFC2046</em>&nbsp;&nbsp;<a href="#RFC2046"><b>9.1</b></a>, <a href="#rfc.xref.RFC2046.1">A</a>, <a href="#rfc.xref.RFC2046.2">A</a><ul>
     1420                  <li>Range header field&nbsp;&nbsp;<a href="#rfc.xref.header.range.1">2</a>, <a href="#rfc.xref.header.range.2">4.1</a>, <a href="#rfc.xref.header.range.3">4.2</a>, <a href="#rfc.iref.r.1"><b>6.4</b></a>, <a href="#rfc.xref.header.range.4">7.3</a></li>
     1421                  <li><em>RFC2046</em>&nbsp;&nbsp;<a href="#RFC2046"><b>10.1</b></a>, <a href="#rfc.xref.RFC2046.1">A</a>, <a href="#rfc.xref.RFC2046.2">A</a><ul>
    14231422                        <li><em>Section 5.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC2046.1">A</a></li>
    14241423                     </ul>
    14251424                  </li>
    1426                   <li><em>RFC2119</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC2119.1">1.1</a>, <a href="#RFC2119"><b>9.1</b></a></li>
    1427                   <li><em>RFC2616</em>&nbsp;&nbsp;<a href="#RFC2616"><b>9.2</b></a></li>
    1428                   <li><em>RFC5226</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5226.1">6.1.1</a>, <a href="#RFC5226"><b>9.2</b></a><ul>
    1429                         <li><em>Section 4.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5226.1">6.1.1</a></li>
     1425                  <li><em>RFC2119</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC2119.1">1.1</a>, <a href="#RFC2119"><b>10.1</b></a></li>
     1426                  <li><em>RFC2616</em>&nbsp;&nbsp;<a href="#RFC2616"><b>10.2</b></a></li>
     1427                  <li><em>RFC5226</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5226.1">7.1.1</a>, <a href="#RFC5226"><b>10.2</b></a><ul>
     1428                        <li><em>Section 4.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5226.1">7.1.1</a></li>
    14301429                     </ul>
    14311430                  </li>
    1432                   <li><em>RFC5234</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.1">1.2</a>, <a href="#RFC5234"><b>9.1</b></a>, <a href="#rfc.xref.RFC5234.2">C</a><ul>
     1431                  <li><em>RFC5234</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.1">1.2</a>, <a href="#RFC5234"><b>10.1</b></a>, <a href="#rfc.xref.RFC5234.2">C</a><ul>
    14331432                        <li><em>Appendix B.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.2">C</a></li>
    14341433                     </ul>
  • draft-ietf-httpbis/latest/p5-range.xml

    r2140 r2141  
    330330</section>
    331331
     332
     333<section title="Range Requests" anchor="range.requests">
     334</section>
     335
     336
    332337<section title="Status Code Definitions" anchor="status.code.definitions">
    333338<section title="206 Partial Content" anchor="status.206">
     
    742747<section title="Range" anchor="header.range">
    743748  <iref primary="true" item="Range header field" x:for-anchor=""/>
    744 
    745 <section title="Range Retrieval Requests" anchor="range.retrieval.requests">
    746749  <x:anchor-alias value="Range"/>
    747750  <x:anchor-alias value="other-ranges-specifier"/>
     
    793796   <xref target="range.response"/>.
    794797</t>
    795 </section>
    796798</section>
    797799</section>
Note: See TracChangeset for help on using the changeset viewer.