Ignore:
Timestamp:
Jul 15, 2012, 11:22:34 PM (7 years ago)
Author:
fielding@…
Message:

p4: Add a section for precedence of conditional request fields and remove

paragraphs that say it isn't defined. Addresses #241
Clarify that If-Modified-Since only applies to GET and HEAD. Addresses #371

also generated HTML

File:
1 edited

Legend:

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

    r1796 r1799  
    449449  }
    450450  @bottom-center {
    451        content: "Expires January 17, 2013";
     451       content: "Expires January 16, 2013";
    452452  }
    453453  @bottom-right {
     
    475475      <link rel="Chapter" title="3 Precondition Header Fields" href="#rfc.section.3">
    476476      <link rel="Chapter" title="4 Status Code Definitions" href="#rfc.section.4">
    477       <link rel="Chapter" title="5 IANA Considerations" href="#rfc.section.5">
    478       <link rel="Chapter" title="6 Security Considerations" href="#rfc.section.6">
    479       <link rel="Chapter" title="7 Acknowledgments" href="#rfc.section.7">
    480       <link rel="Chapter" href="#rfc.section.8" title="8 References">
     477      <link rel="Chapter" title="5 Precedence" 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">
    481482      <link rel="Appendix" title="A Changes from RFC 2616" href="#rfc.section.A">
    482483      <link rel="Appendix" title="B Collected ABNF" href="#rfc.section.B">
     
    490491      <meta name="dct.creator" content="Reschke, J. F.">
    491492      <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p4-conditional-latest">
    492       <meta name="dct.issued" scheme="ISO8601" content="2012-07-16">
     493      <meta name="dct.issued" scheme="ISO8601" content="2012-07-15">
    493494      <meta name="dct.replaces" content="urn:ietf:rfc:2616">
    494495      <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP/1.1 conditional requests, including metadata header fields for indicating state changes, request header fields for making preconditions on such state, and rules for constructing the responses to a conditional request when one or more preconditions evaluate to false.">
     
    516517            </tr>
    517518            <tr>
    518                <td class="left">Expires: January 17, 2013</td>
     519               <td class="left">Expires: January 16, 2013</td>
    519520               <td class="right">J. Reschke, Editor</td>
    520521            </tr>
     
    525526            <tr>
    526527               <td class="left"></td>
    527                <td class="right">July 16, 2012</td>
     528               <td class="right">July 15, 2012</td>
    528529            </tr>
    529530         </tbody>
     
    552553         in progress”.
    553554      </p>
    554       <p>This Internet-Draft will expire on January 17, 2013.</p>
     555      <p>This Internet-Draft will expire on January 16, 2013.</p>
    555556      <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1>
    556557      <p>Copyright © 2012 IETF Trust and the persons identified as the document authors. All rights reserved.</p>
     
    604605            </ul>
    605606         </li>
    606          <li>5.&nbsp;&nbsp;&nbsp;<a href="#IANA.considerations">IANA Considerations</a><ul>
    607                <li>5.1&nbsp;&nbsp;&nbsp;<a href="#status.code.registration">Status Code Registration</a></li>
    608                <li>5.2&nbsp;&nbsp;&nbsp;<a href="#header.field.registration">Header Field Registration</a></li>
     607         <li>5.&nbsp;&nbsp;&nbsp;<a href="#precedence">Precedence</a></li>
     608         <li>6.&nbsp;&nbsp;&nbsp;<a href="#IANA.considerations">IANA Considerations</a><ul>
     609               <li>6.1&nbsp;&nbsp;&nbsp;<a href="#status.code.registration">Status Code Registration</a></li>
     610               <li>6.2&nbsp;&nbsp;&nbsp;<a href="#header.field.registration">Header Field Registration</a></li>
    609611            </ul>
    610612         </li>
    611          <li>6.&nbsp;&nbsp;&nbsp;<a href="#security.considerations">Security Considerations</a></li>
    612          <li>7.&nbsp;&nbsp;&nbsp;<a href="#acks">Acknowledgments</a></li>
    613          <li>8.&nbsp;&nbsp;&nbsp;<a href="#rfc.references">References</a><ul>
    614                <li>8.1&nbsp;&nbsp;&nbsp;<a href="#rfc.references.1">Normative References</a></li>
    615                <li>8.2&nbsp;&nbsp;&nbsp;<a href="#rfc.references.2">Informative References</a></li>
     613         <li>7.&nbsp;&nbsp;&nbsp;<a href="#security.considerations">Security Considerations</a></li>
     614         <li>8.&nbsp;&nbsp;&nbsp;<a href="#acks">Acknowledgments</a></li>
     615         <li>9.&nbsp;&nbsp;&nbsp;<a href="#rfc.references">References</a><ul>
     616               <li>9.1&nbsp;&nbsp;&nbsp;<a href="#rfc.references.1">Normative References</a></li>
     617               <li>9.2&nbsp;&nbsp;&nbsp;<a href="#rfc.references.2">Informative References</a></li>
    616618            </ul>
    617619         </li>
     
    968970      </ul>
    969971      <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;<a id="header.field.definitions" href="#header.field.definitions">Precondition Header Fields</a></h1>
    970       <p id="rfc.section.3.p.1">This section defines the syntax and semantics of HTTP/1.1 header fields for applying preconditions on requests.</p>
     972      <p id="rfc.section.3.p.1">This section defines the syntax and semantics of HTTP/1.1 header fields for applying preconditions on requests. <a href="#precedence" title="Precedence">Section&nbsp;5</a> defines the order of evaluation when more than one precondition is present in a request.
     973      </p>
    971974      <div id="rfc.iref.i.1"></div>
    972975      <div id="rfc.iref.h.3"></div>
     
    996999  If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
    9971000  If-Match: *
    998 </pre><p id="rfc.section.3.1.p.11">The result of a request having both an If-Match header field and either an <a href="#header.if-none-match" class="smpl">If-None-Match</a> or an <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> header field is undefined by this specification.
    999       </p>
    1000       <div id="rfc.iref.i.2"></div>
     1001</pre><div id="rfc.iref.i.2"></div>
    10011002      <div id="rfc.iref.h.4"></div>
    10021003      <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a>&nbsp;<a id="header.if-none-match" href="#header.if-none-match">If-None-Match</a></h2>
     
    10321033  If-None-Match: W/"xyzzy", W/"r2d2xxxx", W/"c3piozzzz"
    10331034  If-None-Match: *
    1034 </pre><p id="rfc.section.3.2.p.11">The result of a request having both an If-None-Match header field and either an <a href="#header.if-match" class="smpl">If-Match</a> or an <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> header field is undefined by this specification.
    1035       </p>
    1036       <div id="rfc.iref.i.3"></div>
     1035</pre><div id="rfc.iref.i.3"></div>
    10371036      <div id="rfc.iref.h.5"></div>
    10381037      <h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3</a>&nbsp;<a id="header.if-modified-since" href="#header.if-modified-since">If-Modified-Since</a></h2>
    1039       <p id="rfc.section.3.3.p.1">The "If-Modified-Since" header field can be used to make a request method conditional by modification date: if the selected
    1040          representation has not been modified since the time specified in this field, then do not perform the request method; instead,
    1041          respond as detailed below.
     1038      <p id="rfc.section.3.3.p.1">The "If-Modified-Since" header field can be used with GET or HEAD to make the method conditional by modification date: if
     1039         the selected representation has not been modified since the time specified in this field, then do not perform the request
     1040         method; instead, respond as detailed below.
    10421041      </p>
    10431042      <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.9"></span>  <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> = <a href="#notation" class="smpl">HTTP-date</a>
     
    10751074         </li>
    10761075      </ul>
    1077       <p id="rfc.section.3.3.p.7">The result of a request having both an If-Modified-Since header field and either an <a href="#header.if-match" class="smpl">If-Match</a> or an <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> header field is undefined by this specification.
    1078       </p>
    10791076      <div id="rfc.iref.i.4"></div>
    10801077      <div id="rfc.iref.h.6"></div>
     
    10891086      </p>
    10901087      <p id="rfc.section.3.4.p.6">If the specified date is invalid, the header field <em class="bcp14">MUST</em> be ignored.
    1091       </p>
    1092       <p id="rfc.section.3.4.p.7">The result of a request having both an If-Unmodified-Since header field and either an <a href="#header.if-none-match" class="smpl">If-None-Match</a> or an <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> header field is undefined by this specification.
    10931088      </p>
    10941089      <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>
     
    11241119         and metadata) and thus prevent the request method from being applied if the target resource is in an unexpected state.
    11251120      </p>
    1126       <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a>&nbsp;<a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1>
    1127       <h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a>&nbsp;<a id="status.code.registration" href="#status.code.registration">Status Code Registration</a></h2>
    1128       <p id="rfc.section.5.1.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:
     1121      <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a>&nbsp;<a id="precedence" href="#precedence">Precedence</a></h1>
     1122      <p id="rfc.section.5.p.1">When more than one conditional request header field is present in a request, the order in which the fields are evaluated becomes
     1123         important. In practice, the fields defined in this document are consistently implemented in a single, logical order, due to
     1124         the fact that entity tags are presumed to be more accurate than date validators. For example, the only reason to send both <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> and <a href="#header.if-none-match" class="smpl">If-None-Match</a> in the same GET request is to support intermediary caches that might not have implemented <a href="#header.if-none-match" class="smpl">If-None-Match</a>, so it makes sense to ignore the <a href="#header.if-modified-since" class="smpl">If-Modified-Since</a> when entity tags are understood and available for the selected representation.
     1125      </p>
     1126      <p id="rfc.section.5.p.2">The general rule of conditional precedence is that exact match conditions are evaluated before cache-validating conditions
     1127         and, within that order, last-modified conditions are only evaluated if the corresponding entity tag condition is not present
     1128         (or not applicable because the selected representation does not have an entity tag).
     1129      </p>
     1130      <p id="rfc.section.5.p.3">Specifically, the fields defined by this specification are evaluated as follows: </p>
     1131      <ol>
     1132         <li>When <a href="#header.if-match" class="smpl">If-Match</a> is present, evaluate it:
     1133            <ul>
     1134               <li>if true, continue to step 3</li>
     1135               <li>if false, respond <a href="#status.412" class="smpl">412 (Precondition Failed)</a></li>
     1136            </ul>
     1137         </li>
     1138         <li>When <a href="#header.if-match" class="smpl">If-Match</a> is not present and <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> is present, evaluate it:
     1139            <ul>
     1140               <li>if true, continue to step 3</li>
     1141               <li>if false, respond <a href="#status.412" class="smpl">412 (Precondition Failed)</a></li>
     1142            </ul>
     1143         </li>
     1144         <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:
     1145            <ul>
     1146               <li>if the validator matches, respond 206 (Partial Content)</li>
     1147               <li>if the validator does not match, respond <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a></li>
     1148            </ul>
     1149         </li>
     1150         <li>When <a href="#header.if-none-match" class="smpl">If-None-Match</a> is present, evaluate it:
     1151            <ul>
     1152               <li>if true, all conditions are met</li>
     1153               <li>if false for GET/HEAD, respond <a href="#status.304" class="smpl">304 (Not Modified)</a></li>
     1154               <li>if false for other methods, respond <a href="#status.412" class="smpl">412 (Precondition Failed)</a></li>
     1155            </ul>
     1156         </li>
     1157         <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:
     1158            <ul>
     1159               <li>if true, all conditions are met</li>
     1160               <li>if false, respond <a href="#status.304" class="smpl">304 (Not Modified)</a></li>
     1161            </ul>
     1162         </li>
     1163      </ol>
     1164      <p id="rfc.section.5.p.4">Any extension to HTTP/1.1 that defines additional conditional request header fields ought to define its own expectations regarding
     1165         the order for evaluating such fields in relation to those defined in this document and other conditionals that might be found
     1166         in practice.
     1167      </p>
     1168      <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a>&nbsp;<a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1>
     1169      <h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a>&nbsp;<a id="status.code.registration" href="#status.code.registration">Status Code Registration</a></h2>
     1170      <p id="rfc.section.6.1.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:
    11291171      </p>
    11301172      <div id="rfc.table.1">
     
    11541196         </table>
    11551197      </div>
    1156       <h2 id="rfc.section.5.2"><a href="#rfc.section.5.2">5.2</a>&nbsp;<a id="header.field.registration" href="#header.field.registration">Header Field Registration</a></h2>
    1157       <p id="rfc.section.5.2.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="#RFC3864" id="rfc.xref.RFC3864.1"><cite title="Registration Procedures for Message Header Fields">[RFC3864]</cite></a>):
     1198      <h2 id="rfc.section.6.2"><a href="#rfc.section.6.2">6.2</a>&nbsp;<a id="header.field.registration" href="#header.field.registration">Header Field Registration</a></h2>
     1199      <p id="rfc.section.6.2.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="#RFC3864" id="rfc.xref.RFC3864.1"><cite title="Registration Procedures for Message Header Fields">[RFC3864]</cite></a>):
    11581200      </p>
    11591201      <div id="rfc.table.2">
     
    12141256         </table>
    12151257      </div>
    1216       <p id="rfc.section.5.2.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p>
    1217       <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a>&nbsp;<a id="security.considerations" href="#security.considerations">Security Considerations</a></h1>
    1218       <p id="rfc.section.6.p.1">No additional security considerations have been identified beyond those applicable to HTTP in general <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>.
    1219       </p>
    1220       <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a>&nbsp;<a id="acks" href="#acks">Acknowledgments</a></h1>
    1221       <p id="rfc.section.7.p.1">See <a href="p1-messaging.html#acks" title="Acknowledgments">Section 9</a> of <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>.
    1222       </p>
    1223       <h1 id="rfc.references"><a id="rfc.section.8" href="#rfc.section.8">8.</a> References
     1258      <p id="rfc.section.6.2.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p>
     1259      <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a>&nbsp;<a id="security.considerations" href="#security.considerations">Security Considerations</a></h1>
     1260      <p id="rfc.section.7.p.1">No additional security considerations have been identified beyond those applicable to HTTP in general <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>.
     1261      </p>
     1262      <h1 id="rfc.section.8"><a href="#rfc.section.8">8.</a>&nbsp;<a id="acks" href="#acks">Acknowledgments</a></h1>
     1263      <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.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>.
     1264      </p>
     1265      <h1 id="rfc.references"><a id="rfc.section.9" href="#rfc.section.9">9.</a> References
    12241266      </h1>
    1225       <h2 id="rfc.references.1"><a href="#rfc.section.8.1" id="rfc.section.8.1">8.1</a> Normative References
     1267      <h2 id="rfc.references.1"><a href="#rfc.section.9.1" id="rfc.section.9.1">9.1</a> Normative References
    12261268      </h2>
    12271269      <table>           
     
    12571299         </tr>
    12581300      </table>
    1259       <h2 id="rfc.references.2"><a href="#rfc.section.8.2" id="rfc.section.8.2">8.2</a> Informative References
     1301      <h2 id="rfc.references.2"><a href="#rfc.section.9.2" id="rfc.section.9.2">9.2</a> Informative References
    12601302      </h2>
    12611303      <table>     
     
    13401382         <ul class="ind">
    13411383            <li><a id="rfc.index.3" href="#rfc.index.3"><b>3</b></a><ul>
    1342                   <li>304 Not Modified (status code)&nbsp;&nbsp;<a href="#rfc.iref.27"><b>4.1</b></a>, <a href="#rfc.xref.status.304.1">5.1</a></li>
     1384                  <li>304 Not Modified (status code)&nbsp;&nbsp;<a href="#rfc.iref.27"><b>4.1</b></a>, <a href="#rfc.xref.status.304.1">6.1</a></li>
    13431385               </ul>
    13441386            </li>
    13451387            <li><a id="rfc.index.4" href="#rfc.index.4"><b>4</b></a><ul>
    1346                   <li>412 Precondition Failed (status code)&nbsp;&nbsp;<a href="#rfc.iref.28"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1">5.1</a></li>
     1388                  <li>412 Precondition Failed (status code)&nbsp;&nbsp;<a href="#rfc.iref.28"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1">6.1</a></li>
    13471389               </ul>
    13481390            </li>
    13491391            <li><a id="rfc.index.E" href="#rfc.index.E"><b>E</b></a><ul>
    1350                   <li>ETag header field&nbsp;&nbsp;<a href="#rfc.xref.header.etag.1">2</a>, <a href="#rfc.iref.e.1"><b>2.3</b></a>, <a href="#rfc.xref.header.etag.2">5.2</a>, <a href="#rfc.xref.header.etag.3">A</a></li>
     1392                  <li>ETag header field&nbsp;&nbsp;<a href="#rfc.xref.header.etag.1">2</a>, <a href="#rfc.iref.e.1"><b>2.3</b></a>, <a href="#rfc.xref.header.etag.2">6.2</a>, <a href="#rfc.xref.header.etag.3">A</a></li>
    13511393               </ul>
    13521394            </li>
     
    13711413                  <li>Header Fields&nbsp;&nbsp;
    13721414                     <ul>
    1373                         <li>ETag&nbsp;&nbsp;<a href="#rfc.xref.header.etag.1">2</a>, <a href="#rfc.iref.h.2"><b>2.3</b></a>, <a href="#rfc.xref.header.etag.2">5.2</a>, <a href="#rfc.xref.header.etag.3">A</a></li>
    1374                         <li>If-Match&nbsp;&nbsp;<a href="#rfc.iref.h.3"><b>3.1</b></a>, <a href="#rfc.xref.header.if-match.1">5.2</a></li>
    1375                         <li>If-Modified-Since&nbsp;&nbsp;<a href="#rfc.iref.h.5"><b>3.3</b></a>, <a href="#rfc.xref.header.if-modified-since.1">5.2</a></li>
    1376                         <li>If-None-Match&nbsp;&nbsp;<a href="#rfc.iref.h.4"><b>3.2</b></a>, <a href="#rfc.xref.header.if-none-match.1">5.2</a>, <a href="#rfc.xref.header.if-none-match.2">A</a></li>
    1377                         <li>If-Unmodified-Since&nbsp;&nbsp;<a href="#rfc.iref.h.6"><b>3.4</b></a>, <a href="#rfc.xref.header.if-unmodified-since.1">5.2</a></li>
    1378                         <li>Last-Modified&nbsp;&nbsp;<a href="#rfc.xref.header.last-modified.1">2</a>, <a href="#rfc.iref.h.1"><b>2.2</b></a>, <a href="#rfc.xref.header.last-modified.2">5.2</a></li>
     1415                        <li>ETag&nbsp;&nbsp;<a href="#rfc.xref.header.etag.1">2</a>, <a href="#rfc.iref.h.2"><b>2.3</b></a>, <a href="#rfc.xref.header.etag.2">6.2</a>, <a href="#rfc.xref.header.etag.3">A</a></li>
     1416                        <li>If-Match&nbsp;&nbsp;<a href="#rfc.iref.h.3"><b>3.1</b></a>, <a href="#rfc.xref.header.if-match.1">6.2</a></li>
     1417                        <li>If-Modified-Since&nbsp;&nbsp;<a href="#rfc.iref.h.5"><b>3.3</b></a>, <a href="#rfc.xref.header.if-modified-since.1">6.2</a></li>
     1418                        <li>If-None-Match&nbsp;&nbsp;<a href="#rfc.iref.h.4"><b>3.2</b></a>, <a href="#rfc.xref.header.if-none-match.1">6.2</a>, <a href="#rfc.xref.header.if-none-match.2">A</a></li>
     1419                        <li>If-Unmodified-Since&nbsp;&nbsp;<a href="#rfc.iref.h.6"><b>3.4</b></a>, <a href="#rfc.xref.header.if-unmodified-since.1">6.2</a></li>
     1420                        <li>Last-Modified&nbsp;&nbsp;<a href="#rfc.xref.header.last-modified.1">2</a>, <a href="#rfc.iref.h.1"><b>2.2</b></a>, <a href="#rfc.xref.header.last-modified.2">6.2</a></li>
    13791421                     </ul>
    13801422                  </li>
     
    13821424            </li>
    13831425            <li><a id="rfc.index.I" href="#rfc.index.I"><b>I</b></a><ul>
    1384                   <li>If-Match header field&nbsp;&nbsp;<a href="#rfc.iref.i.1"><b>3.1</b></a>, <a href="#rfc.xref.header.if-match.1">5.2</a></li>
    1385                   <li>If-Modified-Since header field&nbsp;&nbsp;<a href="#rfc.iref.i.3"><b>3.3</b></a>, <a href="#rfc.xref.header.if-modified-since.1">5.2</a></li>
    1386                   <li>If-None-Match header field&nbsp;&nbsp;<a href="#rfc.iref.i.2"><b>3.2</b></a>, <a href="#rfc.xref.header.if-none-match.1">5.2</a>, <a href="#rfc.xref.header.if-none-match.2">A</a></li>
    1387                   <li>If-Unmodified-Since header field&nbsp;&nbsp;<a href="#rfc.iref.i.4"><b>3.4</b></a>, <a href="#rfc.xref.header.if-unmodified-since.1">5.2</a></li>
     1426                  <li>If-Match header field&nbsp;&nbsp;<a href="#rfc.iref.i.1"><b>3.1</b></a>, <a href="#rfc.xref.header.if-match.1">6.2</a></li>
     1427                  <li>If-Modified-Since header field&nbsp;&nbsp;<a href="#rfc.iref.i.3"><b>3.3</b></a>, <a href="#rfc.xref.header.if-modified-since.1">6.2</a></li>
     1428                  <li>If-None-Match header field&nbsp;&nbsp;<a href="#rfc.iref.i.2"><b>3.2</b></a>, <a href="#rfc.xref.header.if-none-match.1">6.2</a>, <a href="#rfc.xref.header.if-none-match.2">A</a></li>
     1429                  <li>If-Unmodified-Since header field&nbsp;&nbsp;<a href="#rfc.iref.i.4"><b>3.4</b></a>, <a href="#rfc.xref.header.if-unmodified-since.1">6.2</a></li>
    13881430               </ul>
    13891431            </li>
    13901432            <li><a id="rfc.index.L" href="#rfc.index.L"><b>L</b></a><ul>
    1391                   <li>Last-Modified header field&nbsp;&nbsp;<a href="#rfc.xref.header.last-modified.1">2</a>, <a href="#rfc.iref.l.1"><b>2.2</b></a>, <a href="#rfc.xref.header.last-modified.2">5.2</a></li>
     1433                  <li>Last-Modified header field&nbsp;&nbsp;<a href="#rfc.xref.header.last-modified.1">2</a>, <a href="#rfc.iref.l.1"><b>2.2</b></a>, <a href="#rfc.xref.header.last-modified.2">6.2</a></li>
    13921434               </ul>
    13931435            </li>
     
    13971439            </li>
    13981440            <li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul>
    1399                   <li><em>Part1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1</a>, <a href="#rfc.xref.Part1.2">1.1</a>, <a href="#rfc.xref.Part1.3">1.2</a>, <a href="#rfc.xref.Part1.4">1.2</a>, <a href="#rfc.xref.Part1.5">1.2</a>, <a href="#rfc.xref.Part1.6">1.2</a>, <a href="#rfc.xref.Part1.7">2.3.3</a>, <a href="#rfc.xref.Part1.8">6</a>, <a href="#rfc.xref.Part1.9">7</a>, <a href="#Part1"><b>8.1</b></a><ul>
     1441                  <li><em>Part1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1</a>, <a href="#rfc.xref.Part1.2">1.1</a>, <a href="#rfc.xref.Part1.3">1.2</a>, <a href="#rfc.xref.Part1.4">1.2</a>, <a href="#rfc.xref.Part1.5">1.2</a>, <a href="#rfc.xref.Part1.6">1.2</a>, <a href="#rfc.xref.Part1.7">2.3.3</a>, <a href="#rfc.xref.Part1.8">7</a>, <a href="#rfc.xref.Part1.9">8</a>, <a href="#Part1"><b>9.1</b></a><ul>
    14001442                        <li><em>Section 1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.3">1.2</a></li>
    14011443                        <li><em>Section 2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.2">1.1</a></li>
     
    14031445                        <li><em>Section 3.2.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.6">1.2</a></li>
    14041446                        <li><em>Section 4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.7">2.3.3</a></li>
    1405                         <li><em>Section 9</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.9">7</a></li>
     1447                        <li><em>Section 9</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.9">8</a></li>
    14061448                     </ul>
    14071449                  </li>
    1408                   <li><em>Part2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2">1.2</a>, <a href="#rfc.xref.Part2.3">1.2</a>, <a href="#rfc.xref.Part2.4">2.3.3</a>, <a href="#rfc.xref.Part2.5">2.3.3</a>, <a href="#rfc.xref.Part2.6">4.1</a>, <a href="#Part2"><b>8.1</b></a><ul>
     1450                  <li><em>Part2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2">1.2</a>, <a href="#rfc.xref.Part2.3">1.2</a>, <a href="#rfc.xref.Part2.4">2.3.3</a>, <a href="#rfc.xref.Part2.5">2.3.3</a>, <a href="#rfc.xref.Part2.6">4.1</a>, <a href="#Part2"><b>9.1</b></a><ul>
    14091451                        <li><em>Section 5.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.3">1.2</a></li>
    14101452                        <li><em>Section 8</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.4">2.3.3</a></li>
     
    14131455                     </ul>
    14141456                  </li>
    1415                   <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>8.1</b></a><ul>
     1457                  <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>
    14161458                        <li><em>Section 5.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.2">3.5</a></li>
    14171459                        <li><em>Section 5.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.1">3.3</a></li>
    14181460                     </ul>
    14191461                  </li>
    1420                   <li><em>Part6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.1">1</a>, <a href="#rfc.xref.Part6.2">2.2.1</a>, <a href="#rfc.xref.Part6.3">2.3.1</a>, <a href="#Part6"><b>8.1</b></a></li>
     1462                  <li><em>Part6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.1">1</a>, <a href="#rfc.xref.Part6.2">2.2.1</a>, <a href="#rfc.xref.Part6.3">2.3.1</a>, <a href="#Part6"><b>9.1</b></a></li>
    14211463               </ul>
    14221464            </li>
    14231465            <li><a id="rfc.index.R" href="#rfc.index.R"><b>R</b></a><ul>
    1424                   <li><em>RFC2119</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC2119.1">1.1</a>, <a href="#RFC2119"><b>8.1</b></a></li>
    1425                   <li><em>RFC2616</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC2616.1">2.3</a>, <a href="#RFC2616"><b>8.2</b></a><ul>
     1466                  <li><em>RFC2119</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC2119.1">1.1</a>, <a href="#RFC2119"><b>9.1</b></a></li>
     1467                  <li><em>RFC2616</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC2616.1">2.3</a>, <a href="#RFC2616"><b>9.2</b></a><ul>
    14261468                        <li><em>Section 3.11</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC2616.1">2.3</a></li>
    14271469                     </ul>
    14281470                  </li>
    1429                   <li><em>RFC3864</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC3864.1">5.2</a>, <a href="#RFC3864"><b>8.2</b></a></li>
    1430                   <li><em>RFC4918</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC4918.1">2</a>, <a href="#RFC4918"><b>8.2</b></a></li>
    1431                   <li><em>RFC5234</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.1">1.2</a>, <a href="#rfc.xref.RFC5234.2">1.2</a>, <a href="#RFC5234"><b>8.1</b></a><ul>
     1471                  <li><em>RFC3864</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC3864.1">6.2</a>, <a href="#RFC3864"><b>9.2</b></a></li>
     1472                  <li><em>RFC4918</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC4918.1">2</a>, <a href="#RFC4918"><b>9.2</b></a></li>
     1473                  <li><em>RFC5234</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.1">1.2</a>, <a href="#rfc.xref.RFC5234.2">1.2</a>, <a href="#RFC5234"><b>9.1</b></a><ul>
    14321474                        <li><em>Appendix B.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.2">1.2</a></li>
    14331475                     </ul>
     
    14391481                  <li>Status Codes&nbsp;&nbsp;
    14401482                     <ul>
    1441                         <li>304 Not Modified&nbsp;&nbsp;<a href="#rfc.iref.s.2"><b>4.1</b></a>, <a href="#rfc.xref.status.304.1">5.1</a></li>
    1442                         <li>412 Precondition Failed&nbsp;&nbsp;<a href="#rfc.iref.s.3"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1">5.1</a></li>
     1483                        <li>304 Not Modified&nbsp;&nbsp;<a href="#rfc.iref.s.2"><b>4.1</b></a>, <a href="#rfc.xref.status.304.1">6.1</a></li>
     1484                        <li>412 Precondition Failed&nbsp;&nbsp;<a href="#rfc.iref.s.3"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1">6.1</a></li>
    14431485                     </ul>
    14441486                  </li>
Note: See TracChangeset for help on using the changeset viewer.