Ignore:
Timestamp:
06/05/14 08:10:18 (6 years ago)
Author:
julian.reschke@…
Message:

insert RFC numbers (#553)

File:
1 edited

Legend:

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

    r2628 r2629  
    466466  }
    467467  @bottom-center {
    468        content: "Expires November 2, 2014";
     468       content: "Expires November 7, 2014";
    469469  }
    470470  @bottom-right {
     
    510510      <meta name="dct.creator" content="Reschke, J. F.">
    511511      <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p6-cache-latest">
    512       <meta name="dct.issued" scheme="ISO8601" content="2014-05-01">
     512      <meta name="dct.issued" scheme="ISO8601" content="2014-05-06">
    513513      <meta name="dct.replaces" content="urn:ietf:rfc:2616">
    514514      <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.">
     
    536536            </tr>
    537537            <tr>
    538                <td class="left">Expires: November 2, 2014</td>
     538               <td class="left">Expires: November 7, 2014</td>
    539539               <td class="right">J. Reschke, Editor</td>
    540540            </tr>
     
    545545            <tr>
    546546               <td class="left"></td>
    547                <td class="right">May 1, 2014</td>
     547               <td class="right">May 6, 2014</td>
    548548            </tr>
    549549         </tbody>
     
    572572            in progress”.
    573573         </p>
    574          <p>This Internet-Draft will expire on November 2, 2014.</p>
     574         <p>This Internet-Draft will expire on November 7, 2014.</p>
    575575      </div>
    576576      <div id="rfc.copyrightnotice">
     
    712712               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>.
    713713            </p>
    714             <p id="rfc.section.1.1.p.2">Conformance criteria and considerations regarding error handling are defined in <a href="p1-messaging.html#conformance" title="Conformance and Error Handling">Section 2.5</a> of <a href="#Part1" id="rfc.xref.Part1.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>.
     714            <p id="rfc.section.1.1.p.2">Conformance criteria and considerations regarding error handling are defined in <a href="p1-messaging.html#conformance" title="Conformance and Error Handling">Section 2.5</a> of <a href="#RFC7230" id="rfc.xref.RFC7230.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>.
    715715            </p>
    716716         </div>
    717717         <div id="notation">
    718718            <h2 id="rfc.section.1.2"><a href="#rfc.section.1.2">1.2</a>&nbsp;<a href="#notation">Syntax Notation</a></h2>
    719             <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 a list extension, defined in <a href="p1-messaging.html#abnf.extension" title="ABNF list extension: #rule">Section 7</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, that allows for compact definition of comma-separated lists using a '#' operator (similar to how the '*' operator indicates
     719            <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 a list extension, defined in <a href="p1-messaging.html#abnf.extension" title="ABNF list extension: #rule">Section 7</a> of <a href="#RFC7230" id="rfc.xref.RFC7230.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>, that allows for compact definition of comma-separated lists using a '#' operator (similar to how the '*' operator indicates
    720720               repetition). <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 grammar with all list operators expanded to standard ABNF notation.
    721721            </p>
     
    742742         <div id="rfc.iref.c.3"></div>
    743743         <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a>&nbsp;<a href="#caching.overview">Overview of Cache Operation</a></h1>
    744          <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="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[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, it can be assumed that reusing a cached response is desirable and that such reuse is the default behavior
     744         <p id="rfc.section.2.p.1">Proper cache operation preserves the semantics of HTTP transfers (<a href="#RFC7231" id="rfc.xref.RFC7231.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</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, it can be assumed that reusing a cached response is desirable and that such reuse is the default behavior
    745745            when no requirement or local configuration prevents it. Therefore, HTTP cache requirements are focused on preventing a cache
    746746            from either storing a non-reusable response or reusing a stored response inappropriately, rather than mandating that caches
     
    748748         </p>
    749749         <p id="rfc.section.2.p.2">Each <dfn>cache entry</dfn> consists of a cache key and one or more HTTP responses corresponding to prior requests that used the same key. The most common
    750             form of cache entry is a successful result of a retrieval request: i.e., a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response to a GET request, which contains a representation of the resource identified by the request target (<a href="p2-semantics.html#GET" title="GET">Section 4.3.1</a> of <a href="#Part2" id="rfc.xref.Part2.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). However, it is also possible to cache permanent redirects, negative results (e.g., <a href="p2-semantics.html#status.404" class="smpl">404 (Not Found)</a>), incomplete results (e.g., <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a>), and responses to methods other than GET if the method's definition allows such caching and defines something suitable for
     750            form of cache entry is a successful result of a retrieval request: i.e., a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response to a GET request, which contains a representation of the resource identified by the request target (<a href="p2-semantics.html#GET" title="GET">Section 4.3.1</a> of <a href="#RFC7231" id="rfc.xref.RFC7231.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</cite></a>). However, it is also possible to cache permanent redirects, negative results (e.g., <a href="p2-semantics.html#status.404" class="smpl">404 (Not Found)</a>), incomplete results (e.g., <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a>), and responses to methods other than GET if the method's definition allows such caching and defines something suitable for
    751751            use as a cache key.
    752752         </p>
     
    770770            <li>the "private" response directive (see <a href="#cache-response-directive.private" title="private">Section&nbsp;5.2.2.6</a>) does not appear in the response, if the cache is shared, and
    771771            </li>
    772             <li>the <a href="p7-auth.html#header.authorization" class="smpl">Authorization</a> header field (see <a href="p7-auth.html#header.authorization" title="Authorization">Section 4.2</a> of <a href="#Part7" id="rfc.xref.Part7.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Authentication">[Part7]</cite></a>) does not appear in the request, if the cache is shared, unless the response explicitly allows it (see <a href="#caching.authenticated.responses" title="Storing Responses to Authenticated Requests">Section&nbsp;3.2</a>), and
     772            <li>the <a href="p7-auth.html#header.authorization" class="smpl">Authorization</a> header field (see <a href="p7-auth.html#header.authorization" title="Authorization">Section 4.2</a> of <a href="#RFC7235" id="rfc.xref.RFC7235.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Authentication">[RFC7235]</cite></a>) does not appear in the request, if the cache is shared, unless the response explicitly allows it (see <a href="#caching.authenticated.responses" title="Storing Responses to Authenticated Requests">Section&nbsp;3.2</a>), and
    773773            </li>
    774774            <li>the response either:
     
    799799         <div id="incomplete.responses">
    800800            <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;<a href="#incomplete.responses">Storing Incomplete Responses</a></h2>
    801             <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="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) are received prior to the connection being closed. If the request method is GET, the response status code is <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a>, and the entire response header section 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
     801            <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="#RFC7230" id="rfc.xref.RFC7230.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>) are received prior to the connection being closed. If the request method is GET, the response status code is <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a>, and the entire response header section 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
    802802                  (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#header.range" 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.
    803803            </p>
    804             <p id="rfc.section.3.1.p.2">A cache <em class="bcp14">MAY</em> complete a stored incomplete response by making a subsequent range request (<a href="#Part5" id="rfc.xref.Part5.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>) and combining the successful response with the stored entry, as defined in <a href="#combining.responses" title="Combining Partial Content">Section&nbsp;3.3</a>. A cache <em class="bcp14">MUST NOT</em> use an incomplete response to answer requests unless the response has been made complete or the request is partial and specifies
     804            <p id="rfc.section.3.1.p.2">A cache <em class="bcp14">MAY</em> complete a stored incomplete response by making a subsequent range request (<a href="#RFC7233" id="rfc.xref.RFC7233.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[RFC7233]</cite></a>) and combining the successful response with the stored entry, as defined in <a href="#combining.responses" title="Combining Partial Content">Section&nbsp;3.3</a>. A cache <em class="bcp14">MUST NOT</em> use an incomplete response to answer requests unless the response has been made complete or the request is partial and specifies
    805805               a range that is wholly within the incomplete response. A cache <em class="bcp14">MUST NOT</em> send a partial response to a client without explicitly marking it as such using the <a href="p5-range.html#status.206" class="smpl">206 (Partial Content)</a> status code.
    806806            </p>
     
    808808         <div id="caching.authenticated.responses">
    809809            <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a>&nbsp;<a href="#caching.authenticated.responses">Storing Responses to Authenticated Requests</a></h2>
    810             <p id="rfc.section.3.2.p.1">A shared cache <em class="bcp14">MUST NOT</em> use a cached response to a request with an <a href="p7-auth.html#header.authorization" class="smpl">Authorization</a> header field (<a href="p7-auth.html#header.authorization" title="Authorization">Section 4.2</a> of <a href="#Part7" id="rfc.xref.Part7.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Authentication">[Part7]</cite></a>) to satisfy any subsequent request unless a cache directive that allows such responses to be stored is present in the response.
     810            <p id="rfc.section.3.2.p.1">A shared cache <em class="bcp14">MUST NOT</em> use a cached response to a request with an <a href="p7-auth.html#header.authorization" class="smpl">Authorization</a> header field (<a href="p7-auth.html#header.authorization" title="Authorization">Section 4.2</a> of <a href="#RFC7235" id="rfc.xref.RFC7235.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Authentication">[RFC7235]</cite></a>) to satisfy any subsequent request unless a cache directive that allows such responses to be stored is present in the response.
    811811            </p>
    812812            <p id="rfc.section.3.2.p.2">In this specification, the following <a href="#header.cache-control" class="smpl">Cache-Control</a> response directives (<a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;5.2.2</a>) have such an effect: must-revalidate, public, s-maxage.
     
    820820            <h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3</a>&nbsp;<a href="#combining.responses">Combining Partial Content</a></h2>
    821821            <p id="rfc.section.3.3.p.1">A response might transfer only a partial representation if the connection closed prematurely or if the request used one or
    822                more Range specifiers (<a href="#Part5" id="rfc.xref.Part5.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>). After several such transfers, a cache might have received several ranges of the same representation. A cache <em class="bcp14">MAY</em> combine these ranges into a single stored response, and reuse that response to satisfy later requests, if they all share the
    823                same strong validator and the cache complies with the client requirements in <a href="p5-range.html#combining.byte.ranges" title="Combining Ranges">Section 4.3</a> of <a href="#Part5" id="rfc.xref.Part5.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>.
     822               more Range specifiers (<a href="#RFC7233" id="rfc.xref.RFC7233.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[RFC7233]</cite></a>). After several such transfers, a cache might have received several ranges of the same representation. A cache <em class="bcp14">MAY</em> combine these ranges into a single stored response, and reuse that response to satisfy later requests, if they all share the
     823               same strong validator and the cache complies with the client requirements in <a href="p5-range.html#combining.byte.ranges" title="Combining Ranges">Section 4.3</a> of <a href="#RFC7233" id="rfc.xref.RFC7233.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[RFC7233]</cite></a>.
    824824            </p>
    825825            <p id="rfc.section.3.3.p.2">When combining the new response with one or more stored responses, a cache <em class="bcp14">MUST</em>:
     
    840840         </p>
    841841         <ul>
    842             <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="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) and that of the stored response match, and
     842            <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="#RFC7230" id="rfc.xref.RFC7230.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>) and that of the stored response match, and
    843843            </li>
    844844            <li>the request method associated with the stored response allows it to be used for the presented request, and</li>
     
    864864         <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> generate an <a href="#header.age" class="smpl">Age</a> header field (<a href="#header.age" id="rfc.xref.header.age.1" title="Age">Section&nbsp;5.1</a>), replacing any present 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.2.3</a>.
    865865         </p>
    866          <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 4.2.1</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[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
     866         <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 4.2.1</a> of <a href="#RFC7231" id="rfc.xref.RFC7231.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</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
    867867            and having received a corresponding response.
    868868         </p>
     
    876876         <div id="caching.negotiated.responses">
    877877            <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a>&nbsp;<a href="#caching.negotiated.responses">Calculating Secondary Keys with Vary</a></h2>
    878             <p id="rfc.section.4.1.p.1">When a cache receives a request that can be satisfied by a stored response that has a <a href="p2-semantics.html#header.vary" class="smpl">Vary</a> header field (<a href="p2-semantics.html#header.vary" title="Vary">Section 7.1.4</a> of <a href="#Part2" id="rfc.xref.Part2.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>), it <em class="bcp14">MUST NOT</em> use that response unless all of the selecting header fields nominated by the Vary header field match in both the original
     878            <p id="rfc.section.4.1.p.1">When a cache receives a request that can be satisfied by a stored response that has a <a href="p2-semantics.html#header.vary" class="smpl">Vary</a> header field (<a href="p2-semantics.html#header.vary" title="Vary">Section 7.1.4</a> of <a href="#RFC7231" id="rfc.xref.RFC7231.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</cite></a>), it <em class="bcp14">MUST NOT</em> use that response unless all of the selecting header fields nominated by the Vary header field match in both the original
    879879               request (i.e., that associated with the stored response), and the presented request.
    880880            </p>
     
    884884            <ul>
    885885               <li>adding or removing whitespace, where allowed in the header field's syntax</li>
    886                <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="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>)
     886               <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="#RFC7230" id="rfc.xref.RFC7230.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>)
    887887               </li>
    888888               <li>normalizing both header field values in a way that is known to have identical semantics, according to the header field's specification
     
    980980               <p id="rfc.section.4.2.2.p.2">A cache <em class="bcp14">MUST NOT</em> use heuristics to determine freshness when an explicit expiration time is present in the stored response. Because of the requirements
    981981                  in <a href="#response.cacheability" title="Storing Responses in Caches">Section&nbsp;3</a>, this means that, effectively, heuristics can only be used on responses without explicit freshness whose status codes are
    982                   defined as cacheable by default (see <a href="p2-semantics.html#overview.of.status.codes" title="Overview of Status Codes">Section 6.1</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>), and those responses without explicit freshness that have been marked as explicitly cacheable (e.g., with a "public" response
     982                  defined as cacheable by default (see <a href="p2-semantics.html#overview.of.status.codes" title="Overview of Status Codes">Section 6.1</a> of <a href="#RFC7231" id="rfc.xref.RFC7231.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</cite></a>), and those responses without explicit freshness that have been marked as explicitly cacheable (e.g., with a "public" response
    983983                  directive).
    984984               </p>
    985                <p id="rfc.section.4.2.2.p.3">If the response has a <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> header field (<a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 2.2</a> of <a href="#Part4" id="rfc.xref.Part4.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>), caches are encouraged to use a heuristic expiration value that is no more than some fraction of the interval since that
     985               <p id="rfc.section.4.2.2.p.3">If the response has a <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> header field (<a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 2.2</a> of <a href="#RFC7232" id="rfc.xref.RFC7232.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[RFC7232]</cite></a>), caches are encouraged to use a heuristic expiration value that is no more than some fraction of the interval since that
    986986                  time. A typical setting of this fraction might be 10%.
    987987               </p>
     
    10121012               </p>
    10131013               <ul class="empty">
    1014                   <li>The term "date_value" 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 7.1.1.2</a> of <a href="#Part2" id="rfc.xref.Part2.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a> for the definition of the Date header field, and for requirements regarding responses without it.
     1014                  <li>The term "date_value" 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 7.1.1.2</a> of <a href="#RFC7231" id="rfc.xref.RFC7231.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</cite></a> for the definition of the Date header field, and for requirements regarding responses without it.
    10151015                  </li>
    10161016               </ul>
     
    10741074            <h2 id="rfc.section.4.3"><a href="#rfc.section.4.3">4.3</a>&nbsp;<a href="#validation.model">Validation</a></h2>
    10751075            <p id="rfc.section.4.3.p.1">When a cache has one or more stored responses for a requested URI, but cannot serve any of them (e.g., because they are not
    1076                fresh, or one cannot be selected; see <a href="#caching.negotiated.responses" title="Calculating Secondary Keys with Vary">Section&nbsp;4.1</a>), it can use the conditional request mechanism <a href="#Part4" id="rfc.xref.Part4.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a> in the forwarded request to give the next inbound server an opportunity to select a valid stored response to use, updating
     1076               fresh, or one cannot be selected; see <a href="#caching.negotiated.responses" title="Calculating Secondary Keys with Vary">Section&nbsp;4.1</a>), it can use the conditional request mechanism <a href="#RFC7232" id="rfc.xref.RFC7232.2"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[RFC7232]</cite></a> in the forwarded request to give the next inbound server an opportunity to select a valid stored response to use, updating
    10771077               the stored metadata in the process, or to replace the stored response(s) with a new response. This process is known as "validating"
    10781078               or "revalidating" the stored response.
     
    10841084                  to a current representation of the resource.
    10851085               </p>
    1086                <p id="rfc.section.4.3.1.p.2">One such validator is the timestamp given in a <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> header field (<a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 2.2</a> of <a href="#Part4" id="rfc.xref.Part4.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>), which can be used in an <a href="p4-conditional.html#header.if-modified-since" class="smpl">If-Modified-Since</a> header field for response validation, or in an <a href="p4-conditional.html#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> or <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field for representation selection (i.e., the client is referring specifically to a previously obtained representation
     1086               <p id="rfc.section.4.3.1.p.2">One such validator is the timestamp given in a <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> header field (<a href="p4-conditional.html#header.last-modified" title="Last-Modified">Section 2.2</a> of <a href="#RFC7232" id="rfc.xref.RFC7232.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[RFC7232]</cite></a>), which can be used in an <a href="p4-conditional.html#header.if-modified-since" class="smpl">If-Modified-Since</a> header field for response validation, or in an <a href="p4-conditional.html#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> or <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field for representation selection (i.e., the client is referring specifically to a previously obtained representation
    10871087                  with that timestamp).
    10881088               </p>
    1089                <p id="rfc.section.4.3.1.p.3">Another validator is the entity-tag given in an <a href="p4-conditional.html#header.etag" class="smpl">ETag</a> header field (<a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#Part4" id="rfc.xref.Part4.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>). One or more entity-tags, indicating one or more stored responses, can be used in an <a href="p4-conditional.html#header.if-none-match" class="smpl">If-None-Match</a> header field for response validation, or in an <a href="p4-conditional.html#header.if-match" class="smpl">If-Match</a> or <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field for representation selection (i.e., the client is referring specifically to one or more previously obtained representations
     1089               <p id="rfc.section.4.3.1.p.3">Another validator is the entity-tag given in an <a href="p4-conditional.html#header.etag" class="smpl">ETag</a> header field (<a href="p4-conditional.html#header.etag" title="ETag">Section 2.3</a> of <a href="#RFC7232" id="rfc.xref.RFC7232.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[RFC7232]</cite></a>). One or more entity-tags, indicating one or more stored responses, can be used in an <a href="p4-conditional.html#header.if-none-match" class="smpl">If-None-Match</a> header field for response validation, or in an <a href="p4-conditional.html#header.if-match" class="smpl">If-Match</a> or <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field for representation selection (i.e., the client is referring specifically to one or more previously obtained representations
    10901090                  with the listed entity-tags).
    10911091               </p>
     
    11031103               </p>
    11041104               <p id="rfc.section.4.3.2.p.3">The proper evaluation of conditional requests by a cache depends on the received precondition header fields and their precedence,
    1105                   as defined in <a href="p4-conditional.html#precedence" title="Precedence">Section 6</a> of <a href="#Part4" id="rfc.xref.Part4.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>. The <a href="p4-conditional.html#header.if-match" class="smpl">If-Match</a> and <a href="p4-conditional.html#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> conditional header fields are not applicable to a cache.
    1106                </p>
    1107                <p id="rfc.section.4.3.2.p.4">A request containing an <a href="p4-conditional.html#header.if-none-match" class="smpl">If-None-Match</a> header field (<a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 3.2</a> of <a href="#Part4" id="rfc.xref.Part4.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>) indicates that the client wants to validate one or more of its own stored responses in comparison to whichever stored response
     1105                  as defined in <a href="p4-conditional.html#precedence" title="Precedence">Section 6</a> of <a href="#RFC7232" id="rfc.xref.RFC7232.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[RFC7232]</cite></a>. The <a href="p4-conditional.html#header.if-match" class="smpl">If-Match</a> and <a href="p4-conditional.html#header.if-unmodified-since" class="smpl">If-Unmodified-Since</a> conditional header fields are not applicable to a cache.
     1106               </p>
     1107               <p id="rfc.section.4.3.2.p.4">A request containing an <a href="p4-conditional.html#header.if-none-match" class="smpl">If-None-Match</a> header field (<a href="p4-conditional.html#header.if-none-match" title="If-None-Match">Section 3.2</a> of <a href="#RFC7232" id="rfc.xref.RFC7232.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[RFC7232]</cite></a>) indicates that the client wants to validate one or more of its own stored responses in comparison to whichever stored response
    11081108                  is selected by the cache. If the field-value is "*", or if the field-value is a list of entity-tags and at least one of them
    11091109                  match the entity-tag of the selected stored response, a cache recipient <em class="bcp14">SHOULD</em> generate a <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a> response (using the metadata of the selected stored response) instead of sending that stored response.
     
    11131113                  response. If the response to the forwarded request is <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a> and has an ETag header field value with an entity-tag that is not in the client's list, the cache <em class="bcp14">MUST</em> generate a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response for the client by reusing its corresponding stored response, as updated by the 304 response metadata (<a href="#freshening.responses" title="Freshening Stored Responses upon Validation">Section&nbsp;4.3.4</a>).
    11141114               </p>
    1115                <p id="rfc.section.4.3.2.p.6">If an <a href="p4-conditional.html#header.if-none-match" class="smpl">If-None-Match</a> header field is not present, a request containing an <a href="p4-conditional.html#header.if-modified-since" class="smpl">If-Modified-Since</a> header field (<a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 3.3</a> of <a href="#Part4" id="rfc.xref.Part4.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>) indicates that the client wants to validate one or more of its own stored responses by modification date. A cache recipient <em class="bcp14">SHOULD</em> generate a <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a> response (using the metadata of the selected stored response) if one of the following cases is true: 1) the selected stored
     1115               <p id="rfc.section.4.3.2.p.6">If an <a href="p4-conditional.html#header.if-none-match" class="smpl">If-None-Match</a> header field is not present, a request containing an <a href="p4-conditional.html#header.if-modified-since" class="smpl">If-Modified-Since</a> header field (<a href="p4-conditional.html#header.if-modified-since" title="If-Modified-Since">Section 3.3</a> of <a href="#RFC7232" id="rfc.xref.RFC7232.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[RFC7232]</cite></a>) indicates that the client wants to validate one or more of its own stored responses by modification date. A cache recipient <em class="bcp14">SHOULD</em> generate a <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a> response (using the metadata of the selected stored response) if one of the following cases is true: 1) the selected stored
    11161116                  response has a <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> field-value that is earlier than or equal to the conditional timestamp; 2) no <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> field is present in the selected stored response, but it has a <a href="p2-semantics.html#header.date" class="smpl">Date</a> field-value that is earlier than or equal to the conditional timestamp; or, 3) neither <a href="p4-conditional.html#header.last-modified" class="smpl">Last-Modified</a> nor <a href="p2-semantics.html#header.date" class="smpl">Date</a> is present in the selected stored response, but the cache recorded it as having been received at a time earlier than or equal
    11171117                  to the conditional timestamp.
    11181118               </p>
    1119                <p id="rfc.section.4.3.2.p.7">A cache that implements partial responses to range requests, as defined in <a href="#Part5" id="rfc.xref.Part5.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>, also needs to evaluate a received <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field (<a href="p5-range.html#header.if-range" title="If-Range">Section 3.2</a> of <a href="#Part5" id="rfc.xref.Part5.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>) with respect to its selected stored response.
     1119               <p id="rfc.section.4.3.2.p.7">A cache that implements partial responses to range requests, as defined in <a href="#RFC7233" id="rfc.xref.RFC7233.4"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[RFC7233]</cite></a>, also needs to evaluate a received <a href="p5-range.html#header.if-range" class="smpl">If-Range</a> header field (<a href="p5-range.html#header.if-range" title="If-Range">Section 3.2</a> of <a href="#RFC7233" id="rfc.xref.RFC7233.5"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[RFC7233]</cite></a>) with respect to its selected stored response.
    11201120               </p>
    11211121            </div>
     
    11431143               <p id="rfc.section.4.3.4.p.2">The stored response to update is identified by using the first match (if any) of: </p>
    11441144               <ul>
    1145                   <li>If the new response contains a <dfn>strong validator</dfn> (see <a href="p4-conditional.html#weak.and.strong.validators" title="Weak versus Strong">Section 2.1</a> of <a href="#Part4" id="rfc.xref.Part4.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>), then that strong validator identifies the selected representation for update. All of the stored responses with the same
     1145                  <li>If the new response contains a <dfn>strong validator</dfn> (see <a href="p4-conditional.html#weak.and.strong.validators" title="Weak versus Strong">Section 2.1</a> of <a href="#RFC7232" id="rfc.xref.RFC7232.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[RFC7232]</cite></a>), then that strong validator identifies the selected representation for update. All of the stored responses with the same
    11461146                     strong validator are selected. If none of the stored responses contain the same strong validator, then the cache <em class="bcp14">MUST NOT</em> use the new response to update any stored responses.
    11471147                  </li>
     
    11921192         <div id="invalidation">
    11931193            <h2 id="rfc.section.4.4"><a href="#rfc.section.4.4">4.4</a>&nbsp;<a href="#invalidation">Invalidation</a></h2>
    1194             <p id="rfc.section.4.4.p.1">Because unsafe request methods (<a href="p2-semantics.html#safe.methods" title="Safe Methods">Section 4.2.1</a> of <a href="#Part2" id="rfc.xref.Part2.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>) such as PUT, POST or DELETE have the potential for changing state on the origin server, intervening caches can use them
     1194            <p id="rfc.section.4.4.p.1">Because unsafe request methods (<a href="p2-semantics.html#safe.methods" title="Safe Methods">Section 4.2.1</a> of <a href="#RFC7231" id="rfc.xref.RFC7231.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</cite></a>) such as PUT, POST or DELETE have the potential for changing state on the origin server, intervening caches can use them
    11951195               to keep their contents up-to-date.
    11961196            </p>
    1197             <p id="rfc.section.4.4.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="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[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 status code is received in response to an unsafe request method.
    1198             </p>
    1199             <p id="rfc.section.4.4.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="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>). This helps prevent denial of service attacks.
    1200             </p>
    1201             <p id="rfc.section.4.4.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="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>) when it receives a non-error response to a request with a method whose safety is unknown.
     1197            <p id="rfc.section.4.4.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="#RFC7230" id="rfc.xref.RFC7230.6"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</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 status code is received in response to an unsafe request method.
     1198            </p>
     1199            <p id="rfc.section.4.4.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="#RFC7230" id="rfc.xref.RFC7230.7"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>). This helps prevent denial of service attacks.
     1200            </p>
     1201            <p id="rfc.section.4.4.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="#RFC7230" id="rfc.xref.RFC7230.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>) when it receives a non-error response to a request with a method whose safety is unknown.
    12021202            </p>
    12031203            <p id="rfc.section.4.4.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,
     
    13221322                  <div id="rfc.iref.n.3"></div>
    13231323                  <h4 id="rfc.section.5.2.1.6"><a href="#rfc.section.5.2.1.6">5.2.1.6</a>&nbsp;<a href="#cache-request-directive.no-transform">no-transform</a></h4>
    1324                   <p id="rfc.section.5.2.1.6.p.1">The "no-transform" request directive indicates that an intermediary (whether or not it implements a cache) <em class="bcp14">MUST NOT</em> transform the payload, as defined in <a href="p1-messaging.html#message.transformations" title="Transformations">Section 5.7.2</a> of <a href="#Part1" id="rfc.xref.Part1.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>.
     1324                  <p id="rfc.section.5.2.1.6.p.1">The "no-transform" request directive indicates that an intermediary (whether or not it implements a cache) <em class="bcp14">MUST NOT</em> transform the payload, as defined in <a href="p1-messaging.html#message.transformations" title="Transformations">Section 5.7.2</a> of <a href="#RFC7230" id="rfc.xref.RFC7230.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>.
    13251325                  </p>
    13261326               </div>
     
    13841384                  <div id="rfc.iref.n.6"></div>
    13851385                  <h4 id="rfc.section.5.2.2.4"><a href="#rfc.section.5.2.2.4">5.2.2.4</a>&nbsp;<a href="#cache-response-directive.no-transform">no-transform</a></h4>
    1386                   <p id="rfc.section.5.2.2.4.p.1">The "no-transform" response directive indicates that an intermediary (regardless of whether it implements a cache) <em class="bcp14">MUST NOT</em> transform the payload, as defined in <a href="p1-messaging.html#message.transformations" title="Transformations">Section 5.7.2</a> of <a href="#Part1" id="rfc.xref.Part1.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>.
     1386                  <p id="rfc.section.5.2.2.4.p.1">The "no-transform" response directive indicates that an intermediary (regardless of whether it implements a cache) <em class="bcp14">MUST NOT</em> transform the payload, as defined in <a href="p1-messaging.html#message.transformations" title="Transformations">Section 5.7.2</a> of <a href="#RFC7230" id="rfc.xref.RFC7230.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>.
    13871387                  </p>
    13881388               </div>
     
    14841484               that time.
    14851485            </p>
    1486             <p id="rfc.section.5.3.p.3">The Expires value is an HTTP-date timestamp, as defined in <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 7.1.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>.
     1486            <p id="rfc.section.5.3.p.3">The Expires value is an HTTP-date timestamp, as defined in <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 7.1.1.1</a> of <a href="#RFC7231" id="rfc.xref.RFC7231.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</cite></a>.
    14871487            </p>
    14881488            <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>
     
    19181918         <h1 id="rfc.section.8"><a href="#rfc.section.8">8.</a>&nbsp;<a href="#security.considerations">Security Considerations</a></h1>
    19191919         <p id="rfc.section.8.p.1">This section is meant to inform developers, information providers, and users of known security concerns specific to HTTP caching.
    1920             More general security considerations are addressed in HTTP messaging <a href="#Part1" id="rfc.xref.Part1.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a> and semantics <a href="#Part2" id="rfc.xref.Part2.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>.
     1920            More general security considerations are addressed in HTTP messaging <a href="#RFC7230" id="rfc.xref.RFC7230.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a> and semantics <a href="#RFC7231" id="rfc.xref.RFC7231.9"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</cite></a>.
    19211921         </p>
    19221922         <p id="rfc.section.8.p.2">Caches expose additional potential vulnerabilities, since the contents of the cache represent an attractive target for malicious
     
    19281928            cache to distribute a malicious payload to many clients, and are especially effective when an attacker can use implementation
    19291929            flaws, elevated privileges, or other techniques to insert such a response into a cache. One common attack vector for cache
    1930             poisoning is to exploit differences in message parsing on proxies and in user agents; see <a href="p1-messaging.html#message.body.length" title="Message Body Length">Section 3.3.3</a> of <a href="#Part1" id="rfc.xref.Part1.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a> for the relevant requirements.
     1930            poisoning is to exploit differences in message parsing on proxies and in user agents; see <a href="p1-messaging.html#message.body.length" title="Message Body Length">Section 3.3.3</a> of <a href="#RFC7230" id="rfc.xref.RFC7230.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a> for the relevant requirements.
    19311931         </p>
    19321932         <p id="rfc.section.8.p.4">Likewise, implementation flaws (as well as misunderstanding of cache operation) might lead to caching of sensitive information
     
    19441944      <div id="acks">
    19451945         <h1 id="rfc.section.9"><a href="#rfc.section.9">9.</a>&nbsp;<a href="#acks">Acknowledgments</a></h1>
    1946          <p id="rfc.section.9.p.1">See <a href="p1-messaging.html#acks" title="Acknowledgments">Section 10</a> of <a href="#Part1" id="rfc.xref.Part1.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>.
     1946         <p id="rfc.section.9.p.1">See <a href="p1-messaging.html#acks" title="Acknowledgments">Section 10</a> of <a href="#RFC7230" id="rfc.xref.RFC7230.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>.
    19471947         </p>
    19481948      </div>
     
    19521952      </h2>
    19531953      <table>
    1954          <tr>
    1955             <td class="reference"><b id="Part1">[Part1]</b></td>
    1956             <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a> and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-latest">Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p1-messaging-latest (work in progress), May&nbsp;2014.
    1957             </td>
    1958          </tr>
    1959          <tr>
    1960             <td class="reference"><b id="Part2">[Part2]</b></td>
    1961             <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a> and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-latest">Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p2-semantics-latest (work in progress), May&nbsp;2014.
    1962             </td>
    1963          </tr>
    1964          <tr>
    1965             <td class="reference"><b id="Part4">[Part4]</b></td>
    1966             <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a> and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-latest">Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p4-conditional-latest (work in progress), May&nbsp;2014.
    1967             </td>
    1968          </tr>
    1969          <tr>
    1970             <td class="reference"><b id="Part5">[Part5]</b></td>
    1971             <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a>, <a href="mailto:ylafon@w3.org" title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p5-range-latest">Hypertext Transfer Protocol (HTTP/1.1): Range Requests</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p5-range-latest (work in progress), May&nbsp;2014.
    1972             </td>
    1973          </tr>
    1974          <tr>
    1975             <td class="reference"><b id="Part7">[Part7]</b></td>
    1976             <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a> and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p7-auth-latest">Hypertext Transfer Protocol (HTTP/1.1): Authentication</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p7-auth-latest (work in progress), May&nbsp;2014.
    1977             </td>
    1978          </tr>
    19791954         <tr>
    19801955            <td class="reference"><b id="RFC2119">[RFC2119]</b></td>
     
    19851960            <td class="reference"><b id="RFC5234">[RFC5234]</b></td>
    19861961            <td class="top"><a href="mailto:dcrocker@bbiw.net" title="Brandenburg InternetWorking">Crocker, D., Ed.</a> and <a href="mailto:paul.overell@thus.net" title="THUS plc.">P. Overell</a>, “<a href="http://tools.ietf.org/html/rfc5234">Augmented BNF for Syntax Specifications: ABNF</a>”, STD&nbsp;68, RFC&nbsp;5234, January&nbsp;2008.
     1962            </td>
     1963         </tr>
     1964         <tr>
     1965            <td class="reference"><b id="RFC7230">[RFC7230]</b></td>
     1966            <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a> and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-latest">Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p1-messaging-latest (work in progress), May&nbsp;2014.
     1967            </td>
     1968         </tr>
     1969         <tr>
     1970            <td class="reference"><b id="RFC7231">[RFC7231]</b></td>
     1971            <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a> and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-latest">Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p2-semantics-latest (work in progress), May&nbsp;2014.
     1972            </td>
     1973         </tr>
     1974         <tr>
     1975            <td class="reference"><b id="RFC7232">[RFC7232]</b></td>
     1976            <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a> and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-latest">Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p4-conditional-latest (work in progress), May&nbsp;2014.
     1977            </td>
     1978         </tr>
     1979         <tr>
     1980            <td class="reference"><b id="RFC7233">[RFC7233]</b></td>
     1981            <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a>, <a href="mailto:ylafon@w3.org" title="World Wide Web Consortium">Lafon, Y., Ed.</a>, and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p5-range-latest">Hypertext Transfer Protocol (HTTP/1.1): Range Requests</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p5-range-latest (work in progress), May&nbsp;2014.
     1982            </td>
     1983         </tr>
     1984         <tr>
     1985            <td class="reference"><b id="RFC7235">[RFC7235]</b></td>
     1986            <td class="top"><a href="mailto:fielding@gbiv.com" title="Adobe Systems Incorporated">Fielding, R., Ed.</a> and <a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">J. Reschke, Ed.</a>, “<a href="http://tools.ietf.org/html/draft-ietf-httpbis-p7-auth-latest">Hypertext Transfer Protocol (HTTP/1.1): Authentication</a>”, Internet-Draft&nbsp;draft-ietf-httpbis-p7-auth-latest (work in progress), May&nbsp;2014.
    19871987            </td>
    19881988         </tr>
     
    20702070            character).
    20712071         </p>
    2072          <p id="rfc.section.B.p.2">The rules below are defined in <a href="#Part1" id="rfc.xref.Part1.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>:
    2073          </p>
    2074          <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.15"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.3</a>&gt;
    2075   <a href="#imported.abnf" class="smpl">field-name</a>    = &lt;field-name, defined in <a href="#Part1" id="rfc.xref.Part1.16"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a>&gt;
    2076   <a href="#imported.abnf" class="smpl">quoted-string</a> = &lt;quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.17"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.6</a>&gt;
    2077   <a href="#imported.abnf" class="smpl">token</a>         = &lt;token, defined in <a href="#Part1" id="rfc.xref.Part1.18"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.6</a>&gt;
    2078 
    2079   <a href="#imported.abnf" class="smpl">port</a>          = &lt;port, defined in <a href="#Part1" id="rfc.xref.Part1.19"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.7</a>&gt;
    2080   <a href="#imported.abnf" class="smpl">pseudonym</a>     = &lt;pseudonym, defined in <a href="#Part1" id="rfc.xref.Part1.20"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#header.via" title="Via">Section 5.7.1</a>&gt;
    2081   <a href="#imported.abnf" class="smpl">uri-host</a>      = &lt;uri-host, defined in <a href="#Part1" id="rfc.xref.Part1.21"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.7</a>&gt;
     2072         <p id="rfc.section.B.p.2">The rules below are defined in <a href="#RFC7230" id="rfc.xref.RFC7230.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>:
     2073         </p>
     2074         <div id="rfc.figure.u.15"></div><pre class="inline">  <a href="#imported.abnf" class="smpl">OWS</a>           = &lt;OWS, defined in <a href="#RFC7230" id="rfc.xref.RFC7230.15"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.3</a>&gt;
     2075  <a href="#imported.abnf" class="smpl">field-name</a>    = &lt;field-name, defined in <a href="#RFC7230" id="rfc.xref.RFC7230.16"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>, <a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a>&gt;
     2076  <a href="#imported.abnf" class="smpl">quoted-string</a> = &lt;quoted-string, defined in <a href="#RFC7230" id="rfc.xref.RFC7230.17"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.6</a>&gt;
     2077  <a href="#imported.abnf" class="smpl">token</a>         = &lt;token, defined in <a href="#RFC7230" id="rfc.xref.RFC7230.18"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.6</a>&gt;
     2078
     2079  <a href="#imported.abnf" class="smpl">port</a>          = &lt;port, defined in <a href="#RFC7230" id="rfc.xref.RFC7230.19"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.7</a>&gt;
     2080  <a href="#imported.abnf" class="smpl">pseudonym</a>     = &lt;pseudonym, defined in <a href="#RFC7230" id="rfc.xref.RFC7230.20"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>, <a href="p1-messaging.html#header.via" title="Via">Section 5.7.1</a>&gt;
     2081  <a href="#imported.abnf" class="smpl">uri-host</a>      = &lt;uri-host, defined in <a href="#RFC7230" id="rfc.xref.RFC7230.21"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.7</a>&gt;
    20822082</pre><p id="rfc.section.B.p.4">The rules below are defined in other parts:</p>
    2083          <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.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>, <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 7.1.1.1</a>&gt;
     2083         <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="#RFC7231" id="rfc.xref.RFC7231.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[RFC7231]</cite></a>, <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 7.1.1.1</a>&gt;
    20842084</pre></div>
    20852085      <div id="collected.abnf">
    20862086         <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a>&nbsp;<a href="#collected.abnf">Collected ABNF</a></h1>
    2087          <p id="rfc.section.C.p.1">In the collected ABNF below, list rules are expanded as per <a href="p1-messaging.html#notation" title="Syntax Notation">Section 1.2</a> of <a href="#Part1" id="rfc.xref.Part1.22"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>.
     2087         <p id="rfc.section.C.p.1">In the collected ABNF below, list rules are expanded as per <a href="p1-messaging.html#notation" title="Syntax Notation">Section 1.2</a> of <a href="#RFC7230" id="rfc.xref.RFC7230.22"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>.
    20882088         </p>
    20892089         <div id="rfc.figure.u.17"></div><pre class="inline"><a href="#header.age" class="smpl">Age</a> = delta-seconds
     
    20942094<a href="#header.expires" class="smpl">Expires</a> = HTTP-date
    20952095
    2096 <a href="#imported.abnf" class="smpl">HTTP-date</a> = &lt;HTTP-date, defined in [Part2], Section 7.1.1.1&gt;
    2097 
    2098 <a href="#imported.abnf" class="smpl">OWS</a> = &lt;OWS, defined in [Part1], Section 3.2.3&gt;
     2096<a href="#imported.abnf" class="smpl">HTTP-date</a> = &lt;HTTP-date, defined in [RFC7231], Section 7.1.1.1&gt;
     2097
     2098<a href="#imported.abnf" class="smpl">OWS</a> = &lt;OWS, defined in [RFC7230], Section 3.2.3&gt;
    20992099
    21002100<a href="#header.pragma" class="smpl">Pragma</a> = *( "," OWS ) pragma-directive *( OWS "," [ OWS
     
    21102110<a href="#header.pragma" class="smpl">extension-pragma</a> = token [ "=" ( token / quoted-string ) ]
    21112111
    2112 <a href="#imported.abnf" class="smpl">field-name</a> = &lt;field-name, defined in [Part1], Section 3.2&gt;
    2113 
    2114 <a href="#imported.abnf" class="smpl">port</a> = &lt;port, defined in [Part1], Section 2.7&gt;
     2112<a href="#imported.abnf" class="smpl">field-name</a> = &lt;field-name, defined in [RFC7230], Section 3.2&gt;
     2113
     2114<a href="#imported.abnf" class="smpl">port</a> = &lt;port, defined in [RFC7230], Section 2.7&gt;
    21152115<a href="#header.pragma" class="smpl">pragma-directive</a> = "no-cache" / extension-pragma
    2116 <a href="#imported.abnf" class="smpl">pseudonym</a> = &lt;pseudonym, defined in [Part1], Section 5.7.1&gt;
    2117 
    2118 <a href="#imported.abnf" class="smpl">quoted-string</a> = &lt;quoted-string, defined in [Part1], Section 3.2.6&gt;
    2119 
    2120 <a href="#imported.abnf" class="smpl">token</a> = &lt;token, defined in [Part1], Section 3.2.6&gt;
    2121 
    2122 <a href="#imported.abnf" class="smpl">uri-host</a> = &lt;uri-host, defined in [Part1], Section 2.7&gt;
     2116<a href="#imported.abnf" class="smpl">pseudonym</a> = &lt;pseudonym, defined in [RFC7230], Section 5.7.1&gt;
     2117
     2118<a href="#imported.abnf" class="smpl">quoted-string</a> = &lt;quoted-string, defined in [RFC7230], Section 3.2.6&gt;
     2119
     2120<a href="#imported.abnf" class="smpl">token</a> = &lt;token, defined in [RFC7230], Section 3.2.6&gt;
     2121
     2122<a href="#imported.abnf" class="smpl">uri-host</a> = &lt;uri-host, defined in [RFC7230], Section 2.7&gt;
    21232123
    21242124<a href="#header.warning" class="smpl">warn-agent</a> = ( uri-host [ ":" port ] ) / pseudonym
     
    22582258            </li>
    22592259            <li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul>
    2260                   <li><em>Part1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1.1</a>, <a href="#rfc.xref.Part1.2">1.2</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.1</a>, <a href="#rfc.xref.Part1.6">4.4</a>, <a href="#rfc.xref.Part1.7">4.4</a>, <a href="#rfc.xref.Part1.8">4.4</a>, <a href="#rfc.xref.Part1.9">5.2.1.6</a>, <a href="#rfc.xref.Part1.10">5.2.2.4</a>, <a href="#rfc.xref.Part1.11">8</a>, <a href="#rfc.xref.Part1.12">8</a>, <a href="#rfc.xref.Part1.13">9</a>, <a href="#Part1"><b>10.1</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>, <a href="#rfc.xref.Part1.18">B</a>, <a href="#rfc.xref.Part1.19">B</a>, <a href="#rfc.xref.Part1.20">B</a>, <a href="#rfc.xref.Part1.21">B</a>, <a href="#rfc.xref.Part1.22">C</a><ul>
    2261                         <li><em>Section 1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.22">C</a></li>
    2262                         <li><em>Section 2.5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.1">1.1</a></li>
    2263                         <li><em>Section 2.7</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.19">B</a>, <a href="#rfc.xref.Part1.21">B</a></li>
    2264                         <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.5">4.1</a>, <a href="#rfc.xref.Part1.16">B</a></li>
    2265                         <li><em>Section 3.2.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.15">B</a></li>
    2266                         <li><em>Section 3.2.6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.17">B</a>, <a href="#rfc.xref.Part1.18">B</a></li>
    2267                         <li><em>Section 3.3.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.12">8</a></li>
    2268                         <li><em>Section 5.5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.4">4</a>, <a href="#rfc.xref.Part1.6">4.4</a>, <a href="#rfc.xref.Part1.7">4.4</a>, <a href="#rfc.xref.Part1.8">4.4</a></li>
    2269                         <li><em>Section 5.7.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.20">B</a></li>
    2270                         <li><em>Section 5.7.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.9">5.2.1.6</a>, <a href="#rfc.xref.Part1.10">5.2.2.4</a></li>
    2271                         <li><em>Section 7</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.2">1.2</a></li>
    2272                         <li><em>Section 10</em>&nbsp;&nbsp;<a href="#rfc.xref.Part1.13">9</a></li>
    2273                      </ul>
    2274                   </li>
    2275                   <li><em>Part2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">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</a>, <a href="#rfc.xref.Part2.5">4.2.2</a>, <a href="#rfc.xref.Part2.6">4.2.3</a>, <a href="#rfc.xref.Part2.7">4.4</a>, <a href="#rfc.xref.Part2.8">5.3</a>, <a href="#rfc.xref.Part2.9">8</a>, <a href="#Part2"><b>10.1</b></a>, <a href="#rfc.xref.Part2.10">B</a><ul>
    2276                         <li><em>Section 4.2.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.3">4</a>, <a href="#rfc.xref.Part2.7">4.4</a></li>
    2277                         <li><em>Section 4.3.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.2">2</a></li>
    2278                         <li><em>Section 6.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.5">4.2.2</a></li>
    2279                         <li><em>Section 7.1.1.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.8">5.3</a>, <a href="#rfc.xref.Part2.10">B</a></li>
    2280                         <li><em>Section 7.1.1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.6">4.2.3</a></li>
    2281                         <li><em>Section 7.1.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.4">4.1</a></li>
    2282                      </ul>
    2283                   </li>
    2284                   <li><em>Part4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.1">4.2.2</a>, <a href="#rfc.xref.Part4.2">4.3</a>, <a href="#rfc.xref.Part4.3">4.3.1</a>, <a href="#rfc.xref.Part4.4">4.3.1</a>, <a href="#rfc.xref.Part4.5">4.3.2</a>, <a href="#rfc.xref.Part4.6">4.3.2</a>, <a href="#rfc.xref.Part4.7">4.3.2</a>, <a href="#rfc.xref.Part4.8">4.3.4</a>, <a href="#Part4"><b>10.1</b></a><ul>
    2285                         <li><em>Section 2.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.8">4.3.4</a></li>
    2286                         <li><em>Section 2.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.1">4.2.2</a>, <a href="#rfc.xref.Part4.3">4.3.1</a></li>
    2287                         <li><em>Section 2.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.4">4.3.1</a></li>
    2288                         <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.6">4.3.2</a></li>
    2289                         <li><em>Section 3.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.7">4.3.2</a></li>
    2290                         <li><em>Section 6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part4.5">4.3.2</a></li>
    2291                      </ul>
    2292                   </li>
    2293                   <li><em>Part5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.1">3.1</a>, <a href="#rfc.xref.Part5.2">3.3</a>, <a href="#rfc.xref.Part5.3">3.3</a>, <a href="#rfc.xref.Part5.4">4.3.2</a>, <a href="#rfc.xref.Part5.5">4.3.2</a>, <a href="#Part5"><b>10.1</b></a><ul>
    2294                         <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.5">4.3.2</a></li>
    2295                         <li><em>Section 4.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part5.3">3.3</a></li>
    2296                      </ul>
    2297                   </li>
    2298                   <li><em>Part7</em>&nbsp;&nbsp;<a href="#rfc.xref.Part7.1">3</a>, <a href="#rfc.xref.Part7.2">3.2</a>, <a href="#Part7"><b>10.1</b></a><ul>
    2299                         <li><em>Section 4.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part7.1">3</a>, <a href="#rfc.xref.Part7.2">3.2</a></li>
    2300                      </ul>
    2301                   </li>
    23022260                  <li>Pragma header field&nbsp;&nbsp;<a href="#rfc.xref.header.pragma.1">4</a>, <a href="#rfc.iref.p.5"><b>5.4</b></a>, <a href="#rfc.xref.header.pragma.2">7.3</a>, <a href="#rfc.xref.header.pragma.3">A</a></li>
    23032261                  <li>private (cache directive)&nbsp;&nbsp;<a href="#rfc.iref.p.3"><b>5.2.2.6</b></a></li>
     
    23302288                  <li><em>RFC5905</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC5905.1">4.2.3</a>, <a href="#RFC5905"><b>10.2</b></a></li>
    23312289                  <li><em>RFC6265</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC6265.1">8</a>, <a href="#RFC6265"><b>10.2</b></a></li>
     2290                  <li><em>RFC7230</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.1">1.1</a>, <a href="#rfc.xref.RFC7230.2">1.2</a>, <a href="#rfc.xref.RFC7230.3">3.1</a>, <a href="#rfc.xref.RFC7230.4">4</a>, <a href="#rfc.xref.RFC7230.5">4.1</a>, <a href="#rfc.xref.RFC7230.6">4.4</a>, <a href="#rfc.xref.RFC7230.7">4.4</a>, <a href="#rfc.xref.RFC7230.8">4.4</a>, <a href="#rfc.xref.RFC7230.9">5.2.1.6</a>, <a href="#rfc.xref.RFC7230.10">5.2.2.4</a>, <a href="#rfc.xref.RFC7230.11">8</a>, <a href="#rfc.xref.RFC7230.12">8</a>, <a href="#rfc.xref.RFC7230.13">9</a>, <a href="#RFC7230"><b>10.1</b></a>, <a href="#rfc.xref.RFC7230.14">B</a>, <a href="#rfc.xref.RFC7230.15">B</a>, <a href="#rfc.xref.RFC7230.16">B</a>, <a href="#rfc.xref.RFC7230.17">B</a>, <a href="#rfc.xref.RFC7230.18">B</a>, <a href="#rfc.xref.RFC7230.19">B</a>, <a href="#rfc.xref.RFC7230.20">B</a>, <a href="#rfc.xref.RFC7230.21">B</a>, <a href="#rfc.xref.RFC7230.22">C</a><ul>
     2291                        <li><em>Section 1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.22">C</a></li>
     2292                        <li><em>Section 2.5</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.1">1.1</a></li>
     2293                        <li><em>Section 2.7</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.19">B</a>, <a href="#rfc.xref.RFC7230.21">B</a></li>
     2294                        <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.5">4.1</a>, <a href="#rfc.xref.RFC7230.16">B</a></li>
     2295                        <li><em>Section 3.2.3</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.15">B</a></li>
     2296                        <li><em>Section 3.2.6</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.17">B</a>, <a href="#rfc.xref.RFC7230.18">B</a></li>
     2297                        <li><em>Section 3.3.3</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.12">8</a></li>
     2298                        <li><em>Section 5.5</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.4">4</a>, <a href="#rfc.xref.RFC7230.6">4.4</a>, <a href="#rfc.xref.RFC7230.7">4.4</a>, <a href="#rfc.xref.RFC7230.8">4.4</a></li>
     2299                        <li><em>Section 5.7.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.20">B</a></li>
     2300                        <li><em>Section 5.7.2</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.9">5.2.1.6</a>, <a href="#rfc.xref.RFC7230.10">5.2.2.4</a></li>
     2301                        <li><em>Section 7</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.2">1.2</a></li>
     2302                        <li><em>Section 10</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7230.13">9</a></li>
     2303                     </ul>
     2304                  </li>
     2305                  <li><em>RFC7231</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7231.1">2</a>, <a href="#rfc.xref.RFC7231.2">2</a>, <a href="#rfc.xref.RFC7231.3">4</a>, <a href="#rfc.xref.RFC7231.4">4.1</a>, <a href="#rfc.xref.RFC7231.5">4.2.2</a>, <a href="#rfc.xref.RFC7231.6">4.2.3</a>, <a href="#rfc.xref.RFC7231.7">4.4</a>, <a href="#rfc.xref.RFC7231.8">5.3</a>, <a href="#rfc.xref.RFC7231.9">8</a>, <a href="#RFC7231"><b>10.1</b></a>, <a href="#rfc.xref.RFC7231.10">B</a><ul>
     2306                        <li><em>Section 4.2.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7231.3">4</a>, <a href="#rfc.xref.RFC7231.7">4.4</a></li>
     2307                        <li><em>Section 4.3.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7231.2">2</a></li>
     2308                        <li><em>Section 6.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7231.5">4.2.2</a></li>
     2309                        <li><em>Section 7.1.1.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7231.8">5.3</a>, <a href="#rfc.xref.RFC7231.10">B</a></li>
     2310                        <li><em>Section 7.1.1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7231.6">4.2.3</a></li>
     2311                        <li><em>Section 7.1.4</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7231.4">4.1</a></li>
     2312                     </ul>
     2313                  </li>
     2314                  <li><em>RFC7232</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7232.1">4.2.2</a>, <a href="#rfc.xref.RFC7232.2">4.3</a>, <a href="#rfc.xref.RFC7232.3">4.3.1</a>, <a href="#rfc.xref.RFC7232.4">4.3.1</a>, <a href="#rfc.xref.RFC7232.5">4.3.2</a>, <a href="#rfc.xref.RFC7232.6">4.3.2</a>, <a href="#rfc.xref.RFC7232.7">4.3.2</a>, <a href="#rfc.xref.RFC7232.8">4.3.4</a>, <a href="#RFC7232"><b>10.1</b></a><ul>
     2315                        <li><em>Section 2.1</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7232.8">4.3.4</a></li>
     2316                        <li><em>Section 2.2</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7232.1">4.2.2</a>, <a href="#rfc.xref.RFC7232.3">4.3.1</a></li>
     2317                        <li><em>Section 2.3</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7232.4">4.3.1</a></li>
     2318                        <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7232.6">4.3.2</a></li>
     2319                        <li><em>Section 3.3</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7232.7">4.3.2</a></li>
     2320                        <li><em>Section 6</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7232.5">4.3.2</a></li>
     2321                     </ul>
     2322                  </li>
     2323                  <li><em>RFC7233</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7233.1">3.1</a>, <a href="#rfc.xref.RFC7233.2">3.3</a>, <a href="#rfc.xref.RFC7233.3">3.3</a>, <a href="#rfc.xref.RFC7233.4">4.3.2</a>, <a href="#rfc.xref.RFC7233.5">4.3.2</a>, <a href="#RFC7233"><b>10.1</b></a><ul>
     2324                        <li><em>Section 3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7233.5">4.3.2</a></li>
     2325                        <li><em>Section 4.3</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7233.3">3.3</a></li>
     2326                     </ul>
     2327                  </li>
     2328                  <li><em>RFC7235</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7235.1">3</a>, <a href="#rfc.xref.RFC7235.2">3.2</a>, <a href="#RFC7235"><b>10.1</b></a><ul>
     2329                        <li><em>Section 4.2</em>&nbsp;&nbsp;<a href="#rfc.xref.RFC7235.1">3</a>, <a href="#rfc.xref.RFC7235.2">3.2</a></li>
     2330                     </ul>
     2331                  </li>
    23322332               </ul>
    23332333            </li>
Note: See TracChangeset for help on using the changeset viewer.