Changeset 1738


Ignore:
Timestamp:
Jul 8, 2012, 6:29:53 AM (7 years ago)
Author:
julian.reschke@…
Message:

Work-in-progress: hyperlink header field definitions(P5)

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

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p2-semantics.html

    r1737 r1738  
    980980      </p>
    981981      <p id="rfc.section.2.3.2.p.3">The semantics of the GET method change to a "conditional GET" if the request message includes an If-Modified-Since, If-Unmodified-Since,
    982          If-Match, If-None-Match, or If-Range header field. A conditional GET requests that the representation be transferred only
    983          under the circumstances described by the conditional header field(s). The conditional GET request is intended to reduce unnecessary
    984          network usage by allowing cached representations to be refreshed without requiring multiple requests or transferring data
    985          already held by the client.
    986       </p>
    987       <p id="rfc.section.2.3.2.p.4">The semantics of the GET method change to a "partial GET" if the request message includes a Range header field. A partial
    988          GET requests that only part of the representation be transferred, as described in <a href="p5-range.html#header.range" title="Range">Section 5.4</a> of <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>. The partial GET request is intended to reduce unnecessary network usage by allowing partially-retrieved representations
     982         If-Match, If-None-Match, or <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field (<a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>). A conditional GET requests that the representation be transferred only under the circumstances described by the conditional
     983         header field(s). The conditional GET request is intended to reduce unnecessary network usage by allowing cached representations
     984         to be refreshed without requiring multiple requests or transferring data already held by the client.
     985      </p>
     986      <p id="rfc.section.2.3.2.p.4">The semantics of the GET method change to a "partial GET" if the request message includes a <a href="p5-range.html#range.retrieval.requests" class="smpl">Range</a> header field (<a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>). A partial GET requests that only part of the representation be transferred, as described in <a href="p5-range.html#header.range" title="Range">Section 5.4</a> of <a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>. The partial GET request is intended to reduce unnecessary network usage by allowing partially-retrieved representations
    989987         to be completed without transferring data already held by the client.
    990988      </p>
     
    10841082         the related resources.
    10851083      </p>
    1086       <p id="rfc.section.2.3.5.p.10">An origin server <em class="bcp14">SHOULD</em> reject any PUT request that contains a Content-Range header field, since it might be misinterpreted as partial content (or
    1087          might be partial content that is being mistakenly PUT as a full representation). Partial content updates are possible by targeting
    1088          a separately identified resource with state that overlaps a portion of the larger resource, or by using a different method
    1089          that has been specifically defined for partial updates (for example, the PATCH method defined in <a href="#RFC5789" id="rfc.xref.RFC5789.1"><cite title="PATCH Method for HTTP">[RFC5789]</cite></a>).
     1084      <p id="rfc.section.2.3.5.p.10">An origin server <em class="bcp14">SHOULD</em> reject any PUT request that contains a <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> header field (<a href="p5-range.html#header.content-range" title="Content-Range">Section 5.2</a> of <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>), since it might be misinterpreted as partial content (or might be partial content that is being mistakenly PUT as a full
     1085         representation). Partial content updates are possible by targeting a separately identified resource with state that overlaps
     1086         a portion of the larger resource, or by using a different method that has been specifically defined for partial updates (for
     1087         example, the PATCH method defined in <a href="#RFC5789" id="rfc.xref.RFC5789.1"><cite title="PATCH Method for HTTP">[RFC5789]</cite></a>).
    10901088      </p>
    10911089      <p id="rfc.section.2.3.5.p.11">Responses to the PUT method are not cacheable. If a PUT request passes through a cache that has one or more stored responses
     
    12751273               <tr>
    12761274                  <td class="left">If-Match</td>
    1277                   <td class="left"><a href="p4-conditional.html#header.if-match" title="If-Match">Section 3.1</a> of <a href="#Part4" id="rfc.xref.Part4.1"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
     1275                  <td class="left"><a href="p4-conditional.html#header.if-match" title="If-Match">Section 3.1</a> of <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
    12781276               </tr>
    12791277               <tr>
    12801278                  <td class="left">If-Modified-Since</td>
    1281                   <td class="left"><a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 3.3</a> of <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
     1279                  <td class="left"><a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 3.3</a> of <a href="#Part4" id="rfc.xref.Part4.3"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
    12821280               </tr>
    12831281               <tr>
    12841282                  <td class="left">If-None-Match</td>
    1285                   <td class="left"><a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 3.2</a> of <a href="#Part4" id="rfc.xref.Part4.3"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
     1283                  <td class="left"><a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 3.2</a> of <a href="#Part4" id="rfc.xref.Part4.4"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
    12861284               </tr>
    12871285               <tr>
    12881286                  <td class="left">If-Range</td>
    1289                   <td class="left"><a href="p5-range.html#header.if-range" title="If-Range">Section 5.3</a> of <a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
     1287                  <td class="left"><a href="p5-range.html#header.if-range" title="If-Range">Section 5.3</a> of <a href="#Part5" id="rfc.xref.Part5.4"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
    12901288               </tr>
    12911289               <tr>
    12921290                  <td class="left">If-Unmodified-Since</td>
    1293                   <td class="left"><a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 3.4</a> of <a href="#Part4" id="rfc.xref.Part4.4"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
     1291                  <td class="left"><a href="p4-conditional.html#header.if-unmodified-since" title="If-Unmodified-Since">Section 3.4</a> of <a href="#Part4" id="rfc.xref.Part4.5"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
    12941292               </tr>
    12951293               <tr>
     
    13031301               <tr>
    13041302                  <td class="left">Range</td>
    1305                   <td class="left"><a href="p5-range.html#header.range" title="Range">Section 5.4</a> of <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
     1303                  <td class="left"><a href="p5-range.html#header.range" title="Range">Section 5.4</a> of <a href="#Part5" id="rfc.xref.Part5.5"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
    13061304               </tr>
    13071305               <tr>
     
    13351333               <tr>
    13361334                  <td class="left">Accept-Ranges</td>
    1337                   <td class="left"><a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 5.1</a> of <a href="#Part5" id="rfc.xref.Part5.4"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
     1335                  <td class="left"><a href="p5-range.html#header.accept-ranges" title="Accept-Ranges">Section 5.1</a> of <a href="#Part5" id="rfc.xref.Part5.6"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
    13381336               </tr>
    13391337               <tr>
     
    13511349               <tr>
    13521350                  <td class="left">ETag</td>
    1353                   <td class="left"><a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.5"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
     1351                  <td class="left"><a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.6"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
    13541352               </tr>
    13551353               <tr>
     
    14071405      </p>
    14081406      <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a>&nbsp;<a id="overview.of.status.codes" href="#overview.of.status.codes">Overview of Status Codes</a></h2>
    1409       <p id="rfc.section.4.1.p.1">The status codes listed below are defined in this specification, <a href="p4-conditional.html#status.code.definitions" title="Status Code Definitions">Section 4</a> of <a href="#Part4" id="rfc.xref.Part4.6"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p5-range.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part5" id="rfc.xref.Part5.5"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, and <a href="p7-auth.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part7" id="rfc.xref.Part7.5"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>. The reason phrases listed here are only recommendations — they can be replaced by local equivalents without affecting the
     1407      <p id="rfc.section.4.1.p.1">The status codes listed below are defined in this specification, <a href="p4-conditional.html#status.code.definitions" title="Status Code Definitions">Section 4</a> of <a href="#Part4" id="rfc.xref.Part4.7"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>, <a href="p5-range.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part5" id="rfc.xref.Part5.7"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>, and <a href="p7-auth.html#status.code.definitions" title="Status Code Definitions">Section 3</a> of <a href="#Part7" id="rfc.xref.Part7.5"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>. The reason phrases listed here are only recommendations — they can be replaced by local equivalents without affecting the
    14101408         protocol.
    14111409      </p>
     
    14631461                  <td class="left">206</td>
    14641462                  <td class="left">Partial Content</td>
    1465                   <td id="status.206" class="left"><a href="p5-range.html#status.206" title="206 Partial Content">Section 3.1</a> of <a href="#Part5" id="rfc.xref.Part5.6"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
     1463                  <td id="status.206" class="left"><a href="p5-range.html#status.206" title="206 Partial Content">Section 3.1</a> of <a href="#Part5" id="rfc.xref.Part5.8"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
    14661464               </tr>
    14671465               <tr>
     
    14881486                  <td class="left">304</td>
    14891487                  <td class="left">Not Modified</td>
    1490                   <td id="status.304" class="left"><a href="p4-conditional.html#status.304" title="304 Not Modified">Section 4.1</a> of <a href="#Part4" id="rfc.xref.Part4.7"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
     1488                  <td id="status.304" class="left"><a href="p4-conditional.html#status.304" title="304 Not Modified">Section 4.1</a> of <a href="#Part4" id="rfc.xref.Part4.8"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
    14911489               </tr>
    14921490               <tr>
     
    15631561                  <td class="left">412</td>
    15641562                  <td class="left">Precondition Failed</td>
    1565                   <td id="status.412" class="left"><a href="p4-conditional.html#status.412" title="412 Precondition Failed">Section 4.2</a> of <a href="#Part4" id="rfc.xref.Part4.8"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
     1563                  <td id="status.412" class="left"><a href="p4-conditional.html#status.412" title="412 Precondition Failed">Section 4.2</a> of <a href="#Part4" id="rfc.xref.Part4.9"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
    15661564               </tr>
    15671565               <tr>
     
    15831581                  <td class="left">416</td>
    15841582                  <td class="left">Requested range not satisfiable</td>
    1585                   <td id="status.416" class="left"><a href="p5-range.html#status.416" title="416 Requested Range Not Satisfiable">Section 3.2</a> of <a href="#Part5" id="rfc.xref.Part5.7"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
     1583                  <td id="status.416" class="left"><a href="p5-range.html#status.416" title="416 Requested Range Not Satisfiable">Section 3.2</a> of <a href="#Part5" id="rfc.xref.Part5.9"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
    15861584               </tr>
    15871585               <tr>
     
    17141712      </p>
    17151713      <p id="rfc.section.4.4.2.p.4">A 201 response <em class="bcp14">MAY</em> contain an ETag response header field indicating the current value of the entity-tag for the representation of the resource
    1716          identified by the Location header field or, in case the Location header field was omitted, by the Effective Request URI (see <a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.9"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>).
     1714         identified by the Location header field or, in case the Location header field was omitted, by the Effective Request URI (see <a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.10"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>).
    17171715      </p>
    17181716      <div id="rfc.iref.27"></div>
     
    17941792         <li>
    17951793            <p>Other kinds of redirection, such as to a cached result (status code <a href="p4-conditional.html#status.304" class="smpl">304
    1796                   (Not Modified)</a>, see <a href="p4-conditional.html#status.304" title="304 Not Modified">Section 4.1</a> of <a href="#Part4" id="rfc.xref.Part4.10"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>).
     1794                  (Not Modified)</a>, see <a href="p4-conditional.html#status.304" title="304 Not Modified">Section 4.1</a> of <a href="#Part4" id="rfc.xref.Part4.11"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>).
    17971795            </p>
    17981796         </li>
     
    23512349               <tr>
    23522350                  <td class="left">Content-Range</td>
    2353                   <td class="left"><a href="p5-range.html#header.content-range" title="Content-Range">Section 5.2</a> of <a href="#Part5" id="rfc.xref.Part5.8"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
     2351                  <td class="left"><a href="p5-range.html#header.content-range" title="Content-Range">Section 5.2</a> of <a href="#Part5" id="rfc.xref.Part5.10"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a></td>
    23542352               </tr>
    23552353            </tbody>
     
    24572455               <tr>
    24582456                  <td class="left">ETag</td>
    2459                   <td class="left"><a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.11"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
     2457                  <td class="left"><a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.12"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
    24602458               </tr>
    24612459               <tr>
    24622460                  <td class="left">Last-Modified</td>
    2463                   <td class="left"><a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 2.2</a> of <a href="#Part4" id="rfc.xref.Part4.12"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
     2461                  <td class="left"><a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 2.2</a> of <a href="#Part4" id="rfc.xref.Part4.13"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a></td>
    24642462               </tr>
    24652463            </tbody>
     
    39593957      <p id="rfc.section.C.p.1">Clarify definition of POST. (<a href="#POST" id="rfc.xref.POST.2" title="POST">Section&nbsp;2.3.4</a>)
    39603958      </p>
    3961       <p id="rfc.section.C.p.2">Remove requirement to handle all Content-* header fields; ban use of Content-Range with PUT. (<a href="#PUT" id="rfc.xref.PUT.2" title="PUT">Section&nbsp;2.3.5</a>)
     3959      <p id="rfc.section.C.p.2">Remove requirement to handle all Content-* header fields; ban use of <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> with PUT. (<a href="#PUT" id="rfc.xref.PUT.2" title="PUT">Section&nbsp;2.3.5</a>)
    39623960      </p>
    39633961      <p id="rfc.section.C.p.3">Take over definition of CONNECT method from <a href="#RFC2817" id="rfc.xref.RFC2817.2"><cite title="Upgrading to TLS Within HTTP/1.1">[RFC2817]</cite></a>. (<a href="#CONNECT" id="rfc.xref.CONNECT.2" title="CONNECT">Section&nbsp;2.3.8</a>)
     
    42044202      <p id="rfc.section.E.2.p.2">Other changes: </p>
    42054203      <ul>
    4206          <li>Move definitions of 304 and 412 condition codes to <a href="#Part4" id="rfc.xref.Part4.13"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>
     4204         <li>Move definitions of 304 and 412 condition codes to <a href="#Part4" id="rfc.xref.Part4.14"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>
    42074205         </li>
    42084206      </ul>
     
    50025000                     </ul>
    50035001                  </li>
    5004                   <li><em>Part4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.1">3.2</a>, <a href="#rfc.xref.Part4.2">3.2</a>, <a href="#rfc.xref.Part4.3">3.2</a>, <a href="#rfc.xref.Part4.4">3.2</a>, <a href="#rfc.xref.Part4.5">3.3</a>, <a href="#rfc.xref.Part4.6">4.1</a>, <a href="#rfc.xref.Part4.7">4.1</a>, <a href="#rfc.xref.Part4.8">4.1</a>, <a href="#rfc.xref.Part4.9">4.4.2</a>, <a href="#rfc.xref.Part4.10">4.5</a>, <a href="#rfc.xref.Part4.11">7.2</a>, <a href="#rfc.xref.Part4.12">7.2</a>, <a href="#Part4"><b>13.1</b></a>, <a href="#rfc.xref.Part4.13">E.2</a><ul>
    5005                         <li><em>Section 2.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.12">7.2</a></li>
    5006                         <li><em>Section 2.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.5">3.3</a>, <a href="#rfc.xref.Part4.9">4.4.2</a>, <a href="#rfc.xref.Part4.11">7.2</a></li>
    5007                         <li><em>Section 3.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.1">3.2</a></li>
    5008                         <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.3">3.2</a></li>
    5009                         <li><em>Section 3.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.2">3.2</a></li>
    5010                         <li><em>Section 3.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.4">3.2</a></li>
    5011                         <li><em>Section 4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.6">4.1</a></li>
    5012                         <li><em>Section 4.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.7">4.1</a>, <a href="#rfc.xref.Part4.10">4.5</a></li>
    5013                         <li><em>Section 4.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.8">4.1</a></li>
     5002                  <li><em>Part4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.1">2.3.2</a>, <a href="#rfc.xref.Part4.2">3.2</a>, <a href="#rfc.xref.Part4.3">3.2</a>, <a href="#rfc.xref.Part4.4">3.2</a>, <a href="#rfc.xref.Part4.5">3.2</a>, <a href="#rfc.xref.Part4.6">3.3</a>, <a href="#rfc.xref.Part4.7">4.1</a>, <a href="#rfc.xref.Part4.8">4.1</a>, <a href="#rfc.xref.Part4.9">4.1</a>, <a href="#rfc.xref.Part4.10">4.4.2</a>, <a href="#rfc.xref.Part4.11">4.5</a>, <a href="#rfc.xref.Part4.12">7.2</a>, <a href="#rfc.xref.Part4.13">7.2</a>, <a href="#Part4"><b>13.1</b></a>, <a href="#rfc.xref.Part4.14">E.2</a><ul>
     5003                        <li><em>Section 2.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.13">7.2</a></li>
     5004                        <li><em>Section 2.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.6">3.3</a>, <a href="#rfc.xref.Part4.10">4.4.2</a>, <a href="#rfc.xref.Part4.12">7.2</a></li>
     5005                        <li><em>Section 3.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.2">3.2</a></li>
     5006                        <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.4">3.2</a></li>
     5007                        <li><em>Section 3.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.3">3.2</a></li>
     5008                        <li><em>Section 3.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.5">3.2</a></li>
     5009                        <li><em>Section 4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.7">4.1</a></li>
     5010                        <li><em>Section 4.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.8">4.1</a>, <a href="#rfc.xref.Part4.11">4.5</a></li>
     5011                        <li><em>Section 4.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.9">4.1</a></li>
    50145012                     </ul>
    50155013                  </li>
    5016                   <li><em>Part5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.1">2.3.2</a>, <a href="#rfc.xref.Part5.2">3.2</a>, <a href="#rfc.xref.Part5.3">3.2</a>, <a href="#rfc.xref.Part5.4">3.3</a>, <a href="#rfc.xref.Part5.5">4.1</a>, <a href="#rfc.xref.Part5.6">4.1</a>, <a href="#rfc.xref.Part5.7">4.1</a>, <a href="#rfc.xref.Part5.8">6.1</a>, <a href="#Part5"><b>13.1</b></a><ul>
    5017                         <li><em>Section 3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.5">4.1</a></li>
    5018                         <li><em>Section 3.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.6">4.1</a></li>
    5019                         <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.7">4.1</a></li>
    5020                         <li><em>Section 5.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.4">3.3</a></li>
    5021                         <li><em>Section 5.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.8">6.1</a></li>
    5022                         <li><em>Section 5.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.2">3.2</a></li>
    5023                         <li><em>Section 5.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.1">2.3.2</a>, <a href="#rfc.xref.Part5.3">3.2</a></li>
     5014                  <li><em>Part5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.1">2.3.2</a>, <a href="#rfc.xref.Part5.2">2.3.2</a>, <a href="#rfc.xref.Part5.3">2.3.5</a>, <a href="#rfc.xref.Part5.4">3.2</a>, <a href="#rfc.xref.Part5.5">3.2</a>, <a href="#rfc.xref.Part5.6">3.3</a>, <a href="#rfc.xref.Part5.7">4.1</a>, <a href="#rfc.xref.Part5.8">4.1</a>, <a href="#rfc.xref.Part5.9">4.1</a>, <a href="#rfc.xref.Part5.10">6.1</a>, <a href="#Part5"><b>13.1</b></a><ul>
     5015                        <li><em>Section 3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.7">4.1</a></li>
     5016                        <li><em>Section 3.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.8">4.1</a></li>
     5017                        <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.9">4.1</a></li>
     5018                        <li><em>Section 5.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.6">3.3</a></li>
     5019                        <li><em>Section 5.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.3">2.3.5</a>, <a href="#rfc.xref.Part5.10">6.1</a></li>
     5020                        <li><em>Section 5.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.4">3.2</a></li>
     5021                        <li><em>Section 5.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.2">2.3.2</a>, <a href="#rfc.xref.Part5.5">3.2</a></li>
    50245022                     </ul>
    50255023                  </li>
  • draft-ietf-httpbis/latest/p2-semantics.xml

    r1737 r1738  
    581581   The semantics of the GET method change to a "conditional GET" if the
    582582   request message includes an If-Modified-Since, If-Unmodified-Since,
    583    If-Match, If-None-Match, or If-Range header field. A conditional GET
    584    requests that the representation be transferred only under the
    585    circumstances described by the conditional header field(s). The
    586    conditional GET request is intended to reduce unnecessary network
    587    usage by allowing cached representations to be refreshed without requiring
    588    multiple requests or transferring data already held by the client.
    589 </t>
    590 <t>
    591    The semantics of the GET method change to a "partial GET" if the
    592    request message includes a Range header field. A partial GET requests
    593    that only part of the representation be transferred, as described in &header-range;.
    594    The partial GET request is intended to reduce unnecessary
    595    network usage by allowing partially-retrieved representations to be
    596    completed without transferring data already held by the client.
     583   If-Match, If-None-Match, or <x:ref>If-Range</x:ref> header field
     584   (<xref target="Part4"/>). A conditional GET requests that the representation
     585   be transferred only under the circumstances described by the conditional
     586   header field(s). The conditional GET request is intended to reduce
     587   unnecessary network usage by allowing cached representations to be refreshed
     588   without requiring multiple requests or transferring data already held by the
     589   client.
     590</t>
     591<t>
     592   The semantics of the GET method change to a "partial GET" if the request
     593   message includes a <x:ref>Range</x:ref> header field (<xref target="Part5"/>).
     594   A partial GET requests that only part of the representation be transferred,
     595   as described in &header-range;. The partial GET request is intended to reduce
     596   unnecessary network usage by allowing partially-retrieved representations to
     597   be completed without transferring data already held by the client.
    597598</t>
    598599<t>
     
    803804<t>
    804805   An origin server &SHOULD; reject any PUT request that contains a
    805    Content-Range header field, since it might be misinterpreted as
    806    partial content (or might be partial content that is being mistakenly
    807    PUT as a full representation).  Partial content updates are
    808    possible by targeting a separately identified resource with state
    809    that overlaps a portion of the larger resource, or by using a
     806   <x:ref>Content-Range</x:ref> header field (&header-content-range;), since
     807   it might be misinterpreted as partial content (or might be partial content
     808   that is being mistakenly PUT as a full representation).  Partial content
     809   updates are possible by targeting a separately identified resource with
     810   state that overlaps a portion of the larger resource, or by using a
    810811   different method that has been specifically defined for partial
    811812   updates (for example, the PATCH method defined in
     
    46724673    <x:defines>206</x:defines>
    46734674    <x:defines>206 (Partial Content)</x:defines>
     4675    <x:defines>Content-Range</x:defines>
     4676    <x:defines>If-Range</x:defines>
     4677    <x:defines>Range</x:defines>
    46744678  </x:source>
    46754679</reference>
     
    54585462<t>
    54595463  Remove requirement to handle all Content-* header fields; ban use of
    5460   Content-Range with PUT.
     5464  <x:ref>Content-Range</x:ref> with PUT.
    54615465  (<xref target="PUT"/>)
    54625466</t>
  • draft-ietf-httpbis/latest/p4-conditional.html

    r1737 r1738  
    770770      <ul>
    771771         <li>The validator is about to be used by a client in an If-Modified-Since, If-Unmodified-Since header field, because the client
    772             has a cache entry, or If-Range for the associated representation, and
     772            has a cache entry, or <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> for the associated representation, and
    773773         </li>
    774774         <li>That cache entry includes a Date value, which gives the time when the origin server sent the original response, and</li>
     
    954954      </ul>
    955955      <p id="rfc.section.2.4.p.5">An HTTP/1.1 origin server, upon receiving a conditional request that includes both a Last-Modified date (e.g., in an If-Modified-Since
    956          or If-Unmodified-Since header field) and one or more entity-tags (e.g., in an If-Match, If-None-Match, or If-Range header
    957          field) as cache validators, <em class="bcp14">MUST NOT</em> return a response status code of <a href="#status.304" class="smpl">304 (Not Modified)</a> unless doing so is consistent with all of the conditional header fields in the request.
     956         or If-Unmodified-Since header field) and one or more entity-tags (e.g., in an If-Match, If-None-Match, or <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field) as cache validators, <em class="bcp14">MUST NOT</em> return a response status code of <a href="#status.304" class="smpl">304 (Not Modified)</a> unless doing so is consistent with all of the conditional header fields in the request.
    958957      </p>
    959958      <p id="rfc.section.2.4.p.6">An HTTP/1.1 caching proxy, upon receiving a conditional request that includes both a Last-Modified date and one or more entity-tags
     
    10421041</pre><p id="rfc.section.3.3.p.3">An example of the field is:</p>
    10431042      <div id="rfc.figure.u.14"></div><pre class="text">  If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
    1044 </pre><p id="rfc.section.3.3.p.5">A GET method with an If-Modified-Since header field and no Range header field requests that the selected representation be
    1045          transferred only if it has been modified since the date given by the If-Modified-Since header field. The algorithm for determining
    1046          this includes the following cases:
     1043</pre><p id="rfc.section.3.3.p.5">A GET method with an If-Modified-Since header field and no <a href="p5-range.html#range.retrieval.requests" class="smpl">Range</a> header field requests that the selected representation be transferred only if it has been modified since the date given by
     1044         the If-Modified-Since header field. The algorithm for determining this includes the following cases:
    10471045      </p>
    10481046      <ol>
     
    10581056      <p id="rfc.section.3.3.p.6">The purpose of this feature is to allow efficient updates of cached information with a minimum amount of transaction overhead. </p>
    10591057      <ul class="empty">
    1060          <li> <b>Note:</b> The Range header field modifies the meaning of If-Modified-Since; see <a href="p5-range.html#header.range" title="Range">Section 5.4</a> of <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a> for full details.
     1058         <li> <b>Note:</b> The <a href="p5-range.html#range.retrieval.requests" class="smpl">Range</a> header field modifies the meaning of If-Modified-Since; see <a href="p5-range.html#header.range" title="Range">Section 5.4</a> of <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a> for full details.
    10611059         </li>
    10621060         <li> <b>Note:</b> If-Modified-Since times are interpreted by the server, whose clock might not be synchronized with the client.
     
    10951093      </p>
    10961094      <h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5</a>&nbsp;<a id="header.if-range" href="#header.if-range">If-Range</a></h2>
    1097       <p id="rfc.section.3.5.p.1">The If-Range header field provides a special conditional request mechanism that is similar to If-Match and If-Unmodified-Since
     1095      <p id="rfc.section.3.5.p.1">The "If-Range" header field provides a special conditional request mechanism that is similar to If-Match and If-Unmodified-Since
    10981096         but specific to HTTP range requests. If-Range is defined in <a href="p5-range.html#header.if-range" title="If-Range">Section 5.3</a> of <a href="#Part5" id="rfc.xref.Part5.2"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>.
    10991097      </p>
  • draft-ietf-httpbis/latest/p4-conditional.xml

    r1737 r1738  
    424424     <t>The validator is about to be used by a client in an If-Modified-Since,
    425425        If-Unmodified-Since header field, because the client has a cache entry,
    426         or If-Range for the associated representation, and</t>
     426        or <x:ref>If-Range</x:ref> for the associated representation, and</t>
    427427     <t>That cache entry includes a Date value, which gives the time
    428428        when the origin server sent the original response, and</t>
     
    696696   includes both a Last-Modified date (e.g., in an If-Modified-Since or
    697697   If-Unmodified-Since header field) and one or more entity-tags (e.g.,
    698    in an If-Match, If-None-Match, or If-Range header field) as cache
    699    validators, &MUST-NOT; return a response status code of <x:ref>304 (Not Modified)</x:ref>
    700    unless doing so is consistent with all of the conditional header
    701    fields in the request.
     698   in an If-Match, If-None-Match, or <x:ref>If-Range</x:ref> header field) as
     699   cache validators, &MUST-NOT; return a response status code of
     700   <x:ref>304 (Not Modified)</x:ref> unless doing so is consistent with all of
     701   the conditional header fields in the request.
    702702</t>
    703703<t>
     
    879879</artwork></figure>
    880880<t>
    881    A GET method with an If-Modified-Since header field and no Range header
    882    field requests that the selected representation be transferred only if
     881   A GET method with an If-Modified-Since header field and no <x:ref>Range</x:ref>
     882   header field requests that the selected representation be transferred only if
    883883   it has been modified since the date given by the If-Modified-Since
    884884   header field.
     
    904904   information with a minimum amount of transaction overhead.
    905905  <list><t>
    906       &Note; The Range header field modifies the meaning of If-Modified-Since;
    907       see &header-range; for full details.
     906      &Note; The <x:ref>Range</x:ref> header field modifies the meaning of
     907      If-Modified-Since; see &header-range; for full details.
    908908    </t><t>
    909909      &Note; If-Modified-Since times are interpreted by the server, whose
     
    983983<section title="If-Range" anchor="header.if-range">
    984984<t>
    985    The If-Range header field provides a special conditional request
     985   The "If-Range" header field provides a special conditional request
    986986   mechanism that is similar to If-Match and If-Unmodified-Since but
    987987   specific to HTTP range requests. If-Range is defined in &header-if-range;.
     
    12241224  </front>
    12251225  <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-p5-range-&ID-VERSION;"/>
    1226   <x:source href="p5-range.xml" basename="p5-range"/>
     1226  <x:source href="p5-range.xml" basename="p5-range">
     1227    <x:defines>If-Range</x:defines>
     1228    <x:defines>Range</x:defines>
     1229  </x:source>
    12271230</reference>
    12281231
  • draft-ietf-httpbis/latest/p5-range.html

    r1737 r1738  
    706706</pre><h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a>&nbsp;<a id="range.units" href="#range.units">Range Units</a></h1>
    707707      <p id="rfc.section.2.p.1">HTTP/1.1 allows a client to request that only part (a range) of the representation be included within the response. HTTP/1.1
    708          uses range units in the Range (<a href="#header.range" id="rfc.xref.header.range.1" title="Range">Section&nbsp;5.4</a>) and Content-Range (<a href="#header.content-range" id="rfc.xref.header.content-range.1" title="Content-Range">Section&nbsp;5.2</a>) header fields. A representation can be broken down into subranges according to various structural units.
     708         uses range units 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. A representation can be broken down into subranges according to various structural units.
    709709      </p>
    710710      <div id="rfc.figure.u.3"></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>
     
    714714         unit defined by HTTP/1.1 is "bytes". Additional specifiers can be defined as described in <a href="#range.specifier.registry" title="Range Specifier Registry">Section&nbsp;2.1</a>.
    715715      </p>
    716       <p id="rfc.section.2.p.4">If a range unit is not understood in a request, a server <em class="bcp14">MUST</em> ignore the whole Range header field (<a href="#header.range" id="rfc.xref.header.range.2" title="Range">Section&nbsp;5.4</a>). If a range unit is not understood in a response, an intermediary <em class="bcp14">SHOULD</em> pass the response to the client; a client <em class="bcp14">MUST</em> fail.
     716      <p id="rfc.section.2.p.4">If a range unit is not understood in a request, a server <em class="bcp14">MUST</em> ignore the whole <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>). If a range unit is not understood in a response, an intermediary <em class="bcp14">SHOULD</em> pass the response to the client; a client <em class="bcp14">MUST</em> fail.
    717717      </p>
    718718      <h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a>&nbsp;<a id="range.specifier.registry" href="#range.specifier.registry">Range Specifier Registry</a></h2>
     
    733733      <div id="rfc.iref.s.1"></div>
    734734      <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>
    735       <p id="rfc.section.3.1.p.1">The server has fulfilled the partial GET request for the resource. The request <em class="bcp14">MUST</em> have included a Range header field (<a href="#header.range" id="rfc.xref.header.range.3" title="Range">Section&nbsp;5.4</a>) indicating the desired range, and <em class="bcp14">MAY</em> have included an If-Range 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.
     735      <p id="rfc.section.3.1.p.1">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.3" 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.
    736736      </p>
    737737      <p id="rfc.section.3.1.p.2">The response <em class="bcp14">MUST</em> include the following header fields:
    738738      </p>
    739739      <ul>
    740          <li>Either a Content-Range 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 Content-Type including Content-Range fields
     740         <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 Content-Type including Content-Range fields
    741741            for each part. If a Content-Length 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.
    742742         </li>
     
    745745         </li>
    746746      </ul>
    747       <p id="rfc.section.3.1.p.3">If a 206 is sent in response to a request with an If-Range header field, it <em class="bcp14">SHOULD NOT</em> include other representation header fields. Otherwise, the response <em class="bcp14">MUST</em> include all of the representation header fields that would have been returned with a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response to the same request.
     747      <p id="rfc.section.3.1.p.3">If a 206 is sent in response to a request with an <a href="#header.if-range" class="smpl">If-Range</a> header field, it <em class="bcp14">SHOULD NOT</em> include other representation header fields. Otherwise, the response <em class="bcp14">MUST</em> include all of the representation header fields that would have been returned with a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response to the same request.
    748748      </p>
    749749      <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 2.3.1.1</a> of <a href="#Part6" id="rfc.xref.Part6.1"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) to determine freshness for 206 responses.
     
    752752      <div id="rfc.iref.s.2"></div>
    753753      <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a>&nbsp;<a id="status.416" href="#status.416">416 Requested Range Not Satisfiable</a></h2>
    754       <p id="rfc.section.3.2.p.1">A server <em class="bcp14">SHOULD</em> return a response with this status code if a request included a Range header field (<a href="#header.range" id="rfc.xref.header.range.4" title="Range">Section&nbsp;5.4</a>), and none of the ranges-specifier values in this field overlap the current extent of the selected resource, and the request
    755          did not include an If-Range 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
     754      <p id="rfc.section.3.2.p.1">A server <em class="bcp14">SHOULD</em> return a response with this status code if a request included a <a href="#range.retrieval.requests" class="smpl">Range</a> header field (<a href="#header.range" id="rfc.xref.header.range.4" title="Range">Section&nbsp;5.4</a>), and none of the ranges-specifier values in this field overlap the current extent of the selected resource, and the request
     755         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
    756756         length of the selected resource.)
    757757      </p>
    758       <p id="rfc.section.3.2.p.2">When this status code is returned for a byte-range request, the response <em class="bcp14">SHOULD</em> include a Content-Range header field specifying the current length of the representation (see <a href="#header.content-range" id="rfc.xref.header.content-range.3" title="Content-Range">Section&nbsp;5.2</a>). This response <em class="bcp14">MUST NOT</em> use the multipart/byteranges content-type. For example,
     758      <p id="rfc.section.3.2.p.2">When this status code is returned for a byte-range request, the response <em class="bcp14">SHOULD</em> include a <a href="#header.content-range" class="smpl">Content-Range</a> header field specifying the current length of the representation (see <a href="#header.content-range" id="rfc.xref.header.content-range.3" title="Content-Range">Section&nbsp;5.2</a>). This response <em class="bcp14">MUST NOT</em> use the multipart/byteranges content-type. For example,
    759759      </p>
    760760      <div id="rfc.figure.u.4"></div><pre class="text">HTTP/1.1 416 Requested Range Not Satisfiable
     
    764764</pre><div class="note" id="rfc.section.3.2.p.4">
    765765         <p> <b>Note:</b> Clients cannot depend on servers to send a <a href="#status.416" class="smpl">416 (Requested
    766                Range Not Satisfiable)</a> response instead of a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response for an unsatisfiable Range header field, since not all servers implement this header field.
     766               Range Not 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.
    767767         </p>
    768768      </div>
     
    772772      </h2>
    773773      <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
    774          a request for a set of ranges that overlap without any holes), this content is transmitted with a Content-Range header field,
    775          and a Content-Length header field showing the number of bytes actually transferred. For example,
     774         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 Content-Length header field showing the number of bytes actually transferred. For example,
    776775      </p>
    777776      <div id="rfc.figure.u.5"></div><pre class="text">HTTP/1.1 206 Partial Content
     
    806805      <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
    807806         stored responses are 206 responses, then the stored response with the most header fields is used as the source of header fields
    808          for the combined response, except that the client <em class="bcp14">MUST</em> use other header fields provided in the new response, aside from Content-Range, to replace all instances of the corresponding
    809          header fields in the stored response.
     807         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.
    810808      </p>
    811809      <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
    812          responses. If the union consists of the entire range of the representation, then the combined response <em class="bcp14">MUST</em> be recorded as a complete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response with a Content-Length header field that reflects the complete length. Otherwise, the combined response(s) <em class="bcp14">MUST</em> include a Content-Range header field describing the included range(s) and be recorded as incomplete. If the union consists
    813          of a discontinuous range of the representation, then the client <em class="bcp14">MAY</em> store it as either a multipart range response or as multiple <a href="#status.206" class="smpl">206</a> responses with one continuous range each.
     810         responses. If the union consists of the entire range of the representation, then the combined response <em class="bcp14">MUST</em> be recorded as a complete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response with a Content-Length header field that reflects the complete length. Otherwise, the combined response(s) <em class="bcp14">MUST</em> include a <a href="#header.content-range" class="smpl">Content-Range</a> header field describing the included range(s) and be recorded as incomplete. If the union consists of a discontinuous range
     811         of the representation, then the client <em class="bcp14">MAY</em> store it as either a multipart range response or as multiple <a href="#status.206" class="smpl">206</a> responses with one continuous range each.
    814812      </p>
    815813      <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>
     
    884882      </ul>
    885883      <p id="rfc.section.5.2.p.10">If the server ignores a byte-range-spec (for example if it is syntactically invalid, or if it might be seen as a denial-of-service
    886          attack), the server <em class="bcp14">SHOULD</em> treat the request as if the invalid Range header field did not exist. (Normally, this means return a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response containing the full representation).
     884         attack), the server <em class="bcp14">SHOULD</em> treat the request as if the invalid <a href="#range.retrieval.requests" class="smpl">Range</a> header field did not exist. (Normally, this means return a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response containing the full representation).
    887885      </p>
    888886      <div id="rfc.iref.i.1"></div>
     
    890888      <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>
    891889      <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
    892          could use the Range header field with a conditional GET (using either or both of If-Unmodified-Since and If-Match.) However,
    893          if the condition fails because the representation has been modified, the client would then have to make a second request to
    894          obtain the entire current representation.
     890         could use the <a href="#range.retrieval.requests" class="smpl">Range</a> header field with a conditional GET (using either or both of If-Unmodified-Since and If-Match.) However, if the condition
     891         fails because the representation has been modified, the client would then have to make a second request to obtain the entire
     892         current representation.
    895893      </p>
    896894      <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
     
    11961194         </p>
    11971195      </div>
    1198       <p id="rfc.section.A.p.3">The multipart/byteranges media type includes one or more parts, each with its own Content-Type and Content-Range fields. The
    1199          required boundary parameter specifies the boundary string used to separate each body-part.
     1196      <p id="rfc.section.A.p.3">The multipart/byteranges media type includes one or more parts, each with its own Content-Type and <a href="#header.content-range" class="smpl">Content-Range</a> fields. The required boundary parameter specifies the boundary string used to separate each body-part.
    12001197      </p>
    12011198      <p id="rfc.section.A.p.4"> </p>
  • draft-ietf-httpbis/latest/p5-range.xml

    r1737 r1738  
    261261   HTTP/1.1 allows a client to request that only part (a range) of the
    262262   representation be included within the response. HTTP/1.1 uses range
    263    units in the Range (<xref target="header.range"/>) and Content-Range (<xref target="header.content-range"/>)
     263   units in the <x:ref>Range</x:ref> (<xref target="header.range"/>) and
     264   <x:ref>Content-Range</x:ref> (<xref target="header.content-range"/>)
    264265   header fields. A representation can be broken down into subranges according
    265266   to various structural units.
     
    278279<t>
    279280  If a range unit is not understood in a request, a server &MUST; ignore
    280   the whole Range header field (<xref target="header.range"/>).
     281  the whole <x:ref>Range</x:ref> header field (<xref target="header.range"/>).
    281282  If a range unit is not understood in a response, an intermediary
    282283  &SHOULD; pass the response to the client; a client &MUST; fail.
     
    316317<t>
    317318   The server has fulfilled the partial GET request for the resource.
    318    The request &MUST; have included a Range header field (<xref target="header.range"/>)
    319    indicating the desired range, and &MAY; have included an If-Range
    320    header field (<xref target="header.if-range"/>) to make the request conditional.
     319   The request &MUST; have included a <x:ref>Range</x:ref> header field
     320   (<xref target="header.range"/>) indicating the desired range, and &MAY; have
     321   included an <x:ref>If-Range</x:ref> header field
     322   (<xref target="header.if-range"/>) to make the request conditional.
    321323</t>
    322324<t>
     
    324326  <list style="symbols">
    325327    <t>
    326         Either a Content-Range header field (<xref target="header.content-range"/>) indicating
     328        Either a <x:ref>Content-Range</x:ref> header field
     329        (<xref target="header.content-range"/>) indicating
    327330        the range included with this response, or a multipart/byteranges
    328331        Content-Type including Content-Range fields for each part. If a
     
    342345</t>
    343346<t>
    344    If a 206 is sent in response to a request with an If-Range header field, it
    345    &SHOULD-NOT; include other representation header fields. Otherwise, the response
    346    &MUST; include all of the representation header fields that would have been returned
    347    with a <x:ref>200 (OK)</x:ref> response to the same request.
     347   If a 206 is sent in response to a request with an <x:ref>If-Range</x:ref>
     348   header field, it &SHOULD-NOT; include other representation header fields.
     349   Otherwise, the response &MUST; include all of the representation header
     350   fields that would have been returned with a <x:ref>200 (OK)</x:ref> response
     351   to the same request.
    348352</t>
    349353<t>
     
    359363<t>
    360364   A server &SHOULD; return a response with this status code if a request
    361    included a Range header field (<xref target="header.range"/>), and none of
    362    the ranges-specifier values in this field overlap the current extent
    363    of the selected resource, and the request did not include an If-Range
    364    header field (<xref target="header.if-range"/>). (For byte-ranges,
    365    this means that the first-byte-pos of all of the byte-range-spec values were
    366    greater than the current length of the selected resource.)
     365   included a <x:ref>Range</x:ref> header field (<xref target="header.range"/>),
     366   and none of the ranges-specifier values in this field overlap the current
     367   extent of the selected resource, and the request did not include an
     368   <x:ref>If-Range</x:ref> header field (<xref target="header.if-range"/>).
     369   (For byte-ranges, this means that the first-byte-pos of all of the
     370   byte-range-spec values were greater than the current length of the selected
     371   resource.)
    367372</t>
    368373<t>
    369374   When this status code is returned for a byte-range request, the
    370    response &SHOULD; include a Content-Range header field
     375   response &SHOULD; include a <x:ref>Content-Range</x:ref> header field
    371376   specifying the current length of the representation (see <xref target="header.content-range"/>).
    372377   This response &MUST-NOT; use the multipart/byteranges content-type. For example,
     
    382387    &Note; Clients cannot depend on servers to send a <x:ref>416 (Requested
    383388    Range Not Satisfiable)</x:ref> response instead of a <x:ref>200 (OK)</x:ref>
    384     response for an unsatisfiable Range header field, since not all servers
    385     implement this header field.
     389    response for an unsatisfiable <x:ref>Range</x:ref> header field, since not
     390    all servers implement this header field.
    386391  </t>
    387392</x:note>
     
    395400   example, a response to a request for a single range, or to a request
    396401   for a set of ranges that overlap without any holes), this content is
    397    transmitted with a Content-Range header field, and a Content-Length header
    398    field showing the number of bytes actually transferred. For example,
     402   transmitted with a <x:ref>Content-Range</x:ref> header field, and a
     403   Content-Length header field showing the number of bytes actually transferred.
     404   For example,
    399405</t>
    400406<figure><artwork type="message/http; msgtype=&#34;response&#34;" x:indent-with="  ">
     
    466472   header fields for the combined response, except that the client &MUST;
    467473   use other header fields provided in the new response, aside from
    468    Content-Range, to replace all instances of the corresponding header
    469    fields in the stored response.
     474   <x:ref>Content-Range</x:ref>, to replace all instances of the corresponding
     475   header fields in the stored response.
    470476</t>
    471477<t>
     
    475481   combined response &MUST; be recorded as a complete <x:ref>200 (OK)</x:ref> response
    476482   with a Content-Length header field that reflects the complete length.
    477    Otherwise, the combined response(s) &MUST; include a Content-Range
     483   Otherwise, the combined response(s) &MUST; include a <x:ref>Content-Range</x:ref>
    478484   header field describing the included range(s) and be recorded as
    479485   incomplete.  If the union consists of a discontinuous range of the
     
    626632   If the server ignores a byte-range-spec (for example if it is
    627633   syntactically invalid, or if it might be seen as a denial-of-service
    628    attack), the server &SHOULD; treat the request as if the invalid Range
     634   attack), the server &SHOULD; treat the request as if the invalid <x:ref>Range</x:ref>
    629635   header field did not exist. (Normally, this means return a <x:ref>200 (OK)</x:ref>
    630636   response containing the full representation).
     
    638644<t>
    639645   If a client has a partial copy of a representation and wishes
    640    to have an up-to-date copy of the entire representation, it
    641    could use the Range header field with a conditional GET (using
     646   to have an up-to-date copy of the entire representation, it could use the
     647   <x:ref>Range</x:ref> header field with a conditional GET (using
    642648   either or both of If-Unmodified-Since and If-Match.) However, if the
    643649   condition fails because the representation has been modified, the client
     
    12441250<t>
    12451251   The multipart/byteranges media type includes one or more parts, each
    1246    with its own Content-Type and Content-Range fields. The required
    1247    boundary parameter specifies the boundary string used to separate
     1252   with its own Content-Type and <x:ref>Content-Range</x:ref> fields. The
     1253   required boundary parameter specifies the boundary string used to separate
    12481254   each body-part.
    12491255</t>
  • draft-ietf-httpbis/latest/p6-cache.html

    r1737 r1738  
    876876         time, as such responses are not usually useful to store. However, caches are not prohibited from storing such responses.
    877877      </p>
    878       <p id="rfc.section.2.1.p.5">A response message is considered complete when all of the octets indicated by the message framing (<a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>) are received prior to the connection being closed. If the request is GET, the response status is <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a>, and the entire response header block has been received, a cache <em class="bcp14">MAY</em> store an incomplete response message body if the cache entry is recorded as incomplete. Likewise, a <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a> response <em class="bcp14">MAY</em> be stored as if it were an incomplete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> cache entry. However, a cache <em class="bcp14">MUST NOT</em> store incomplete or partial content responses if it does not support the Range and Content-Range header fields or if it does
    879          not understand the range units used in those fields.
     878      <p id="rfc.section.2.1.p.5">A response message is considered complete when all of the octets indicated by the message framing (<a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>) are received prior to the connection being closed. If the request is GET, the response status is <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a>, and the entire response header block has been received, a cache <em class="bcp14">MAY</em> store an incomplete response message body if the cache entry is recorded as incomplete. Likewise, a <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a> response <em class="bcp14">MAY</em> be stored as if it were an incomplete <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> cache entry. However, a cache <em class="bcp14">MUST NOT</em> store incomplete or partial content responses if it does not support the <a href="p5-range.html#range.retrieval.requests" class="smpl">Range</a> and <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> header fields or if it does not understand the range units used in those fields.
    880879      </p>
    881880      <p id="rfc.section.2.1.p.6">A cache <em class="bcp14">MAY</em> complete a stored incomplete response by making a subsequent range request (<a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>) and combining the successful response with the stored entry, as defined in <a href="#combining.responses" title="Combining Partial Content">Section&nbsp;2.9</a>. A cache <em class="bcp14">MUST NOT</em> use an incomplete response to answer requests unless the response has been made complete or the request is partial and specifies
     
    12071206         <li>retain any <a href="#header.warning" class="smpl">Warning</a> header fields in the stored response with warn-code 2xx; and,
    12081207         </li>
    1209          <li>use other header fields provided in the new response, aside from Content-Range, to replace all instances of the corresponding
    1210             header fields in the stored response.
     1208         <li>use other header fields provided in the new response, aside from <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a>, to replace all instances of the corresponding header fields in the stored response.
    12111209         </li>
    12121210      </ul>
     
    13121310      <div id="rfc.iref.n.3"></div>
    13131311      <h4 id="rfc.section.3.2.1.6"><a href="#rfc.section.3.2.1.6">3.2.1.6</a>&nbsp;<a id="cache-request-directive.no-transform" href="#cache-request-directive.no-transform">no-transform</a></h4>
    1314       <p id="rfc.section.3.2.1.6.p.1">The no-transform request directive indicates that an intermediary (whether or not it implements a cache) <em class="bcp14">MUST NOT</em> change the Content-Encoding, Content-Range or Content-Type request header fields, nor the request representation.
     1312      <p id="rfc.section.3.2.1.6.p.1">The no-transform request directive indicates that an intermediary (whether or not it implements a cache) <em class="bcp14">MUST NOT</em> change the Content-Encoding, <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> or Content-Type request header fields, nor the request representation.
    13151313      </p>
    13161314      <div id="rfc.iref.c.13"></div>
     
    14281426      <div id="rfc.iref.n.6"></div>
    14291427      <h4 id="rfc.section.3.2.2.9"><a href="#rfc.section.3.2.2.9">3.2.2.9</a>&nbsp;<a id="cache-response-directive.no-transform" href="#cache-response-directive.no-transform">no-transform</a></h4>
    1430       <p id="rfc.section.3.2.2.9.p.1">The no-transform response directive indicates that an intermediary (regardless of whether it implements a cache) <em class="bcp14">MUST NOT</em> change the Content-Encoding, Content-Range or Content-Type response header fields, nor the response representation.
     1428      <p id="rfc.section.3.2.2.9.p.1">The no-transform response directive indicates that an intermediary (regardless of whether it implements a cache) <em class="bcp14">MUST NOT</em> change the Content-Encoding, <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> or Content-Type response header fields, nor the response representation.
    14311429      </p>
    14321430      <h3 id="rfc.section.3.2.3"><a href="#rfc.section.3.2.3">3.2.3</a>&nbsp;<a id="cache.control.extensions" href="#cache.control.extensions">Cache Control Extensions</a></h3>
  • draft-ietf-httpbis/latest/p6-cache.xml

    r1737 r1738  
    510510   Likewise, a <x:ref>206 (Partial Content)</x:ref> response &MAY; be stored as if it were
    511511   an incomplete <x:ref>200 (OK)</x:ref> cache entry.  However, a cache &MUST-NOT; store
    512    incomplete or partial content responses if it does not support the Range
    513    and Content-Range header fields or if it does not understand the
    514    range units used in those fields.
     512   incomplete or partial content responses if it does not support the
     513   <x:ref>Range</x:ref> and <x:ref>Content-Range</x:ref> header fields or if it
     514   does not understand the range units used in those fields.
    515515</t>
    516516<t>
     
    11491149         with warn-code 2xx; and,</t>
    11501150      <t>use other header fields provided in the new response, aside
    1151          from Content-Range, to replace all instances of the corresponding
    1152          header fields in the stored response.</t>
     1151         from <x:ref>Content-Range</x:ref>, to replace all instances of the
     1152         corresponding header fields in the stored response.</t>
    11531153   </list>
    11541154</t>
     
    13581358   The no-transform request directive indicates that an intermediary
    13591359   (whether or not it implements a cache) &MUST-NOT; change the
    1360    Content-Encoding, Content-Range or Content-Type request header fields,
    1361    nor the request representation.
     1360   Content-Encoding, <x:ref>Content-Range</x:ref> or Content-Type request
     1361   header fields, nor the request representation.
    13621362</t>
    13631363</section>
     
    15871587   The no-transform response directive indicates that an intermediary
    15881588   (regardless of whether it implements a cache) &MUST-NOT; change the
    1589    Content-Encoding, Content-Range or Content-Type response header fields,
    1590    nor the response representation.
     1589   Content-Encoding, <x:ref>Content-Range</x:ref> or Content-Type response
     1590   header fields, nor the response representation.
    15911591</t>
    15921592</section>
     
    23542354    <x:source basename="p5-range" href="p5-range.xml">
    23552355      <x:defines>206 (Partial Content)</x:defines>
     2356      <x:defines>Content-Range</x:defines>
     2357      <x:defines>Range</x:defines>
    23562358    </x:source>
    23572359  </reference>
Note: See TracChangeset for help on using the changeset viewer.