Ignore:
Timestamp:
Jan 19, 2013, 1:52:42 PM (7 years ago)
Author:
fielding@…
Message:

Just noticed that p5 requires If-Range be ignored if other preconditions win, so move it to end of precedence

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

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p4-conditional.html

    r2131 r2133  
    10191019         selected representation's <a href="#header.last-modified" class="smpl">Last-Modified</a> field will not be able to help the user agent limit its data transfers to only those changed during the specified window.
    10201020      </p>
    1021       <p id="rfc.section.3.3.p.9">The <a href="p5-range.html#range.retrieval.requests" class="smpl">Range</a> header field modifies the interpretation of If-Modified-Since, as defined 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="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>.
    1022       </p>
    1023       <div class="note" id="rfc.section.3.3.p.10">
     1021      <div class="note" id="rfc.section.3.3.p.9">
    10241022         <p> <b>Note:</b> If a client uses an arbitrary date in the If-Modified-Since header field instead of a date taken from a <a href="#header.last-modified" class="smpl">Last-Modified</a> or <a href="p2-semantics.html#header.date" class="smpl">Date</a> header field from the origin server, the client ought to be aware that its date will be interpreted according to the server's
    10251023            understanding of time.
     
    10371035      </p>
    10381036      <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>
    1039       <p id="rfc.section.3.5.p.1">The "If-Range" header field provides a special conditional request mechanism that is similar to <a href="#header.if-match" class="smpl">If-Match</a> and <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> 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="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>.
     1037      <p id="rfc.section.3.5.p.1">The "If-Range" header field provides a special conditional request mechanism that is similar to <a href="#header.if-match" class="smpl">If-Match</a> and <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> but specific to 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.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>.
    10401038      </p>
    10411039      <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>
     
    10901088            </ul>
    10911089         </li>
    1092          <li>When the method is GET and both <a href="p5-range.html#range.retrieval.requests" class="smpl">Range</a> and <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> are present, evaluate it:
    1093             <ul>
    1094                <li>if the validator matches, respond 206 (Partial Content)</li>
    1095                <li>if the validator does not match, respond <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a></li>
    1096             </ul>
    1097          </li>
    10981090         <li>When <a href="#header.if-none-match" class="smpl">If-None-Match</a> is present, evaluate it:
    10991091            <ul>
    1100                <li>if true, all conditions are met</li>
     1092               <li>if true, continue to step 5</li>
    11011093               <li>if false for GET/HEAD, respond <a href="#status.304" class="smpl">304 (Not Modified)</a></li>
    11021094               <li>if false for other methods, respond <a href="#status.412" class="smpl">412 (Precondition Failed)</a></li>
     
    11051097         <li>When the method is GET or HEAD, <a href="#header.if-none-match" class="smpl">If-None-Match</a> is not present, and <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> is present, evaluate it:
    11061098            <ul>
    1107                <li>if true, all conditions are met</li>
     1099               <li>if true, continue to step 5</li>
    11081100               <li>if false, respond <a href="#status.304" class="smpl">304 (Not Modified)</a></li>
     1101            </ul>
     1102         </li>
     1103         <li>When the method is GET and both <a href="p5-range.html#range.retrieval.requests" class="smpl">Range</a> and <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> are present, evaluate If-Range:
     1104            <ul>
     1105               <li>if the validator matches and the Range specification is applicable to the selected representation, respond <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a>  <a href="#Part5" id="rfc.xref.Part5.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a></li>
     1106            </ul>
     1107         </li>
     1108         <li>Otherwise,
     1109            <ul>
     1110               <li>respond <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a></li>
    11091111            </ul>
    11101112         </li>
     
    14421444                     </ul>
    14431445                  </li>
    1444                   <li><em>Part5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.1">3.3</a>, <a href="#rfc.xref.Part5.2">3.5</a>, <a href="#Part5"><b>9.1</b></a><ul>
    1445                         <li><em>Section 5.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.2">3.5</a></li>
    1446                         <li><em>Section 5.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.1">3.3</a></li>
     1446                  <li><em>Part5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.1">3.5</a>, <a href="#rfc.xref.Part5.2">5</a>, <a href="#Part5"><b>9.1</b></a><ul>
     1447                        <li><em>Section 5.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.1">3.5</a></li>
    14471448                     </ul>
    14481449                  </li>
  • draft-ietf-httpbis/latest/p4-conditional.xml

    r2131 r2133  
    827827   only those changed during the specified window.
    828828</t>
    829 <t>
    830    The <x:ref>Range</x:ref> header field modifies the interpretation of
    831    If-Modified-Since, as defined in &header-range;.
    832 </t>
    833829<x:note>
    834830  <t>
     
    873869   The "If-Range" header field provides a special conditional request
    874870   mechanism that is similar to <x:ref>If-Match</x:ref> and
    875    <x:ref>If-Unmodified-Since</x:ref> but specific to HTTP range requests.
     871   <x:ref>If-Unmodified-Since</x:ref> but specific to range requests.
    876872   If-Range is defined in &header-if-range;.
    877873</t>
     
    985981       </list>
    986982     </t>
    987      <t>When the method is GET and both <x:ref>Range</x:ref> and
    988         <x:ref>If-Range</x:ref> are present, evaluate it:
    989        <list style="symbols">
    990          <t>if the validator matches, respond 206 (Partial Content)</t>
    991          <t>if the validator does not match, respond <x:ref>200 (OK)</x:ref></t>
    992        </list>
    993      </t>
    994983     <t>When <x:ref>If-None-Match</x:ref> is present, evaluate it:
    995984       <list style="symbols">
    996          <t>if true, all conditions are met</t>
     985         <t>if true, continue to step 5</t>
    997986         <t>if false for GET/HEAD, respond <x:ref>304 (Not Modified)</x:ref></t>
    998987         <t>if false for other methods, respond <x:ref>412 (Precondition Failed)</x:ref></t>
     
    1003992        <x:ref>If-Modified-Since</x:ref> is present, evaluate it:
    1004993       <list style="symbols">
    1005          <t>if true, all conditions are met</t>
     994         <t>if true, continue to step 5</t>
    1006995         <t>if false, respond <x:ref>304 (Not Modified)</x:ref></t>
     996       </list>
     997     </t>
     998     <t>When the method is GET and both <x:ref>Range</x:ref> and
     999        <x:ref>If-Range</x:ref> are present, evaluate If-Range:
     1000       <list style="symbols">
     1001         <t>if the validator matches and the Range specification is
     1002            applicable to the selected representation, respond
     1003            <x:ref>206 (Partial Content)</x:ref> <xref target="Part5"/></t>
     1004       </list>
     1005     </t>
     1006     <t>Otherwise,
     1007       <list style="symbols">
     1008         <t>respond <x:ref>200 (OK)</x:ref></t>
    10071009       </list>
    10081010     </t>
     
    12081210    <x:defines>If-Range</x:defines>
    12091211    <x:defines>Range</x:defines>
     1212    <x:defines>206 (Partial Content)</x:defines>
    12101213  </x:source>
    12111214</reference>
Note: See TracChangeset for help on using the changeset viewer.