Ignore:
Timestamp:
Jul 16, 2012, 7:30:03 AM (7 years ago)
Author:
julian.reschke@…
Message:

Move imported ABNF rules to appendix sections

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p6-cache.html

    r1803 r1805  
    487487      <link rel="Chapter" href="#rfc.section.12" title="12 References">
    488488      <link rel="Appendix" title="A Changes from RFC 2616" href="#rfc.section.A">
    489       <link rel="Appendix" title="B Collected ABNF" href="#rfc.section.B">
    490       <link rel="Appendix" title="C Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.C">
     489      <link rel="Appendix" title="B Imported ABNF" href="#rfc.section.B">
     490      <link rel="Appendix" title="C Collected ABNF" href="#rfc.section.C">
     491      <link rel="Appendix" title="D Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.D">
    491492      <link href="p5-range.html" rel="prev">
    492493      <link href="p7-auth.html" rel="next">
     
    559560      <p>The current issues list is at &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/report/3">http://tools.ietf.org/wg/httpbis/trac/report/3</a>&gt; and related documents (including fancy diffs) can be found at &lt;<a href="http://tools.ietf.org/wg/httpbis/">http://tools.ietf.org/wg/httpbis/</a>&gt;.
    560561      </p> 
    561       <p>The changes in this draft are summarized in <a href="#changes.since.19" title="Since draft-ietf-httpbis-p6-cache-19">Appendix&nbsp;C.1</a>.
     562      <p>The changes in this draft are summarized in <a href="#changes.since.19" title="Since draft-ietf-httpbis-p6-cache-19">Appendix&nbsp;D.1</a>.
    562563      </p>
    563564      <h1><a id="rfc.status" href="#rfc.status">Status of This Memo</a></h1>
     
    593594               <li>1.3&nbsp;&nbsp;&nbsp;<a href="#intro.conformance.and.error.handling">Conformance and Error Handling</a></li>
    594595               <li>1.4&nbsp;&nbsp;&nbsp;<a href="#notation">Syntax Notation</a><ul>
    595                      <li>1.4.1&nbsp;&nbsp;&nbsp;<a href="#core.rules">Core Rules</a></li>
    596                      <li>1.4.2&nbsp;&nbsp;&nbsp;<a href="#abnf.dependencies">ABNF Rules defined in other Parts of the Specification</a></li>
    597                      <li>1.4.3&nbsp;&nbsp;&nbsp;<a href="#delta-seconds">Delta Seconds</a></li>
     596                     <li>1.4.1&nbsp;&nbsp;&nbsp;<a href="#delta-seconds">Delta Seconds</a></li>
    598597                  </ul>
    599598               </li>
     
    684683         <li><a href="#rfc.authors">Authors' Addresses</a></li>
    685684         <li>A.&nbsp;&nbsp;&nbsp;<a href="#changes.from.rfc.2616">Changes from RFC 2616</a></li>
    686          <li>B.&nbsp;&nbsp;&nbsp;<a href="#collected.abnf">Collected ABNF</a></li>
    687          <li>C.&nbsp;&nbsp;&nbsp;<a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul>
    688                <li>C.1&nbsp;&nbsp;&nbsp;<a href="#changes.since.19">Since draft-ietf-httpbis-p6-cache-19</a></li>
     685         <li>B.&nbsp;&nbsp;&nbsp;<a href="#imported.abnf">Imported ABNF</a></li>
     686         <li>C.&nbsp;&nbsp;&nbsp;<a href="#collected.abnf">Collected ABNF</a></li>
     687         <li>D.&nbsp;&nbsp;&nbsp;<a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul>
     688               <li>D.1&nbsp;&nbsp;&nbsp;<a href="#changes.since.19">Since draft-ietf-httpbis-p6-cache-19</a></li>
    689689            </ul>
    690690         </li>
     
    807807      </p>
    808808      <h2 id="rfc.section.1.4"><a href="#rfc.section.1.4">1.4</a>&nbsp;<a id="notation" href="#notation">Syntax Notation</a></h2>
    809       <p id="rfc.section.1.4.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.2"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>. <a href="#collected.abnf" title="Collected ABNF">Appendix&nbsp;B</a> shows the collected ABNF with the list rule expanded.
    810       </p>
    811       <p id="rfc.section.1.4.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
    812          (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
    813          character).
    814       </p>
    815       <h3 id="rfc.section.1.4.1"><a href="#rfc.section.1.4.1">1.4.1</a>&nbsp;<a id="core.rules" href="#core.rules">Core Rules</a></h3>
    816       <p id="rfc.section.1.4.1.p.1">The core rules below are defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>:
    817       </p>
    818       <div id="rfc.figure.u.1"></div><pre class="inline">  <a href="#core.rules" class="smpl">OWS</a>           = &lt;OWS, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>&gt;
    819   <a href="#core.rules" class="smpl">quoted-string</a> = &lt;quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>&gt;
    820   <a href="#core.rules" class="smpl">token</a>         = &lt;token, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>&gt;
    821 </pre><h3 id="rfc.section.1.4.2"><a href="#rfc.section.1.4.2">1.4.2</a>&nbsp;<a id="abnf.dependencies" href="#abnf.dependencies">ABNF Rules defined in other Parts of the Specification</a></h3>
    822       <p id="rfc.section.1.4.2.p.1">The ABNF rules below are defined in other parts:</p>
    823       <div id="rfc.figure.u.2"></div><pre class="inline">  <a href="#abnf.dependencies" class="smpl">field-name</a>    = &lt;field-name, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a>&gt;
    824   <a href="#abnf.dependencies" class="smpl">HTTP-date</a>     = &lt;HTTP-date, defined in <a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>, <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 5.1</a>&gt;
    825   <a href="#abnf.dependencies" class="smpl">port</a>          = &lt;port, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>&gt;
    826   <a href="#abnf.dependencies" class="smpl">pseudonym</a>     = &lt;pseudonym, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#header.via" title="Via">Section 6.2</a>&gt;
    827   <a href="#abnf.dependencies" class="smpl">uri-host</a>      = &lt;uri-host, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>&gt;
    828 </pre><h3 id="rfc.section.1.4.3"><a href="#rfc.section.1.4.3">1.4.3</a>&nbsp;<a id="delta-seconds" href="#delta-seconds">Delta Seconds</a></h3>
    829       <p id="rfc.section.1.4.3.p.1">The delta-seconds rule specifies a non-negative integer, representing time in seconds.</p>
    830       <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.1"></span>  <a href="#delta-seconds" class="smpl">delta-seconds</a>  = 1*<a href="#notation" class="smpl">DIGIT</a>
    831 </pre><p id="rfc.section.1.4.3.p.3">If an implementation receives a delta-seconds value larger than the largest positive integer it can represent, or if any of
     809      <p id="rfc.section.1.4.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.2"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>. <a href="#imported.abnf" title="Imported ABNF">Appendix&nbsp;B</a> describes rules imported from other documents. <a href="#collected.abnf" title="Collected ABNF">Appendix&nbsp;C</a> shows the collected ABNF with the list rule expanded.
     810      </p>
     811      <h3 id="rfc.section.1.4.1"><a href="#rfc.section.1.4.1">1.4.1</a>&nbsp;<a id="delta-seconds" href="#delta-seconds">Delta Seconds</a></h3>
     812      <p id="rfc.section.1.4.1.p.1">The delta-seconds rule specifies a non-negative integer, representing time in seconds.</p>
     813      <div id="rfc.figure.u.1"></div><pre class="inline"><span id="rfc.iref.g.1"></span>  <a href="#delta-seconds" class="smpl">delta-seconds</a>  = 1*<a href="#imported.abnf" class="smpl">DIGIT</a>
     814</pre><p id="rfc.section.1.4.1.p.3">If an implementation receives a delta-seconds value larger than the largest positive integer it can represent, or if any of
    832815         its subsequent calculations overflows, it <em class="bcp14">MUST</em> consider the value to be 2147483648 (2<sup>31</sup>). Recipients parsing a delta-seconds value <em class="bcp14">MUST</em> use an arithmetic type of at least 31 bits of range, and senders <em class="bcp14">MUST NOT</em> send delta-seconds with a value greater than 2147483648.
    833816      </p>
     
    835818      <div id="rfc.iref.c.5"></div>
    836819      <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a>&nbsp;<a id="caching.overview" href="#caching.overview">Overview of Cache Operation</a></h1>
    837       <p id="rfc.section.2.p.1">Proper cache operation preserves the semantics of HTTP transfers (<a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>) while eliminating the transfer of information already held in the cache. Although caching is an entirely <em class="bcp14">OPTIONAL</em> feature of HTTP, we assume that reusing the cached response is desirable and that such reuse is the default behavior when
     820      <p id="rfc.section.2.p.1">Proper cache operation preserves the semantics of HTTP transfers (<a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>) while eliminating the transfer of information already held in the cache. Although caching is an entirely <em class="bcp14">OPTIONAL</em> feature of HTTP, we assume that reusing the cached response is desirable and that such reuse is the default behavior when
    838821         no requirement or locally-desired configuration prevents it. Therefore, HTTP cache requirements are focused on preventing
    839822         a cache from either storing a non-reusable response or reusing a stored response inappropriately.
     
    887870      </p>
    888871      <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;<a id="incomplete.responses" href="#incomplete.responses">Storing Incomplete Responses</a></h2>
    889       <p id="rfc.section.3.1.p.1">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: Message Routing and Syntax&#34;">[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
     872      <p id="rfc.section.3.1.p.1">A response message is considered complete when all of the octets indicated by the message framing (<a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[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
    890873            (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
    891874            (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.
     
    907890      </p>
    908891      <ul>
    909          <li>The presented effective request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>) and that of the stored response match, and
     892         <li>The presented effective request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>) and that of the stored response match, and
    910893         </li>
    911894         <li>the request method associated with the stored response allows it to be used for the presented request, and</li>
     
    931914      <p id="rfc.section.4.p.3">When a stored response is used to satisfy a request without validation, a cache <em class="bcp14">MUST</em> include a single <a href="#header.age" class="smpl">Age</a> header field (<a href="#header.age" id="rfc.xref.header.age.1" title="Age">Section&nbsp;7.1</a>) in the response with a value equal to the stored response's current_age; see <a href="#age.calculations" title="Calculating Age">Section&nbsp;4.1.3</a>.
    932915      </p>
    933       <p id="rfc.section.4.p.4">A cache <em class="bcp14">MUST</em> write through requests with methods that are unsafe (<a href="p2-semantics.html#safe.methods" title="Safe Methods">Section 2.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>) to the origin server; i.e., a cache is not allowed to generate a reply to such a request before having forwarded the request
     916      <p id="rfc.section.4.p.4">A cache <em class="bcp14">MUST</em> write through requests with methods that are unsafe (<a href="p2-semantics.html#safe.methods" title="Safe Methods">Section 2.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.2"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>) to the origin server; i.e., a cache is not allowed to generate a reply to such a request before having forwarded the request
    934917         and having received a corresponding response.
    935918      </p>
     
    957940         constraints on their results.
    958941      </p>
    959       <div id="rfc.figure.u.4"></div>
     942      <div id="rfc.figure.u.2"></div>
    960943      <p>The calculation to determine if a response is fresh is:</p>  <pre class="text">   response_is_fresh = (freshness_lifetime &gt; current_age)
    961944</pre> <p id="rfc.section.4.1.p.6">The freshness_lifetime is defined in <a href="#calculating.freshness.lifetime" title="Calculating Freshness Lifetime">Section&nbsp;4.1.1</a>; the current_age is defined in <a href="#age.calculations" title="Calculating Age">Section&nbsp;4.1.3</a>.
     
    985968      <h3 id="rfc.section.4.1.2"><a href="#rfc.section.4.1.2">4.1.2</a>&nbsp;<a id="heuristic.freshness" href="#heuristic.freshness">Calculating Heuristic Freshness</a></h3>
    986969      <p id="rfc.section.4.1.2.p.1">If no explicit expiration time is present in a stored response that has a status code whose definition allows heuristic freshness
    987          to be used (including the following in <a href="p2-semantics.html#status.codes" title="Status Codes">Section 4</a> of <a href="#Part2" id="rfc.xref.Part2.4"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>: <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a>, <a href="p2-semantics.html#status.203" class="smpl">203 (Non-Authoritative Information)</a>, <a href="p5-range.html#status.206" class="smpl">206 (Partial
     970         to be used (including the following in <a href="p2-semantics.html#status.codes" title="Status Codes">Section 4</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>: <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a>, <a href="p2-semantics.html#status.203" class="smpl">203 (Non-Authoritative Information)</a>, <a href="p5-range.html#status.206" class="smpl">206 (Partial
    988971            Content)</a>, <a href="p2-semantics.html#status.300" class="smpl">300 (Multiple Choices)</a>, <a href="p2-semantics.html#status.301" class="smpl">301 (Moved
    989972            Permanently)</a> and <a href="p2-semantics.html#status.410" class="smpl">410 (Gone)</a>), a cache <em class="bcp14">MAY</em> calculate a heuristic expiration time. A cache <em class="bcp14">MUST NOT</em> use heuristics to determine freshness for responses with status codes that do not explicitly allow it.
     
    10181001      <ul class="empty">
    10191002         <li>HTTP/1.1 requires origin servers to send a <a href="p2-semantics.html#header.date" class="smpl">Date</a> header field, if possible, with every response, giving the time at which the response was generated. The term "date_value"
    1020             denotes the value of the Date header field, in a form appropriate for arithmetic operations. See <a href="p2-semantics.html#header.date" title="Date">Section 9.10</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a> for the definition of the Date header field, and for requirements regarding responses without it.
     1003            denotes the value of the Date header field, in a form appropriate for arithmetic operations. See <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: Semantics and Payloads">[Part2]</cite></a> for the definition of the Date header field, and for requirements regarding responses without it.
    10211004         </li>
    10221005      </ul>
     
    10451028         </li>
    10461029      </ol>
    1047       <div id="rfc.figure.u.5"></div> <pre class="text">  apparent_age = max(0, response_time - date_value);
     1030      <div id="rfc.figure.u.3"></div> <pre class="text">  apparent_age = max(0, response_time - date_value);
    10481031
    10491032  response_delay = response_time - request_time;
    10501033  corrected_age_value = age_value + response_delay; 
    1051 </pre> <div id="rfc.figure.u.6"></div>
     1034</pre> <div id="rfc.figure.u.4"></div>
    10521035      <p>These <em class="bcp14">SHOULD</em> be combined as
    10531036      </p>  <pre class="text">  corrected_initial_age = max(apparent_age, corrected_age_value);
     
    10571040         was last validated by the origin server to the corrected_initial_age.
    10581041      </p>
    1059       <div id="rfc.figure.u.7"></div><pre class="text">  resident_time = now - response_time;
     1042      <div id="rfc.figure.u.5"></div><pre class="text">  resident_time = now - response_time;
    10601043  current_age = corrected_initial_age + resident_time;
    10611044</pre><p id="rfc.section.4.1.3.p.14">Additionally, to avoid common problems in date parsing:</p>
     
    11491132      <ul>
    11501133         <li>adding or removing whitespace, where allowed in the header field's syntax</li>
    1151          <li>combining multiple header fields with the same field name (see <a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1.13"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>)
     1134         <li>combining multiple header fields with the same field name (see <a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1.5"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>)
    11521135         </li>
    11531136         <li>normalizing both header field values in a way that is known to have identical semantics, according to the header field's specification
     
    12001183      </ul>
    12011184      <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a>&nbsp;<a id="invalidation.after.updates.or.deletions" href="#invalidation.after.updates.or.deletions">Request Methods that Invalidate</a></h1>
    1202       <p id="rfc.section.6.p.1">Because unsafe request methods (<a href="p2-semantics.html#safe.methods" title="Safe Methods">Section 2.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.6"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>) such as PUT, POST or DELETE have the potential for changing state on the origin server, intervening caches can use them
     1185      <p id="rfc.section.6.p.1">Because unsafe request methods (<a href="p2-semantics.html#safe.methods" title="Safe Methods">Section 2.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>) such as PUT, POST or DELETE have the potential for changing state on the origin server, intervening caches can use them
    12031186         to keep their contents up-to-date.
    12041187      </p>
    1205       <p id="rfc.section.6.p.2">A cache <em class="bcp14">MUST</em> invalidate the effective Request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.14"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>) as well as the URI(s) in the <a href="p2-semantics.html#header.location" class="smpl">Location</a> and <a href="p2-semantics.html#header.content-location" class="smpl">Content-Location</a> response header fields (if present) when a non-error response to a request with an unsafe method is received.
    1206       </p>
    1207       <p id="rfc.section.6.p.3">However, a cache <em class="bcp14">MUST NOT</em> invalidate a URI from a <a href="p2-semantics.html#header.location" class="smpl">Location</a> or <a href="p2-semantics.html#header.content-location" class="smpl">Content-Location</a> response header field if the host part of that URI differs from the host part in the effective request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.15"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>). This helps prevent denial of service attacks.
    1208       </p>
    1209       <p id="rfc.section.6.p.4">A cache <em class="bcp14">MUST</em> invalidate the effective request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.16"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>) when it receives a non-error response to a request with a method whose safety is unknown.
     1188      <p id="rfc.section.6.p.2">A cache <em class="bcp14">MUST</em> invalidate the effective Request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>) as well as the URI(s) in the <a href="p2-semantics.html#header.location" class="smpl">Location</a> and <a href="p2-semantics.html#header.content-location" class="smpl">Content-Location</a> response header fields (if present) when a non-error response to a request with an unsafe method is received.
     1189      </p>
     1190      <p id="rfc.section.6.p.3">However, a cache <em class="bcp14">MUST NOT</em> invalidate a URI from a <a href="p2-semantics.html#header.location" class="smpl">Location</a> or <a href="p2-semantics.html#header.content-location" class="smpl">Content-Location</a> response header field if the host part of that URI differs from the host part in the effective request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>). This helps prevent denial of service attacks.
     1191      </p>
     1192      <p id="rfc.section.6.p.4">A cache <em class="bcp14">MUST</em> invalidate the effective request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>) when it receives a non-error response to a request with a method whose safety is unknown.
    12101193      </p>
    12111194      <p id="rfc.section.6.p.5">Here, a "non-error response" is one with a <a href="p2-semantics.html#status.2xx" class="smpl">2xx (Successful)</a> or <a href="p2-semantics.html#status.3xx" class="smpl">3xx (Redirection)</a> status code. "Invalidate" means that the cache will either remove all stored responses related to the effective request URI,
     
    12241207         validated at the origin server. Age values are calculated as specified in <a href="#age.calculations" title="Calculating Age">Section&nbsp;4.1.3</a>.
    12251208      </p>
    1226       <div id="rfc.figure.u.8"></div><pre class="inline"><span id="rfc.iref.g.2"></span>  <a href="#header.age" class="smpl">Age</a> = <a href="#delta-seconds" class="smpl">delta-seconds</a>
    1227 </pre><p id="rfc.section.7.1.p.3">Age field-values are non-negative integers, representing time in seconds (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.3</a>).
     1209      <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.2"></span>  <a href="#header.age" class="smpl">Age</a> = <a href="#delta-seconds" class="smpl">delta-seconds</a>
     1210</pre><p id="rfc.section.7.1.p.3">Age field-values are non-negative integers, representing time in seconds (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.1</a>).
    12281211      </p>
    12291212      <p id="rfc.section.7.1.p.4">The presence of an Age header field in a response implies that a response is not first-hand. However, the converse is not
     
    12511234         forms, even if one is documented to be preferred. For any directive not defined by this specification, recipients <em class="bcp14">MUST</em> accept both forms.
    12521235      </p>
    1253       <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span>  <a href="#header.cache-control" class="smpl">Cache-Control</a>   = 1#<a href="#header.cache-control" class="smpl">cache-directive</a>
    1254 
    1255   <a href="#header.cache-control" class="smpl">cache-directive</a> = <a href="#core.rules" class="smpl">token</a> [ "=" ( <a href="#core.rules" class="smpl">token</a> / <a href="#core.rules" class="smpl">quoted-string</a> ) ]
     1236      <div id="rfc.figure.u.7"></div><pre class="inline"><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span>  <a href="#header.cache-control" class="smpl">Cache-Control</a>   = 1#<a href="#header.cache-control" class="smpl">cache-directive</a>
     1237
     1238  <a href="#header.cache-control" class="smpl">cache-directive</a> = <a href="#imported.abnf" class="smpl">token</a> [ "=" ( <a href="#imported.abnf" class="smpl">token</a> / <a href="#imported.abnf" class="smpl">quoted-string</a> ) ]
    12561239</pre><p id="rfc.section.7.2.p.7">For the cache directives defined below, no argument is defined (nor allowed) otherwise stated otherwise.</p>
    12571240      <h3 id="rfc.section.7.2.1"><a href="#rfc.section.7.2.1">7.2.1</a>&nbsp;<a id="cache-request-directive" href="#cache-request-directive">Request Cache-Control Directives</a></h3>
     
    12771260      <p id="rfc.section.7.2.1.3.p.1">Argument syntax: </p>
    12781261      <ul class="empty">
    1279          <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.3</a>)
     1262         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.1</a>)
    12801263         </li>
    12811264      </ul>
     
    12911274      <p id="rfc.section.7.2.1.4.p.1">Argument syntax: </p>
    12921275      <ul class="empty">
    1293          <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.3</a>)
     1276         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.1</a>)
    12941277         </li>
    12951278      </ul>
     
    13061289      <p id="rfc.section.7.2.1.5.p.1">Argument syntax: </p>
    13071290      <ul class="empty">
    1308          <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.3</a>)
     1291         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.1</a>)
    13091292         </li>
    13101293      </ul>
     
    13381321      <p id="rfc.section.7.2.2.2.p.1">Argument syntax: </p>
    13391322      <ul class="empty">
    1340          <li>#<a href="#abnf.dependencies" class="smpl">field-name</a>
     1323         <li>#<a href="#imported.abnf" class="smpl">field-name</a>
    13411324         </li>
    13421325      </ul>
     
    13601343      <p id="rfc.section.7.2.2.3.p.1">Argument syntax: </p>
    13611344      <ul class="empty">
    1362          <li>#<a href="#abnf.dependencies" class="smpl">field-name</a>
     1345         <li>#<a href="#imported.abnf" class="smpl">field-name</a>
    13631346         </li>
    13641347      </ul>
     
    14101393      <p id="rfc.section.7.2.2.7.p.1">Argument syntax: </p>
    14111394      <ul class="empty">
    1412          <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.3</a>)
     1395         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.1</a>)
    14131396         </li>
    14141397      </ul>
     
    14231406      <p id="rfc.section.7.2.2.8.p.1">Argument syntax: </p>
    14241407      <ul class="empty">
    1425          <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.3</a>)
     1408         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.4.1</a>)
    14261409         </li>
    14271410      </ul>
     
    14531436         use an otherwise private response in their shared cache(s) could do so by including
    14541437      </p>
    1455       <div id="rfc.figure.u.10"></div><pre class="text">  Cache-Control: private, community="UCI"
     1438      <div id="rfc.figure.u.8"></div><pre class="text">  Cache-Control: private, community="UCI"
    14561439</pre><p id="rfc.section.7.2.3.p.5">A cache seeing this header field will act correctly even if the cache does not understand the community cache-extension, since
    14571440         it will also see and understand the private directive and thus default to the safe behavior.
     
    14871470         that time.
    14881471      </p>
    1489       <p id="rfc.section.7.3.p.3">The field-value is an absolute date and time as defined by HTTP-date in <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 5.1</a> of <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>; a sender <em class="bcp14">MUST</em> use the rfc1123-date format.
    1490       </p>
    1491       <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.5"></span>  <a href="#header.expires" class="smpl">Expires</a> = <a href="#abnf.dependencies" class="smpl">HTTP-date</a>
    1492 </pre><div id="rfc.figure.u.12"></div>
     1472      <p id="rfc.section.7.3.p.3">The field-value is an absolute date and time as defined by HTTP-date in <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 5.1</a> of <a href="#Part2" id="rfc.xref.Part2.6"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>; a sender <em class="bcp14">MUST</em> use the rfc1123-date format.
     1473      </p>
     1474      <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.5"></span>  <a href="#header.expires" class="smpl">Expires</a> = <a href="#imported.abnf" class="smpl">HTTP-date</a>
     1475</pre><div id="rfc.figure.u.10"></div>
    14931476      <p>For example</p>  <pre class="text">  Expires: Thu, 01 Dec 1994 16:00:00 GMT
    14941477</pre><p id="rfc.section.7.3.p.6">A cache <em class="bcp14">MUST</em> treat other invalid date formats, especially including the value "0", as in the past (i.e., "already expired").
     
    15171500         deprecates such extensions to improve interoperability.
    15181501      </p>
    1519       <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span>  <a href="#header.pragma" class="smpl">Pragma</a>           = 1#<a href="#header.pragma" class="smpl">pragma-directive</a>
     1502      <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span>  <a href="#header.pragma" class="smpl">Pragma</a>           = 1#<a href="#header.pragma" class="smpl">pragma-directive</a>
    15201503  <a href="#header.pragma" class="smpl">pragma-directive</a> = "no-cache" / <a href="#header.pragma" class="smpl">extension-pragma</a>
    1521   <a href="#header.pragma" class="smpl">extension-pragma</a> = <a href="#core.rules" class="smpl">token</a> [ "=" ( <a href="#core.rules" class="smpl">token</a> / <a href="#core.rules" class="smpl">quoted-string</a> ) ]
     1504  <a href="#header.pragma" class="smpl">extension-pragma</a> = <a href="#imported.abnf" class="smpl">token</a> [ "=" ( <a href="#imported.abnf" class="smpl">token</a> / <a href="#imported.abnf" class="smpl">quoted-string</a> ) ]
    15221505</pre><p id="rfc.section.7.4.p.4">When the <a href="#header.cache-control" class="smpl">Cache-Control</a> header field is not present in a request, the no-cache request pragma-directive <em class="bcp14">MUST</em> have the same effect on caches as if "Cache-Control: no-cache" were present (see <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;7.2.1</a>).
    15231506      </p>
     
    15251508         no-cache is purposefully omitted to target other <a href="#header.cache-control" class="smpl">Cache-Control</a> response directives at HTTP/1.1 caches. For example:
    15261509      </p>
    1527       <div id="rfc.figure.u.14"></div> <pre class="text">GET / HTTP/1.1
     1510      <div id="rfc.figure.u.12"></div> <pre class="text">GET / HTTP/1.1
    15281511Host: www.example.com
    15291512Cache-Control: max-age=30
     
    15471530         the representation.
    15481531      </p>
    1549       <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.9"></span>  <a href="#header.vary" class="smpl">Vary</a> = "*" / 1#<a href="#abnf.dependencies" class="smpl">field-name</a>
     1532      <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.9"></span>  <a href="#header.vary" class="smpl">Vary</a> = "*" / 1#<a href="#imported.abnf" class="smpl">field-name</a>
    15501533</pre><p id="rfc.section.7.5.p.5">The set of header fields named by the Vary field value is known as the selecting header fields.</p>
    15511534      <p id="rfc.section.7.5.p.6">A server <em class="bcp14">SHOULD</em> include a Vary header field with any cacheable response that is subject to server-driven negotiation. Doing so allows a cache
     
    15741557         be applied to response messages.
    15751558      </p>
    1576       <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span>  <a href="#header.warning" class="smpl">Warning</a>       = 1#<a href="#header.warning" class="smpl">warning-value</a>
     1559      <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span>  <a href="#header.warning" class="smpl">Warning</a>       = 1#<a href="#header.warning" class="smpl">warning-value</a>
    15771560 
    1578   <a href="#header.warning" class="smpl">warning-value</a> = <a href="#header.warning" class="smpl">warn-code</a> <a href="#notation" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-agent</a> <a href="#notation" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-text</a>
    1579                                         [<a href="#notation" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-date</a>]
     1561  <a href="#header.warning" class="smpl">warning-value</a> = <a href="#header.warning" class="smpl">warn-code</a> <a href="#imported.abnf" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-agent</a> <a href="#imported.abnf" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-text</a>
     1562                                        [<a href="#imported.abnf" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-date</a>]
    15801563 
    1581   <a href="#header.warning" class="smpl">warn-code</a>  = 3<a href="#notation" class="smpl">DIGIT</a>
    1582   <a href="#header.warning" class="smpl">warn-agent</a> = ( <a href="#abnf.dependencies" class="smpl">uri-host</a> [ ":" <a href="#abnf.dependencies" class="smpl">port</a> ] ) / <a href="#abnf.dependencies" class="smpl">pseudonym</a>
     1564  <a href="#header.warning" class="smpl">warn-code</a>  = 3<a href="#imported.abnf" class="smpl">DIGIT</a>
     1565  <a href="#header.warning" class="smpl">warn-agent</a> = ( <a href="#imported.abnf" class="smpl">uri-host</a> [ ":" <a href="#imported.abnf" class="smpl">port</a> ] ) / <a href="#imported.abnf" class="smpl">pseudonym</a>
    15831566                  ; the name or pseudonym of the server adding
    15841567                  ; the Warning header field, for use in debugging
    1585   <a href="#header.warning" class="smpl">warn-text</a>  = <a href="#core.rules" class="smpl">quoted-string</a>
    1586   <a href="#header.warning" class="smpl">warn-date</a>  = <a href="#notation" class="smpl">DQUOTE</a> <a href="#abnf.dependencies" class="smpl">HTTP-date</a> <a href="#notation" class="smpl">DQUOTE</a>
     1568  <a href="#header.warning" class="smpl">warn-text</a>  = <a href="#imported.abnf" class="smpl">quoted-string</a>
     1569  <a href="#header.warning" class="smpl">warn-date</a>  = <a href="#imported.abnf" class="smpl">DQUOTE</a> <a href="#imported.abnf" class="smpl">HTTP-date</a> <a href="#imported.abnf" class="smpl">DQUOTE</a>
    15871570</pre><p id="rfc.section.7.6.p.5">Multiple warnings can be attached to a response (either by the origin server or by a cache), including multiple warnings with
    15881571         the same code number, only differing in warn-text.
     
    18911874      </p>
    18921875      <h1 id="rfc.section.11"><a href="#rfc.section.11">11.</a>&nbsp;<a id="acks" href="#acks">Acknowledgments</a></h1>
    1893       <p id="rfc.section.11.p.1">See <a href="p1-messaging.html#acks" title="Acknowledgments">Section 9</a> of <a href="#Part1" id="rfc.xref.Part1.17"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>.
     1876      <p id="rfc.section.11.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: Message Routing and Syntax&#34;">[Part1]</cite></a>.
    18941877      </p>
    18951878      <h1 id="rfc.references"><a id="rfc.section.12" href="#rfc.section.12">12.</a> References
     
    19911974      <p id="rfc.section.A.p.6">Introduce Cache Directive and Warn Code Registries. (<a href="#cache.control.extensions" title="Cache Control Extensions">Section&nbsp;7.2.3</a> and <a href="#warn.code.extensions" title="Warn Code Extensions">Section&nbsp;7.6.8</a>)
    19921975      </p>
    1993       <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a>&nbsp;<a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1>
     1976      <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a>&nbsp;<a id="imported.abnf" href="#imported.abnf">Imported ABNF</a></h1>
     1977      <p id="rfc.section.B.p.1">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
     1978         (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
     1979         character).
     1980      </p>
     1981      <p id="rfc.section.B.p.2">The rules below are defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>:
     1982      </p>
     1983      <div id="rfc.figure.u.15"></div><pre class="inline">  <a href="#imported.abnf" class="smpl">OWS</a>           = &lt;OWS, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>&gt;
     1984  <a href="#imported.abnf" class="smpl">field-name</a>    = &lt;field-name, defined in <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a>&gt;
     1985  <a href="#imported.abnf" class="smpl">quoted-string</a> = &lt;quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.13"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>&gt;
     1986  <a href="#imported.abnf" class="smpl">token</a>         = &lt;token, defined in <a href="#Part1" id="rfc.xref.Part1.14"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>&gt;
     1987
     1988  <a href="#imported.abnf" class="smpl">port</a>          = &lt;port, defined in <a href="#Part1" id="rfc.xref.Part1.15"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>&gt;
     1989  <a href="#imported.abnf" class="smpl">pseudonym</a>     = &lt;pseudonym, defined in <a href="#Part1" id="rfc.xref.Part1.16"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#header.via" title="Via">Section 6.2</a>&gt;
     1990  <a href="#imported.abnf" class="smpl">uri-host</a>      = &lt;uri-host, defined in <a href="#Part1" id="rfc.xref.Part1.17"><cite title="HTTP/1.1, part 1: Message Routing and Syntax&#34;">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>&gt;
     1991</pre><p id="rfc.section.B.p.4">The rules below are defined in other parts:</p>
     1992      <div id="rfc.figure.u.16"></div><pre class="inline">  <a href="#imported.abnf" class="smpl">HTTP-date</a>     = &lt;HTTP-date, defined in <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>, <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 5.1</a>&gt;
     1993</pre><h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a>&nbsp;<a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1>
    19941994      <div id="rfc.figure.u.17"></div> <pre class="inline"><a href="#header.age" class="smpl">Age</a> = delta-seconds
    19951995
     
    19991999<a href="#header.expires" class="smpl">Expires</a> = HTTP-date
    20002000
    2001 <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = &lt;HTTP-date, defined in [Part2], Section 5.1&gt;
    2002 
    2003 <a href="#core.rules" class="smpl">OWS</a> = &lt;OWS, defined in [Part1], Section 3.2.1&gt;
     2001<a href="#imported.abnf" class="smpl">HTTP-date</a> = &lt;HTTP-date, defined in [Part2], Section 5.1&gt;
     2002
     2003<a href="#imported.abnf" class="smpl">OWS</a> = &lt;OWS, defined in [Part1], Section 3.2.1&gt;
    20042004
    20052005<a href="#header.pragma" class="smpl">Pragma</a> = *( "," OWS ) pragma-directive *( OWS "," [ OWS
     
    20182018<a href="#header.pragma" class="smpl">extension-pragma</a> = token [ "=" ( token / quoted-string ) ]
    20192019
    2020 <a href="#abnf.dependencies" class="smpl">field-name</a> = &lt;field-name, defined in [Part1], Section 3.2&gt;
    2021 
    2022 <a href="#abnf.dependencies" class="smpl">port</a> = &lt;port, defined in [Part1], Section 2.8&gt;
     2020<a href="#imported.abnf" class="smpl">field-name</a> = &lt;field-name, defined in [Part1], Section 3.2&gt;
     2021
     2022<a href="#imported.abnf" class="smpl">port</a> = &lt;port, defined in [Part1], Section 2.8&gt;
    20232023<a href="#header.pragma" class="smpl">pragma-directive</a> = "no-cache" / extension-pragma
    2024 <a href="#abnf.dependencies" class="smpl">pseudonym</a> = &lt;pseudonym, defined in [Part1], Section 6.2&gt;
    2025 
    2026 <a href="#core.rules" class="smpl">quoted-string</a> = &lt;quoted-string, defined in [Part1], Section 3.2.4&gt;
    2027 
    2028 <a href="#core.rules" class="smpl">token</a> = &lt;token, defined in [Part1], Section 3.2.4&gt;
    2029 
    2030 <a href="#abnf.dependencies" class="smpl">uri-host</a> = &lt;uri-host, defined in [Part1], Section 2.8&gt;
     2024<a href="#imported.abnf" class="smpl">pseudonym</a> = &lt;pseudonym, defined in [Part1], Section 6.2&gt;
     2025
     2026<a href="#imported.abnf" class="smpl">quoted-string</a> = &lt;quoted-string, defined in [Part1], Section 3.2.4&gt;
     2027
     2028<a href="#imported.abnf" class="smpl">token</a> = &lt;token, defined in [Part1], Section 3.2.4&gt;
     2029
     2030<a href="#imported.abnf" class="smpl">uri-host</a> = &lt;uri-host, defined in [Part1], Section 2.8&gt;
    20312031
    20322032<a href="#header.warning" class="smpl">warn-agent</a> = ( uri-host [ ":" port ] ) / pseudonym
     
    20362036<a href="#header.warning" class="smpl">warning-value</a> = warn-code SP warn-agent SP warn-text [ SP warn-date
    20372037 ]
    2038 </pre> <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a>&nbsp;<a id="change.log" href="#change.log">Change Log (to be removed by RFC Editor before publication)</a></h1>
    2039       <p id="rfc.section.C.p.1">Changes up to the first Working Group Last Call draft are summarized in &lt;<a href="http://trac.tools.ietf.org/html/draft-ietf-httpbis-p6-cache-19#appendix-C">http://trac.tools.ietf.org/html/draft-ietf-httpbis-p6-cache-19#appendix-C</a>&gt;.
    2040       </p>
    2041       <h2 id="rfc.section.C.1"><a href="#rfc.section.C.1">C.1</a>&nbsp;<a id="changes.since.19" href="#changes.since.19">Since draft-ietf-httpbis-p6-cache-19</a></h2>
    2042       <p id="rfc.section.C.1.p.1">Closed issues: </p>
     2038</pre> <h1 id="rfc.section.D"><a href="#rfc.section.D">D.</a>&nbsp;<a id="change.log" href="#change.log">Change Log (to be removed by RFC Editor before publication)</a></h1>
     2039      <p id="rfc.section.D.p.1">Changes up to the first Working Group Last Call draft are summarized in &lt;<a href="http://trac.tools.ietf.org/html/draft-ietf-httpbis-p6-cache-19#appendix-C">http://trac.tools.ietf.org/html/draft-ietf-httpbis-p6-cache-19#appendix-C</a>&gt;.
     2040      </p>
     2041      <h2 id="rfc.section.D.1"><a href="#rfc.section.D.1">D.1</a>&nbsp;<a id="changes.since.19" href="#changes.since.19">Since draft-ietf-httpbis-p6-cache-19</a></h2>
     2042      <p id="rfc.section.D.1.p.1">Closed issues: </p>
    20432043      <ul>
    20442044         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/307">http://tools.ietf.org/wg/httpbis/trac/ticket/307</a>&gt;: "untangle Cache-Control ABNF"
     
    21212121                        <li><tt>Cache-Control</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.3"><b>7.2</b></a></li>
    21222122                        <li><tt>cache-directive</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.4"><b>7.2</b></a></li>
    2123                         <li><tt>delta-seconds</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.1"><b>1.4.3</b></a></li>
     2123                        <li><tt>delta-seconds</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.1"><b>1.4.1</b></a></li>
    21242124                        <li><tt>Expires</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.5"><b>7.3</b></a></li>
    21252125                        <li><tt>extension-pragma</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.8"><b>7.4</b></a></li>
     
    22012201            </li>
    22022202            <li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul>
    2203                   <li><em>Part1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1.3</a>, <a href="#rfc.xref.Part1.2">1.4</a>, <a href="#rfc.xref.Part1.3">1.4.1</a>, <a href="#rfc.xref.Part1.4">1.4.1</a>, <a href="#rfc.xref.Part1.5">1.4.1</a>, <a href="#rfc.xref.Part1.6">1.4.1</a>, <a href="#rfc.xref.Part1.7">1.4.2</a>, <a href="#rfc.xref.Part1.8">1.4.2</a>, <a href="#rfc.xref.Part1.9">1.4.2</a>, <a href="#rfc.xref.Part1.10">1.4.2</a>, <a href="#rfc.xref.Part1.11">3.1</a>, <a href="#rfc.xref.Part1.12">4</a>, <a href="#rfc.xref.Part1.13">4.3</a>, <a href="#rfc.xref.Part1.14">6</a>, <a href="#rfc.xref.Part1.15">6</a>, <a href="#rfc.xref.Part1.16">6</a>, <a href="#rfc.xref.Part1.17">11</a>, <a href="#Part1"><b>12.1</b></a><ul>
     2203                  <li><em>Part1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1.3</a>, <a href="#rfc.xref.Part1.2">1.4</a>, <a href="#rfc.xref.Part1.3">3.1</a>, <a href="#rfc.xref.Part1.4">4</a>, <a href="#rfc.xref.Part1.5">4.3</a>, <a href="#rfc.xref.Part1.6">6</a>, <a href="#rfc.xref.Part1.7">6</a>, <a href="#rfc.xref.Part1.8">6</a>, <a href="#rfc.xref.Part1.9">11</a>, <a href="#Part1"><b>12.1</b></a>, <a href="#rfc.xref.Part1.10">B</a>, <a href="#rfc.xref.Part1.11">B</a>, <a href="#rfc.xref.Part1.12">B</a>, <a href="#rfc.xref.Part1.13">B</a>, <a href="#rfc.xref.Part1.14">B</a>, <a href="#rfc.xref.Part1.15">B</a>, <a href="#rfc.xref.Part1.16">B</a>, <a href="#rfc.xref.Part1.17">B</a><ul>
    22042204                        <li><em>Section 1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.2">1.4</a></li>
    22052205                        <li><em>Section 2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1.3</a></li>
    2206                         <li><em>Section 2.8</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.8">1.4.2</a>, <a href="#rfc.xref.Part1.10">1.4.2</a></li>
    2207                         <li><em>Section 3.2.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.4">1.4.1</a></li>
    2208                         <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.7">1.4.2</a>, <a href="#rfc.xref.Part1.13">4.3</a></li>
    2209                         <li><em>Section 3.2.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.5">1.4.1</a>, <a href="#rfc.xref.Part1.6">1.4.1</a></li>
    2210                         <li><em>Section 5.5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.12">4</a>, <a href="#rfc.xref.Part1.14">6</a>, <a href="#rfc.xref.Part1.15">6</a>, <a href="#rfc.xref.Part1.16">6</a></li>
    2211                         <li><em>Section 6.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.9">1.4.2</a></li>
    2212                         <li><em>Section 9</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.17">11</a></li>
    2213                      </ul>
    2214                   </li>
    2215                   <li><em>Part2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">1.4.2</a>, <a href="#rfc.xref.Part2.2">2</a>, <a href="#rfc.xref.Part2.3">4</a>, <a href="#rfc.xref.Part2.4">4.1.2</a>, <a href="#rfc.xref.Part2.5">4.1.3</a>, <a href="#rfc.xref.Part2.6">6</a>, <a href="#rfc.xref.Part2.7">7.3</a>, <a href="#Part2"><b>12.1</b></a><ul>
    2216                         <li><em>Section 2.1.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.3">4</a>, <a href="#rfc.xref.Part2.6">6</a></li>
    2217                         <li><em>Section 4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.4">4.1.2</a></li>
    2218                         <li><em>Section 5.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">1.4.2</a>, <a href="#rfc.xref.Part2.7">7.3</a></li>
    2219                         <li><em>Section 9.10</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.5">4.1.3</a></li>
     2206                        <li><em>Section 2.8</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.15">B</a>, <a href="#rfc.xref.Part1.17">B</a></li>
     2207                        <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.5">4.3</a>, <a href="#rfc.xref.Part1.12">B</a></li>
     2208                        <li><em>Section 3.2.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.11">B</a></li>
     2209                        <li><em>Section 3.2.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.13">B</a>, <a href="#rfc.xref.Part1.14">B</a></li>
     2210                        <li><em>Section 5.5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.4">4</a>, <a href="#rfc.xref.Part1.6">6</a>, <a href="#rfc.xref.Part1.7">6</a>, <a href="#rfc.xref.Part1.8">6</a></li>
     2211                        <li><em>Section 6.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.16">B</a></li>
     2212                        <li><em>Section 9</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.9">11</a></li>
     2213                     </ul>
     2214                  </li>
     2215                  <li><em>Part2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">2</a>, <a href="#rfc.xref.Part2.2">4</a>, <a href="#rfc.xref.Part2.3">4.1.2</a>, <a href="#rfc.xref.Part2.4">4.1.3</a>, <a href="#rfc.xref.Part2.5">6</a>, <a href="#rfc.xref.Part2.6">7.3</a>, <a href="#Part2"><b>12.1</b></a>, <a href="#rfc.xref.Part2.7">B</a><ul>
     2216                        <li><em>Section 2.1.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.2">4</a>, <a href="#rfc.xref.Part2.5">6</a></li>
     2217                        <li><em>Section 4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.3">4.1.2</a></li>
     2218                        <li><em>Section 5.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.6">7.3</a>, <a href="#rfc.xref.Part2.7">B</a></li>
     2219                        <li><em>Section 9.10</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.4">4.1.3</a></li>
    22202220                     </ul>
    22212221                  </li>
     
    22662266                     </ul>
    22672267                  </li>
    2268                   <li><em>RFC5234</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.1">1.4</a>, <a href="#rfc.xref.RFC5234.2">1.4</a>, <a href="#RFC5234"><b>12.1</b></a><ul>
    2269                         <li><em>Appendix B.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.2">1.4</a></li>
     2268                  <li><em>RFC5234</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.1">1.4</a>, <a href="#RFC5234"><b>12.1</b></a>, <a href="#rfc.xref.RFC5234.2">B</a><ul>
     2269                        <li><em>Appendix B.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5234.2">B</a></li>
    22702270                     </ul>
    22712271                  </li>
Note: See TracChangeset for help on using the changeset viewer.