Changeset 1796 for draft-ietf-httpbis/latest/p4-conditional.html
- Timestamp:
- 16/07/12 05:38:18 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p4-conditional.html
r1786 r1796 449 449 } 450 450 @bottom-center { 451 content: "Expires January 1 6, 2013";451 content: "Expires January 17, 2013"; 452 452 } 453 453 @bottom-right { … … 475 475 <link rel="Chapter" title="3 Precondition Header Fields" href="#rfc.section.3"> 476 476 <link rel="Chapter" title="4 Status Code Definitions" href="#rfc.section.4"> 477 <link rel="Chapter" title="5 ABNF Rules Defined Elsewhere" 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"> 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"> 482 481 <link rel="Appendix" title="A Changes from RFC 2616" href="#rfc.section.A"> 483 482 <link rel="Appendix" title="B Collected ABNF" href="#rfc.section.B"> … … 491 490 <meta name="dct.creator" content="Reschke, J. F."> 492 491 <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p4-conditional-latest"> 493 <meta name="dct.issued" scheme="ISO8601" content="2012-07-1 5">492 <meta name="dct.issued" scheme="ISO8601" content="2012-07-16"> 494 493 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 495 494 <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."> … … 517 516 </tr> 518 517 <tr> 519 <td class="left">Expires: January 1 6, 2013</td>518 <td class="left">Expires: January 17, 2013</td> 520 519 <td class="right">J. Reschke, Editor</td> 521 520 </tr> … … 526 525 <tr> 527 526 <td class="left"></td> 528 <td class="right">July 1 5, 2012</td>527 <td class="right">July 16, 2012</td> 529 528 </tr> 530 529 </tbody> … … 553 552 in progress”. 554 553 </p> 555 <p>This Internet-Draft will expire on January 1 6, 2013.</p>554 <p>This Internet-Draft will expire on January 17, 2013.</p> 556 555 <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> 557 556 <p>Copyright © 2012 IETF Trust and the persons identified as the document authors. All rights reserved.</p> … … 571 570 <h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1> 572 571 <ul class="toc"> 573 <li>1. <a href="#introduction">Introduction</a></li> 572 <li>1. <a href="#introduction">Introduction</a><ul> 573 <li>1.1 <a href="#intro.conformance.and.error.handling">Conformance and Error Handling</a></li> 574 <li>1.2 <a href="#notation">Syntax Notation</a></li> 575 </ul> 576 </li> 574 577 <li>2. <a href="#validators">Validators</a><ul> 575 578 <li>2.1 <a href="#weak.and.strong.validators">Weak versus Strong</a></li> … … 601 604 </ul> 602 605 </li> 603 <li>5. <a href="#abnf.dependencies">ABNF Rules Defined Elsewhere</a></li> 604 <li>6. <a href="#IANA.considerations">IANA Considerations</a><ul> 605 <li>6.1 <a href="#status.code.registration">Status Code Registration</a></li> 606 <li>6.2 <a href="#header.field.registration">Header Field Registration</a></li> 606 <li>5. <a href="#IANA.considerations">IANA Considerations</a><ul> 607 <li>5.1 <a href="#status.code.registration">Status Code Registration</a></li> 608 <li>5.2 <a href="#header.field.registration">Header Field Registration</a></li> 607 609 </ul> 608 610 </li> 609 <li> 7. <a href="#security.considerations">Security Considerations</a></li>610 <li> 8. <a href="#acks">Acknowledgments</a></li>611 <li> 9. <a href="#rfc.references">References</a><ul>612 <li> 9.1 <a href="#rfc.references.1">Normative References</a></li>613 <li> 9.2 <a href="#rfc.references.2">Informative References</a></li>611 <li>6. <a href="#security.considerations">Security Considerations</a></li> 612 <li>7. <a href="#acks">Acknowledgments</a></li> 613 <li>8. <a href="#rfc.references">References</a><ul> 614 <li>8.1 <a href="#rfc.references.1">Normative References</a></li> 615 <li>8.2 <a href="#rfc.references.2">Informative References</a></li> 614 616 </ul> 615 617 </li> … … 644 646 selected representation. 645 647 </p> 646 <div id="rfc.iref.m.1"></div> 648 <h2 id="rfc.section.1.1"><a href="#rfc.section.1.1">1.1</a> <a id="intro.conformance.and.error.handling" href="#intro.conformance.and.error.handling">Conformance and Error Handling</a></h2> 649 <p id="rfc.section.1.1.p.1">The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 650 in this document are to be interpreted as described in <a href="#RFC2119" id="rfc.xref.RFC2119.1"><cite title="Key words for use in RFCs to Indicate Requirement Levels">[RFC2119]</cite></a>. 651 </p> 652 <p id="rfc.section.1.1.p.2">This specification targets conformance criteria according to the role of a participant in HTTP communication. Hence, HTTP 653 requirements are placed on senders, recipients, clients, servers, user agents, intermediaries, origin servers, proxies, gateways, 654 or caches, depending on what behavior is being constrained by the requirement. See <a href="p1-messaging.html#architecture" title="Architecture">Section 2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> for definitions of these terms. 655 </p> 656 <p id="rfc.section.1.1.p.3">The verb "generate" is used instead of "send" where a requirement differentiates between creating a protocol element and merely 657 forwarding a received element downstream. 658 </p> 659 <p id="rfc.section.1.1.p.4">An implementation is considered conformant if it complies with all of the requirements associated with the roles it partakes 660 in HTTP. Note that SHOULD-level requirements are relevant here, unless one of the documented exceptions is applicable. 661 </p> 662 <p id="rfc.section.1.1.p.5">This document also uses ABNF to define valid protocol elements (<a href="#notation" title="Syntax Notation">Section 1.2</a>). In addition to the prose requirements placed upon them, senders <em class="bcp14">MUST NOT</em> generate protocol elements that do not match the grammar defined by the ABNF rules for those protocol elements that are applicable 663 to the sender's role. If a received protocol element is processed, the recipient <em class="bcp14">MUST</em> be able to parse any value that would match the ABNF rules for that protocol element, excluding only those rules not applicable 664 to the recipient's role. 665 </p> 666 <p id="rfc.section.1.1.p.6">Unless noted otherwise, a recipient <em class="bcp14">MAY</em> attempt to recover a usable protocol element from an invalid construct. HTTP does not define specific error handling mechanisms 667 except when they have a direct impact on security, since different applications of the protocol require different error handling 668 strategies. For example, a Web browser might wish to transparently recover from a response where the <a href="p2-semantics.html#header.location" class="smpl">Location</a> header field doesn't parse according to the ABNF, whereas a systems control client might consider any form of error recovery 669 to be dangerous. 670 </p> 671 <h2 id="rfc.section.1.2"><a href="#rfc.section.1.2">1.2</a> <a id="notation" href="#notation">Syntax Notation</a></h2> 672 <p id="rfc.section.1.2.p.1">This specification uses the Augmented Backus-Naur Form (ABNF) notation of <a href="#RFC5234" id="rfc.xref.RFC5234.1"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a> with the list rule extension defined in <a href="p1-messaging.html#notation" title="Syntax Notation">Section 1.2</a> of <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>. <a href="#collected.abnf" title="Collected ABNF">Appendix B</a> shows the collected ABNF with the list rule expanded. 673 </p> 674 <p id="rfc.section.1.2.p.2">The following core rules are included by reference, as defined in <a href="#RFC5234" id="rfc.xref.RFC5234.2"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>, <a href="http://tools.ietf.org/html/rfc5234#appendix-B.1">Appendix B.1</a>: ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote), HEXDIG 675 (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any 8-bit sequence of data), SP (space), and VCHAR (any visible US-ASCII 676 character). 677 </p> 678 <p id="rfc.section.1.2.p.3">The ABNF rules below are defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and <a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>: 679 </p> 680 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#notation" class="smpl">OWS</a> = <OWS, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>> 681 <a href="#notation" class="smpl">obs-text</a> = <obs-text, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>> 682 <a href="#notation" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>, <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 5.1</a>> 683 </pre><div id="rfc.iref.m.1"></div> 647 684 <div id="rfc.iref.v.1"></div> 648 685 <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a> <a id="validators" href="#validators">Validators</a></h1> … … 701 738 was last modified. 702 739 </p> 703 <div id="rfc.figure.u. 1"></div><pre class="inline"><span id="rfc.iref.g.1"></span> <a href="#header.last-modified" class="smpl">Last-Modified</a> = <a href="#abnf.dependencies" class="smpl">HTTP-date</a>740 <div id="rfc.figure.u.2"></div><pre class="inline"><span id="rfc.iref.g.1"></span> <a href="#header.last-modified" class="smpl">Last-Modified</a> = <a href="#notation" class="smpl">HTTP-date</a> 704 741 </pre><p id="rfc.section.2.2.p.3">An example of its use is</p> 705 <div id="rfc.figure.u. 2"></div><pre class="text"> Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT742 <div id="rfc.figure.u.3"></div><pre class="text"> Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT 706 743 </pre><h3 id="rfc.section.2.2.1"><a href="#rfc.section.2.2.1">2.2.1</a> <a id="lastmod.generation" href="#lastmod.generation">Generation</a></h3> 707 744 <p id="rfc.section.2.2.1.p.1">Origin servers <em class="bcp14">SHOULD</em> send Last-Modified for any selected representation for which a last modification date can be reasonably and consistently determined, … … 763 800 same time, or both. An entity-tag consists of an opaque quoted string, possibly prefixed by a weakness indicator. 764 801 </p> 765 <div id="rfc.figure.u. 3"></div><pre class="inline"><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span> <a href="#header.etag" class="smpl">ETag</a> = <a href="#header.etag" class="smpl">entity-tag</a>802 <div id="rfc.figure.u.4"></div><pre class="inline"><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span> <a href="#header.etag" class="smpl">ETag</a> = <a href="#header.etag" class="smpl">entity-tag</a> 766 803 767 804 <a href="#header.etag" class="smpl">entity-tag</a> = [ <a href="#header.etag" class="smpl">weak</a> ] <a href="#header.etag" class="smpl">opaque-tag</a> 768 805 <a href="#header.etag" class="smpl">weak</a> = %x57.2F ; "W/", case-sensitive 769 <a href="#header.etag" class="smpl">opaque-tag</a> = <a href="# abnf.dependencies" class="smpl">DQUOTE</a> *<a href="#header.etag" class="smpl">etagc</a> <a href="#abnf.dependencies" class="smpl">DQUOTE</a>770 <a href="#header.etag" class="smpl">etagc</a> = %x21 / %x23-7E / <a href="# abnf.dependencies" class="smpl">obs-text</a>771 ; <a href="# abnf.dependencies" class="smpl">VCHAR</a> except double quotes, plus obs-text806 <a href="#header.etag" class="smpl">opaque-tag</a> = <a href="#notation" class="smpl">DQUOTE</a> *<a href="#header.etag" class="smpl">etagc</a> <a href="#notation" class="smpl">DQUOTE</a> 807 <a href="#header.etag" class="smpl">etagc</a> = %x21 / %x23-7E / <a href="#notation" class="smpl">obs-text</a> 808 ; <a href="#notation" class="smpl">VCHAR</a> except double quotes, plus obs-text 772 809 </pre><div class="note" id="rfc.section.2.3.p.3"> 773 810 <p> <b>Note:</b> Previously, opaque-tag was defined to be a quoted-string (<a href="#RFC2616" id="rfc.xref.RFC2616.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="http://tools.ietf.org/html/rfc2616#section-3.11">Section 3.11</a>), thus some recipients might perform backslash unescaping. Servers therefore ought to avoid backslash characters in entity … … 779 816 not consistently maintained. 780 817 </p> 781 <div id="rfc.figure.u. 4"></div>818 <div id="rfc.figure.u.5"></div> 782 819 <p>Examples:</p> <pre class="text"> ETag: "xyzzy" 783 820 ETag: W/"xyzzy" … … 851 888 </div> 852 889 <h3 id="rfc.section.2.3.3"><a href="#rfc.section.2.3.3">2.3.3</a> <a id="example.entity.tag.vs.conneg" href="#example.entity.tag.vs.conneg">Example: Entity-tags varying on Content-Negotiated Resources</a></h3> 853 <p id="rfc.section.2.3.3.p.1">Consider a resource that is subject to content negotiation (<a href="p2-semantics.html#content.negotiation" title="Content Negotiation">Section 8</a> of <a href="#Part2" id="rfc.xref.Part2. 2"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>), and where the representations returned upon a GET request vary based on the <a href="p2-semantics.html#header.accept-encoding" class="smpl">Accept-Encoding</a> request header field (<a href="p2-semantics.html#header.accept-encoding" title="Accept-Encoding">Section 9.3</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>):854 </p> 855 <div id="rfc.figure.u. 5"></div>890 <p id="rfc.section.2.3.3.p.1">Consider a resource that is subject to content negotiation (<a href="p2-semantics.html#content.negotiation" title="Content Negotiation">Section 8</a> of <a href="#Part2" id="rfc.xref.Part2.4"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>), and where the representations returned upon a GET request vary based on the <a href="p2-semantics.html#header.accept-encoding" class="smpl">Accept-Encoding</a> request header field (<a href="p2-semantics.html#header.accept-encoding" title="Accept-Encoding">Section 9.3</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>): 891 </p> 892 <div id="rfc.figure.u.6"></div> 856 893 <p>>> Request:</p><pre class="text2">GET /index HTTP/1.1 857 894 Host: www.example.com … … 859 896 860 897 </pre><p id="rfc.section.2.3.3.p.3">In this case, the response might or might not use the gzip content coding. If it does not, the response might look like:</p> 861 <div id="rfc.figure.u. 6"></div>898 <div id="rfc.figure.u.7"></div> 862 899 <p>>> Response:</p><pre class="text">HTTP/1.1 200 OK 863 900 Date: Thu, 26 Mar 2010 00:05:00 GMT … … 873 910 Hello World! 874 911 </span></pre><p id="rfc.section.2.3.3.p.5">An alternative representation that does use gzip content coding would be:</p> 875 <div id="rfc.figure.u. 7"></div>912 <div id="rfc.figure.u.8"></div> 876 913 <p>>> Response:</p><pre class="text">HTTP/1.1 200 OK 877 914 Date: Thu, 26 Mar 2010 00:05:00 GMT … … 885 922 <p> <b>Note:</b> Content codings are a property of the representation, so therefore an entity-tag of an encoded representation has to be distinct 886 923 from an unencoded representation to prevent conflicts during cache updates and range requests. In contrast, transfer codings 887 (<a href="p1-messaging.html#transfer.codings" title="Transfer Codings">Section 4</a> of <a href="#Part1" id="rfc.xref.Part1. 2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>) apply only during message transfer and do not require distinct entity-tags.924 (<a href="p1-messaging.html#transfer.codings" title="Transfer Codings">Section 4</a> of <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>) apply only during message transfer and do not require distinct entity-tags. 888 925 </p> 889 926 </div> … … 942 979 field-value of "*" places the precondition on the existence of any current representation for the target resource. 943 980 </p> 944 <div id="rfc.figure.u. 8"></div><pre class="inline"><span id="rfc.iref.g.7"></span> <a href="#header.if-match" class="smpl">If-Match</a> = "*" / 1#<a href="#header.etag" class="smpl">entity-tag</a>981 <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.7"></span> <a href="#header.if-match" class="smpl">If-Match</a> = "*" / 1#<a href="#header.etag" class="smpl">entity-tag</a> 945 982 </pre><p id="rfc.section.3.1.p.4">The If-Match condition is met if and only if any of the entity-tags listed in the If-Match field value match the entity-tag 946 983 of the selected representation for the target resource (as per <a href="#entity.tag.comparison" title="Comparison">Section 2.3.2</a>), or if "*" is given and any current representation exists for the target resource. … … 956 993 </p> 957 994 <p id="rfc.section.3.1.p.9">Examples:</p> 958 <div id="rfc.figure.u. 9"></div><pre class="text"> If-Match: "xyzzy"995 <div id="rfc.figure.u.10"></div><pre class="text"> If-Match: "xyzzy" 959 996 If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz" 960 997 If-Match: * … … 977 1014 for the target resource. 978 1015 </p> 979 <div id="rfc.figure.u.1 0"></div><pre class="inline"><span id="rfc.iref.g.8"></span> <a href="#header.if-none-match" class="smpl">If-None-Match</a> = "*" / 1#<a href="#header.etag" class="smpl">entity-tag</a>1016 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.8"></span> <a href="#header.if-none-match" class="smpl">If-None-Match</a> = "*" / 1#<a href="#header.etag" class="smpl">entity-tag</a> 980 1017 </pre><p id="rfc.section.3.2.p.5">The If-None-Match condition is met if and only if none of the entity-tags listed in the If-None-Match field value match the 981 1018 entity-tag of the selected representation for the target resource (as per <a href="#entity.tag.comparison" title="Comparison">Section 2.3.2</a>), or if "*" is given and no current representation exists for that resource. … … 990 1027 </p> 991 1028 <p id="rfc.section.3.2.p.9">Examples:</p> 992 <div id="rfc.figure.u.1 1"></div><pre class="text"> If-None-Match: "xyzzy"1029 <div id="rfc.figure.u.12"></div><pre class="text"> If-None-Match: "xyzzy" 993 1030 If-None-Match: W/"xyzzy" 994 1031 If-None-Match: "xyzzy", "r2d2xxxx", "c3piozzzz" … … 1004 1041 respond as detailed below. 1005 1042 </p> 1006 <div id="rfc.figure.u.1 2"></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="#abnf.dependencies" class="smpl">HTTP-date</a>1043 <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> 1007 1044 </pre><p id="rfc.section.3.3.p.3">An example of the field is:</p> 1008 <div id="rfc.figure.u.1 3"></div><pre class="text"> If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT1045 <div id="rfc.figure.u.14"></div><pre class="text"> If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT 1009 1046 </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 1010 1047 the If-Modified-Since header field. The algorithm for determining this includes the following cases: … … 1046 1083 representation has been modified since the time specified in this field, then the server <em class="bcp14">MUST NOT</em> perform the requested operation and <em class="bcp14">MUST</em> instead respond with the <a href="#status.412" class="smpl">412 (Precondition Failed)</a> status code. If the selected representation has not been modified since the time specified in this field, the server <em class="bcp14">SHOULD</em> perform the request method as if the If-Unmodified-Since header field were not present. 1047 1084 </p> 1048 <div id="rfc.figure.u.1 4"></div><pre class="inline"><span id="rfc.iref.g.10"></span> <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> = <a href="#abnf.dependencies" class="smpl">HTTP-date</a>1085 <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.10"></span> <a href="#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> = <a href="#notation" class="smpl">HTTP-date</a> 1049 1086 </pre><p id="rfc.section.3.4.p.3">An example of the field is:</p> 1050 <div id="rfc.figure.u.1 5"></div><pre class="text"> If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT1087 <div id="rfc.figure.u.16"></div><pre class="text"> If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT 1051 1088 </pre><p id="rfc.section.3.4.p.5">If a request normally (i.e., in absence of the If-Unmodified-Since header field) would result in anything other than a <a href="p2-semantics.html#status.2xx" class="smpl">2xx (Successful)</a> or <a href="#status.412" class="smpl">412 (Precondition Failed)</a> status code, the If-Unmodified-Since header field <em class="bcp14">SHOULD</em> be ignored. 1052 1089 </p> … … 1067 1104 as if it were the payload of a 200 response. The 304 response <em class="bcp14">MUST NOT</em> contain a message-body, and thus is always terminated by the first empty line after the header fields. 1068 1105 </p> 1069 <p id="rfc.section.4.1.p.2">A 304 response <em class="bcp14">MUST</em> include a <a href="p2-semantics.html#header.date" class="smpl">Date</a> header field (<a href="p2-semantics.html#header.date" title="Date">Section 9.10</a> of <a href="#Part2" id="rfc.xref.Part2. 4"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>) unless the origin server does not have a clock that can provide a reasonable approximation of the current time. If a <a href="p2-semantics.html#status.200" class="smpl">2001106 <p id="rfc.section.4.1.p.2">A 304 response <em class="bcp14">MUST</em> include a <a href="p2-semantics.html#header.date" class="smpl">Date</a> header field (<a href="p2-semantics.html#header.date" title="Date">Section 9.10</a> of <a href="#Part2" id="rfc.xref.Part2.6"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>) unless the origin server does not have a clock that can provide a reasonable approximation of the current time. If a <a href="p2-semantics.html#status.200" class="smpl">200 1070 1107 (OK)</a> response to the same request would have included any of the header fields <a href="p6-cache.html#header.cache-control" class="smpl">Cache-Control</a>, <a href="p2-semantics.html#header.content-location" class="smpl">Content-Location</a>, <a href="#header.etag" class="smpl">ETag</a>, <a href="p6-cache.html#header.expires" class="smpl">Expires</a>, or <a href="p6-cache.html#header.vary" class="smpl">Vary</a>, then those same header fields <em class="bcp14">MUST</em> be sent in a 304 response. 1071 1108 </p> … … 1087 1124 and metadata) and thus prevent the request method from being applied if the target resource is in an unexpected state. 1088 1125 </p> 1089 <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a> <a id="abnf.dependencies" href="#abnf.dependencies">ABNF Rules Defined Elsewhere</a></h1> 1090 <p id="rfc.section.5.p.1">This specification uses the Augmented Backus-Naur Form (ABNF) notation of <a href="#RFC5234" id="rfc.xref.RFC5234.1"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a> with the list rule extension defined in <a href="p1-messaging.html#notation" title="Syntax Notation">Section 1.2</a> of <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>. <a href="#collected.abnf" title="Collected ABNF">Appendix B</a> shows the collected ABNF with the list rule expanded. 1091 </p> 1092 <p id="rfc.section.5.p.2">The following core rules are included by reference, as defined in <a href="#RFC5234" id="rfc.xref.RFC5234.2"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>, <a href="http://tools.ietf.org/html/rfc5234#appendix-B.1">Appendix B.1</a>: ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote), HEXDIG 1093 (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any 8-bit sequence of data), SP (space), and VCHAR (any visible US-ASCII 1094 character). 1095 </p> 1096 <p id="rfc.section.5.p.3">The ABNF rules below are defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>: 1097 </p> 1098 <div id="rfc.figure.u.16"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">OWS</a> = <OWS, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>> 1099 <a href="#abnf.dependencies" class="smpl">obs-text</a> = <obs-text, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>> 1100 <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part2" id="rfc.xref.Part2.6"><cite title="HTTP/1.1, part 2: Message Semantics, Payload and Content Negotiation">[Part2]</cite></a>, <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 5.1</a>> 1101 </pre><p id="rfc.section.5.p.5">The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 1102 in this document are to be interpreted as described in <a href="#RFC2119" id="rfc.xref.RFC2119.1"><cite title="Key words for use in RFCs to Indicate Requirement Levels">[RFC2119]</cite></a>. 1103 </p> 1104 <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1> 1105 <h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a> <a id="status.code.registration" href="#status.code.registration">Status Code Registration</a></h2> 1106 <p id="rfc.section.6.1.p.1">The HTTP Status Code Registry located at <<a href="http://www.iana.org/assignments/http-status-codes">http://www.iana.org/assignments/http-status-codes</a>> shall be updated with the registrations below: 1126 <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a> <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> <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 <<a href="http://www.iana.org/assignments/http-status-codes">http://www.iana.org/assignments/http-status-codes</a>> shall be updated with the registrations below: 1107 1129 </p> 1108 1130 <div id="rfc.table.1"> … … 1132 1154 </table> 1133 1155 </div> 1134 <h2 id="rfc.section. 6.2"><a href="#rfc.section.6.2">6.2</a> <a id="header.field.registration" href="#header.field.registration">Header Field Registration</a></h2>1135 <p id="rfc.section. 6.2.p.1">The Message Header Field Registry located at <<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>> 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>):1156 <h2 id="rfc.section.5.2"><a href="#rfc.section.5.2">5.2</a> <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 <<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>> 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>): 1136 1158 </p> 1137 1159 <div id="rfc.table.2"> … … 1192 1214 </table> 1193 1215 </div> 1194 <p id="rfc.section. 6.2.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p>1195 <h1 id="rfc.section. 7"><a href="#rfc.section.7">7.</a> <a id="security.considerations" href="#security.considerations">Security Considerations</a></h1>1196 <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.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>.1197 </p> 1198 <h1 id="rfc.section. 8"><a href="#rfc.section.8">8.</a> <a id="acks" href="#acks">Acknowledgments</a></h1>1199 <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.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>.1200 </p> 1201 <h1 id="rfc.references"><a id="rfc.section. 9" href="#rfc.section.9">9.</a> References1216 <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> <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> <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 1202 1224 </h1> 1203 <h2 id="rfc.references.1"><a href="#rfc.section. 9.1" id="rfc.section.9.1">9.1</a> Normative References1225 <h2 id="rfc.references.1"><a href="#rfc.section.8.1" id="rfc.section.8.1">8.1</a> Normative References 1204 1226 </h2> 1205 1227 <table> … … 1235 1257 </tr> 1236 1258 </table> 1237 <h2 id="rfc.references.2"><a href="#rfc.section. 9.2" id="rfc.section.9.2">9.2</a> Informative References1259 <h2 id="rfc.references.2"><a href="#rfc.section.8.2" id="rfc.section.8.2">8.2</a> Informative References 1238 1260 </h2> 1239 1261 <table> … … 1276 1298 <div id="rfc.figure.u.17"></div> <pre class="inline"><a href="#header.etag" class="smpl">ETag</a> = entity-tag 1277 1299 1278 <a href="# abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in [Part2], Section 5.1>1300 <a href="#notation" class="smpl">HTTP-date</a> = <HTTP-date, defined in [Part2], Section 5.1> 1279 1301 1280 1302 <a href="#header.if-match" class="smpl">If-Match</a> = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS … … 1287 1309 <a href="#header.last-modified" class="smpl">Last-Modified</a> = HTTP-date 1288 1310 1289 <a href="# abnf.dependencies" class="smpl">OWS</a> = <OWS, defined in [Part1], Section 3.2.1>1311 <a href="#notation" class="smpl">OWS</a> = <OWS, defined in [Part1], Section 3.2.1> 1290 1312 1291 1313 <a href="#header.etag" class="smpl">entity-tag</a> = [ weak ] opaque-tag … … 1293 1315 / obs-text 1294 1316 1295 <a href="# abnf.dependencies" class="smpl">obs-text</a> = <obs-text, defined in [Part1], Section 3.2.4>1317 <a href="#notation" class="smpl">obs-text</a> = <obs-text, defined in [Part1], Section 3.2.4> 1296 1318 <a href="#header.etag" class="smpl">opaque-tag</a> = DQUOTE *etagc DQUOTE 1297 1319 … … 1318 1340 <ul class="ind"> 1319 1341 <li><a id="rfc.index.3" href="#rfc.index.3"><b>3</b></a><ul> 1320 <li>304 Not Modified (status code) <a href="#rfc.iref.27"><b>4.1</b></a>, <a href="#rfc.xref.status.304.1"> 6.1</a></li>1342 <li>304 Not Modified (status code) <a href="#rfc.iref.27"><b>4.1</b></a>, <a href="#rfc.xref.status.304.1">5.1</a></li> 1321 1343 </ul> 1322 1344 </li> 1323 1345 <li><a id="rfc.index.4" href="#rfc.index.4"><b>4</b></a><ul> 1324 <li>412 Precondition Failed (status code) <a href="#rfc.iref.28"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1"> 6.1</a></li>1346 <li>412 Precondition Failed (status code) <a href="#rfc.iref.28"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1">5.1</a></li> 1325 1347 </ul> 1326 1348 </li> 1327 1349 <li><a id="rfc.index.E" href="#rfc.index.E"><b>E</b></a><ul> 1328 <li>ETag header field <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>1350 <li>ETag header field <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> 1329 1351 </ul> 1330 1352 </li> … … 1349 1371 <li>Header Fields 1350 1372 <ul> 1351 <li>ETag <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>1352 <li>If-Match <a href="#rfc.iref.h.3"><b>3.1</b></a>, <a href="#rfc.xref.header.if-match.1"> 6.2</a></li>1353 <li>If-Modified-Since <a href="#rfc.iref.h.5"><b>3.3</b></a>, <a href="#rfc.xref.header.if-modified-since.1"> 6.2</a></li>1354 <li>If-None-Match <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>1355 <li>If-Unmodified-Since <a href="#rfc.iref.h.6"><b>3.4</b></a>, <a href="#rfc.xref.header.if-unmodified-since.1"> 6.2</a></li>1356 <li>Last-Modified <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>1373 <li>ETag <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 <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 <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 <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 <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 <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> 1357 1379 </ul> 1358 1380 </li> … … 1360 1382 </li> 1361 1383 <li><a id="rfc.index.I" href="#rfc.index.I"><b>I</b></a><ul> 1362 <li>If-Match header field <a href="#rfc.iref.i.1"><b>3.1</b></a>, <a href="#rfc.xref.header.if-match.1"> 6.2</a></li>1363 <li>If-Modified-Since header field <a href="#rfc.iref.i.3"><b>3.3</b></a>, <a href="#rfc.xref.header.if-modified-since.1"> 6.2</a></li>1364 <li>If-None-Match header field <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>1365 <li>If-Unmodified-Since header field <a href="#rfc.iref.i.4"><b>3.4</b></a>, <a href="#rfc.xref.header.if-unmodified-since.1"> 6.2</a></li>1384 <li>If-Match header field <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 <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 <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 <a href="#rfc.iref.i.4"><b>3.4</b></a>, <a href="#rfc.xref.header.if-unmodified-since.1">5.2</a></li> 1366 1388 </ul> 1367 1389 </li> 1368 1390 <li><a id="rfc.index.L" href="#rfc.index.L"><b>L</b></a><ul> 1369 <li>Last-Modified header field <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>1391 <li>Last-Modified header field <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> 1370 1392 </ul> 1371 1393 </li> … … 1375 1397 </li> 1376 1398 <li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul> 1377 <li><em>Part1</em> <a href="#rfc.xref.Part1.1">1</a>, <a href="#rfc.xref.Part1.2">2.3.3</a>, <a href="#rfc.xref.Part1.3">5</a>, <a href="#rfc.xref.Part1.4">5</a>, <a href="#rfc.xref.Part1.5">5</a>, <a href="#rfc.xref.Part1.6">5</a>, <a href="#rfc.xref.Part1.7">7</a>, <a href="#rfc.xref.Part1.8">8</a>, <a href="#Part1"><b>9.1</b></a><ul> 1378 <li><em>Section 1.2</em> <a href="#rfc.xref.Part1.3">5</a></li> 1379 <li><em>Section 3.2.1</em> <a href="#rfc.xref.Part1.5">5</a></li> 1380 <li><em>Section 3.2.4</em> <a href="#rfc.xref.Part1.6">5</a></li> 1381 <li><em>Section 4</em> <a href="#rfc.xref.Part1.2">2.3.3</a></li> 1382 <li><em>Section 9</em> <a href="#rfc.xref.Part1.8">8</a></li> 1399 <li><em>Part1</em> <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> 1400 <li><em>Section 1.2</em> <a href="#rfc.xref.Part1.3">1.2</a></li> 1401 <li><em>Section 2</em> <a href="#rfc.xref.Part1.2">1.1</a></li> 1402 <li><em>Section 3.2.1</em> <a href="#rfc.xref.Part1.5">1.2</a></li> 1403 <li><em>Section 3.2.4</em> <a href="#rfc.xref.Part1.6">1.2</a></li> 1404 <li><em>Section 4</em> <a href="#rfc.xref.Part1.7">2.3.3</a></li> 1405 <li><em>Section 9</em> <a href="#rfc.xref.Part1.9">7</a></li> 1383 1406 </ul> 1384 1407 </li> 1385 <li><em>Part2</em> <a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2"> 2.3.3</a>, <a href="#rfc.xref.Part2.3">2.3.3</a>, <a href="#rfc.xref.Part2.4">4.1</a>, <a href="#rfc.xref.Part2.5">5</a>, <a href="#rfc.xref.Part2.6">5</a>, <a href="#Part2"><b>9.1</b></a><ul>1386 <li><em>Section 5.1</em> <a href="#rfc.xref.Part2. 6">5</a></li>1387 <li><em>Section 8</em> <a href="#rfc.xref.Part2. 2">2.3.3</a></li>1388 <li><em>Section 9.3</em> <a href="#rfc.xref.Part2. 3">2.3.3</a></li>1389 <li><em>Section 9.10</em> <a href="#rfc.xref.Part2. 4">4.1</a></li>1408 <li><em>Part2</em> <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> 1409 <li><em>Section 5.1</em> <a href="#rfc.xref.Part2.3">1.2</a></li> 1410 <li><em>Section 8</em> <a href="#rfc.xref.Part2.4">2.3.3</a></li> 1411 <li><em>Section 9.3</em> <a href="#rfc.xref.Part2.5">2.3.3</a></li> 1412 <li><em>Section 9.10</em> <a href="#rfc.xref.Part2.6">4.1</a></li> 1390 1413 </ul> 1391 1414 </li> 1392 <li><em>Part5</em> <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>1415 <li><em>Part5</em> <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> 1393 1416 <li><em>Section 5.3</em> <a href="#rfc.xref.Part5.2">3.5</a></li> 1394 1417 <li><em>Section 5.4</em> <a href="#rfc.xref.Part5.1">3.3</a></li> 1395 1418 </ul> 1396 1419 </li> 1397 <li><em>Part6</em> <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>1420 <li><em>Part6</em> <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> 1398 1421 </ul> 1399 1422 </li> 1400 1423 <li><a id="rfc.index.R" href="#rfc.index.R"><b>R</b></a><ul> 1401 <li><em>RFC2119</em> <a href="#rfc.xref.RFC2119.1"> 5</a>, <a href="#RFC2119"><b>9.1</b></a></li>1402 <li><em>RFC2616</em> <a href="#rfc.xref.RFC2616.1">2.3</a>, <a href="#RFC2616"><b> 9.2</b></a><ul>1424 <li><em>RFC2119</em> <a href="#rfc.xref.RFC2119.1">1.1</a>, <a href="#RFC2119"><b>8.1</b></a></li> 1425 <li><em>RFC2616</em> <a href="#rfc.xref.RFC2616.1">2.3</a>, <a href="#RFC2616"><b>8.2</b></a><ul> 1403 1426 <li><em>Section 3.11</em> <a href="#rfc.xref.RFC2616.1">2.3</a></li> 1404 1427 </ul> 1405 1428 </li> 1406 <li><em>RFC3864</em> <a href="#rfc.xref.RFC3864.1"> 6.2</a>, <a href="#RFC3864"><b>9.2</b></a></li>1407 <li><em>RFC4918</em> <a href="#rfc.xref.RFC4918.1">2</a>, <a href="#RFC4918"><b> 9.2</b></a></li>1408 <li><em>RFC5234</em> <a href="#rfc.xref.RFC5234.1"> 5</a>, <a href="#rfc.xref.RFC5234.2">5</a>, <a href="#RFC5234"><b>9.1</b></a><ul>1409 <li><em>Appendix B.1</em> <a href="#rfc.xref.RFC5234.2"> 5</a></li>1429 <li><em>RFC3864</em> <a href="#rfc.xref.RFC3864.1">5.2</a>, <a href="#RFC3864"><b>8.2</b></a></li> 1430 <li><em>RFC4918</em> <a href="#rfc.xref.RFC4918.1">2</a>, <a href="#RFC4918"><b>8.2</b></a></li> 1431 <li><em>RFC5234</em> <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> 1432 <li><em>Appendix B.1</em> <a href="#rfc.xref.RFC5234.2">1.2</a></li> 1410 1433 </ul> 1411 1434 </li> … … 1416 1439 <li>Status Codes 1417 1440 <ul> 1418 <li>304 Not Modified <a href="#rfc.iref.s.2"><b>4.1</b></a>, <a href="#rfc.xref.status.304.1"> 6.1</a></li>1419 <li>412 Precondition Failed <a href="#rfc.iref.s.3"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1"> 6.1</a></li>1441 <li>304 Not Modified <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 <a href="#rfc.iref.s.3"><b>4.2</b></a>, <a href="#rfc.xref.status.412.1">5.1</a></li> 1420 1443 </ul> 1421 1444 </li>
Note: See TracChangeset
for help on using the changeset viewer.