Changeset 834 for draft-ietf-httpbis/latest/p6-cache.html
- Timestamp:
- 02/07/10 00:03:26 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p6-cache.html
r832 r834 561 561 <li class="tocline1">2.4 <a href="#validation.model">Validation Model</a></li> 562 562 <li class="tocline1">2.5 <a href="#invalidation.after.updates.or.deletions">Request Methods that Invalidate</a></li> 563 <li class="tocline1">2.6 <a href="#caching.negotiated.responses">Caching Negotiated Responses</a></li> 564 <li class="tocline1">2.7 <a href="#combining.headers">Combining Responses</a></li> 563 <li class="tocline1">2.6 <a href="#caching.authenticated.responses">Shared Caching of Authenticated Responses</a></li> 564 <li class="tocline1">2.7 <a href="#caching.negotiated.responses">Caching Negotiated Responses</a></li> 565 <li class="tocline1">2.8 <a href="#combining.headers">Combining Responses</a></li> 565 566 </ul> 566 567 </li> … … 726 727 <li>the "private" cache response directive (see <a href="#cache-response-directive" title="Response Cache-Control Directives">Section 3.2.2</a> does not appear in the response, if the cache is shared, and 727 728 </li> 728 <li>the "Authorization" header (see <a href="p7-auth.html#header.authorization" title="Authorization">Section 3.1</a> of <a href="#Part7" id="rfc.xref.Part7.1"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>) does not appear in the request, if the cache is shared (unless the "public" directive is present; see <a href="#header.cache-control" id="rfc.xref.header.cache-control.2" title="Cache-Control">Section 3.2</a>), and729 <li>the "Authorization" header (see <a href="p7-auth.html#header.authorization" title="Authorization">Section 3.1</a> of <a href="#Part7" id="rfc.xref.Part7.1"><cite title="HTTP/1.1, part 7: 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="Shared Caching of Authenticated Responses">Section 2.6</a>), and 729 730 </li> 730 731 <li>the response either: … … 762 763 </li> 763 764 <li>the request method associated with the stored response allows it to be used for the presented request, and</li> 764 <li>selecting request-headers nominated by the stored response (if any) match those presented (see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2. 6</a>), and765 </li> 766 <li>the presented request and stored response are free from directives that would prevent its use (see <a href="#header.cache-control" id="rfc.xref.header.cache-control. 3" title="Cache-Control">Section 3.2</a> and <a href="#header.pragma" id="rfc.xref.header.pragma.1" title="Pragma">Section 3.4</a>), and765 <li>selecting request-headers nominated by the stored response (if any) match those presented (see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2.7</a>), and 766 </li> 767 <li>the presented request and stored response are free from directives that would prevent its use (see <a href="#header.cache-control" id="rfc.xref.header.cache-control.2" title="Cache-Control">Section 3.2</a> and <a href="#header.pragma" id="rfc.xref.header.pragma.1" title="Pragma">Section 3.4</a>), and 767 768 </li> 768 769 <li>the stored response is either: … … 920 921 <h2 id="rfc.section.2.4"><a href="#rfc.section.2.4">2.4</a> <a id="validation.model" href="#validation.model">Validation Model</a></h2> 921 922 <p id="rfc.section.2.4.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 922 fresh, or one cannot be selected; see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2. 6</a>), it can use the conditional request mechanism <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a> in the forwarded request to give the origin server an opportunity to both select a valid stored response to be used, and to923 fresh, or one cannot be selected; see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2.7</a>), it can use the conditional request mechanism <a href="#Part4" id="rfc.xref.Part4.2"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a> in the forwarded request to give the origin server an opportunity to both select a valid stored response to be used, and to 923 924 update it. This process is known as "validating" or "revalidating" the stored response. 924 925 </p> 925 <p id="rfc.section.2.4.p.2">When sending such a conditional request, the cache <em class="bcp14">SHOULD</em> add an If-Modified-Since header whose value is that of the Last-Modified header from the selected (see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2. 6</a>) stored response, if available.926 <p id="rfc.section.2.4.p.2">When sending such a conditional request, the cache <em class="bcp14">SHOULD</em> add an If-Modified-Since header whose value is that of the Last-Modified header from the selected (see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2.7</a>) stored response, if available. 926 927 </p> 927 928 <p id="rfc.section.2.4.p.3">Additionally, the cache <em class="bcp14">SHOULD</em> add an If-None-Match header whose value is that of the ETag header(s) from all responses stored for the requested URI, if … … 929 930 response. 930 931 </p> 931 <p id="rfc.section.2.4.p.4">A 304 (Not Modified) response status code indicates that the stored response can be updated and reused; see <a href="#combining.headers" title="Combining Responses">Section 2. 7</a>.932 <p id="rfc.section.2.4.p.4">A 304 (Not Modified) response status code indicates that the stored response can be updated and reused; see <a href="#combining.headers" title="Combining Responses">Section 2.8</a>. 932 933 </p> 933 934 <p id="rfc.section.2.4.p.5">A full response (i.e., one with a response body) indicates that none of the stored responses nominated in the conditional … … 960 961 <p id="rfc.section.2.5.p.8"> <span class="comment" id="TODO-spec-success-invalidate">[<a href="#TODO-spec-success-invalidate" class="smpl">TODO-spec-success-invalidate</a>: specify that only successful (2xx, 3xx?) responses invalidate.]</span> 961 962 </p> 962 <h2 id="rfc.section.2.6"><a href="#rfc.section.2.6">2.6</a> <a id="caching.negotiated.responses" href="#caching.negotiated.responses">Caching Negotiated Responses</a></h2> 963 <p id="rfc.section.2.6.p.1">When a cache receives a request that can be satisfied by a stored response that has a Vary header field (<a href="#header.vary" id="rfc.xref.header.vary.1" title="Vary">Section 3.5</a>), it <em class="bcp14">MUST NOT</em> use that response unless all of the selecting request-headers nominated by the Vary header match in both the original request 963 <h2 id="rfc.section.2.6"><a href="#rfc.section.2.6">2.6</a> <a id="caching.authenticated.responses" href="#caching.authenticated.responses">Shared Caching of Authenticated Responses</a></h2> 964 <p id="rfc.section.2.6.p.1">Shared caches <em class="bcp14">MUST NOT</em> use a cached response to a request with an Authorization header (<a href="p7-auth.html#header.authorization" title="Authorization">Section 3.1</a> of <a href="#Part7" id="rfc.xref.Part7.2"><cite title="HTTP/1.1, part 7: 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. 965 </p> 966 <p id="rfc.section.2.6.p.2">In this specification, the following Cache-Control response directives (<a href="#cache-response-directive" title="Response Cache-Control Directives">Section 3.2.2</a>) have such an effect: must-revalidate, public, s-maxage. 967 </p> 968 <p id="rfc.section.2.6.p.3">Note that cached responses that contain the "must-revalidate" and/or "s-maxage" response directives are not allowed to be 969 served stale (<a href="#serving.stale.responses" title="Serving Stale Responses">Section 2.3.3</a>) by shared caches. In particular, a response with either "max-age=0, must-revalidate" or "s-maxage=0" cannot be used to satisfy 970 a subsequent request without revalidating it on the origin server. 971 </p> 972 <h2 id="rfc.section.2.7"><a href="#rfc.section.2.7">2.7</a> <a id="caching.negotiated.responses" href="#caching.negotiated.responses">Caching Negotiated Responses</a></h2> 973 <p id="rfc.section.2.7.p.1">When a cache receives a request that can be satisfied by a stored response that has a Vary header field (<a href="#header.vary" id="rfc.xref.header.vary.1" title="Vary">Section 3.5</a>), it <em class="bcp14">MUST NOT</em> use that response unless all of the selecting request-headers nominated by the Vary header match in both the original request 964 974 (i.e., that associated with the stored response), and the presented request. 965 975 </p> 966 <p id="rfc.section.2. 6.p.2">The selecting request-headers from two requests are defined to match if and only if those in the first request can be transformed976 <p id="rfc.section.2.7.p.2">The selecting request-headers from two requests are defined to match if and only if those in the first request can be transformed 967 977 to those in the second request by applying any of the following: 968 978 </p> … … 975 985 </li> 976 986 </ul> 977 <p id="rfc.section.2. 6.p.3">If (after any normalisation that may take place) a header field is absent from a request, it can only match another request987 <p id="rfc.section.2.7.p.3">If (after any normalisation that may take place) a header field is absent from a request, it can only match another request 978 988 if it is also absent there. 979 989 </p> 980 <p id="rfc.section.2. 6.p.4">A Vary header field-value of "*" always fails to match, and subsequent requests to that resource can only be properly interpreted990 <p id="rfc.section.2.7.p.4">A Vary header field-value of "*" always fails to match, and subsequent requests to that resource can only be properly interpreted 981 991 by the origin server. 982 992 </p> 983 <p id="rfc.section.2. 6.p.5">The stored response with matching selecting request-headers is known as the selected response.</p>984 <p id="rfc.section.2. 6.p.6">If no selected response is available, the cache <em class="bcp14">MAY</em> forward the presented request to the origin server in a conditional request; see <a href="#validation.model" title="Validation Model">Section 2.4</a>.985 </p> 986 <h2 id="rfc.section.2. 7"><a href="#rfc.section.2.7">2.7</a> <a id="combining.headers" href="#combining.headers">Combining Responses</a></h2>987 <p id="rfc.section.2. 7.p.1">When a cache receives a 304 (Not Modified) response or a 206 (Partial Content) response (in this section, the "new" response"),993 <p id="rfc.section.2.7.p.5">The stored response with matching selecting request-headers is known as the selected response.</p> 994 <p id="rfc.section.2.7.p.6">If no selected response is available, the cache <em class="bcp14">MAY</em> forward the presented request to the origin server in a conditional request; see <a href="#validation.model" title="Validation Model">Section 2.4</a>. 995 </p> 996 <h2 id="rfc.section.2.8"><a href="#rfc.section.2.8">2.8</a> <a id="combining.headers" href="#combining.headers">Combining Responses</a></h2> 997 <p id="rfc.section.2.8.p.1">When a cache receives a 304 (Not Modified) response or a 206 (Partial Content) response (in this section, the "new" response"), 988 998 it needs to created an updated response by combining the stored response with the new one, so that the updated response can 989 999 be used to satisfy the request. 990 1000 </p> 991 <p id="rfc.section.2. 7.p.2">If the new response contains an ETag, it identifies the stored response to use. <span class="comment" id="TODO-mention-CL">[<a href="#TODO-mention-CL" class="smpl">TODO-mention-CL</a>: may need language about Content-Location here]</span><span class="comment" id="TODO-inm-mult-etags">[<a href="#TODO-inm-mult-etags" class="smpl">TODO-inm-mult-etags</a>: cover case where INM with multiple etags was sent]</span>992 </p> 993 <p id="rfc.section.2. 7.p.3">If the status code is 206 (partial content), both the stored and new responses <em class="bcp14">MUST</em> have validators, and those validators <em class="bcp14">MUST</em> match using the strong comparison function (see <a href="p4-conditional.html#weak.and.strong.validators" title="Weak and Strong Validators">Section 4</a> of <a href="#Part4" id="rfc.xref.Part4.3"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>). Otherwise, the responses <em class="bcp14">MUST NOT</em> be combined.994 </p> 995 <p id="rfc.section.2. 7.p.4">The stored response headers are used as those of the updated response, except that </p>1001 <p id="rfc.section.2.8.p.2">If the new response contains an ETag, it identifies the stored response to use. <span class="comment" id="TODO-mention-CL">[<a href="#TODO-mention-CL" class="smpl">TODO-mention-CL</a>: may need language about Content-Location here]</span><span class="comment" id="TODO-inm-mult-etags">[<a href="#TODO-inm-mult-etags" class="smpl">TODO-inm-mult-etags</a>: cover case where INM with multiple etags was sent]</span> 1002 </p> 1003 <p id="rfc.section.2.8.p.3">If the status code is 206 (partial content), both the stored and new responses <em class="bcp14">MUST</em> have validators, and those validators <em class="bcp14">MUST</em> match using the strong comparison function (see <a href="p4-conditional.html#weak.and.strong.validators" title="Weak and Strong Validators">Section 4</a> of <a href="#Part4" id="rfc.xref.Part4.3"><cite title="HTTP/1.1, part 4: Conditional Requests">[Part4]</cite></a>). Otherwise, the responses <em class="bcp14">MUST NOT</em> be combined. 1004 </p> 1005 <p id="rfc.section.2.8.p.4">The stored response headers are used as those of the updated response, except that </p> 996 1006 <ul> 997 1007 <li>any stored Warning headers with warn-code 1xx (see <a href="#header.warning" id="rfc.xref.header.warning.2" title="Warning">Section 3.6</a>) <em class="bcp14">MUST</em> be deleted from the stored response and the updated response. … … 1002 1012 </li> 1003 1013 </ul> 1004 <p id="rfc.section.2. 7.p.5">If a header field-name in the new response matches more than one header in the stored response, all such stored headers <em class="bcp14">MUST</em> be replaced.1005 </p> 1006 <p id="rfc.section.2. 7.p.6">The updated response can <span class="comment" id="TODO-is-req">[<a href="#TODO-is-req" class="smpl">TODO-is-req</a>: requirement?]</span> be used to replace the stored response in cache. In the case of a 206 response, the combined entity-body <em class="bcp14">MAY</em> be stored.1007 </p> 1008 <p id="rfc.section.2. 7.p.7"> <span class="comment" id="ISSUE-how-head">[<a href="#ISSUE-how-head" class="smpl">ISSUE-how-head</a>: discuss how to handle HEAD updates]</span>1014 <p id="rfc.section.2.8.p.5">If a header field-name in the new response matches more than one header in the stored response, all such stored headers <em class="bcp14">MUST</em> be replaced. 1015 </p> 1016 <p id="rfc.section.2.8.p.6">The updated response can <span class="comment" id="TODO-is-req">[<a href="#TODO-is-req" class="smpl">TODO-is-req</a>: requirement?]</span> be used to replace the stored response in cache. In the case of a 206 response, the combined entity-body <em class="bcp14">MAY</em> be stored. 1017 </p> 1018 <p id="rfc.section.2.8.p.7"> <span class="comment" id="ISSUE-how-head">[<a href="#ISSUE-how-head" class="smpl">ISSUE-how-head</a>: discuss how to handle HEAD updates]</span> 1009 1019 </p> 1010 1020 <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="header.fields" href="#header.fields">Header Field Definitions</a></h1> … … 1134 1144 </p> 1135 1145 <ul class="empty"> 1136 <li>The public response directive indicates that the response <em class="bcp14">MAY</em> be cached, even if it would normally be non-cacheable or cacheable only within a non-shared cache. (See also Authorization, <a href="p7-auth.html#header.authorization" title="Authorization">Section 3.1</a> of <a href="#Part7" id="rfc.xref.Part7. 2"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, for additional details.)1146 <li>The public response directive indicates that the response <em class="bcp14">MAY</em> be cached, even if it would normally be non-cacheable or cacheable only within a non-shared cache. (See also Authorization, <a href="p7-auth.html#header.authorization" title="Authorization">Section 3.1</a> of <a href="#Part7" id="rfc.xref.Part7.3"><cite title="HTTP/1.1, part 7: Authentication">[Part7]</cite></a>, for additional details.) 1137 1147 </li> 1138 1148 </ul> … … 1296 1306 <h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5</a> <a id="header.vary" href="#header.vary">Vary</a></h2> 1297 1307 <p id="rfc.section.3.5.p.1">The "Vary" response-header field conveys the set of request-header fields that were used to select the representation.</p> 1298 <p id="rfc.section.3.5.p.2">Caches use this information, in part, to determine whether a stored response can be used to satisfy a given request; see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2. 6</a>. determines, while the response is fresh, whether a cache is permitted to use the response to reply to a subsequent request1299 without validation; see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2. 6</a>.1308 <p id="rfc.section.3.5.p.2">Caches use this information, in part, to determine whether a stored response can be used to satisfy a given request; see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2.7</a>. determines, while the response is fresh, whether a cache is permitted to use the response to reply to a subsequent request 1309 without validation; see <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 2.7</a>. 1300 1310 </p> 1301 1311 <p id="rfc.section.3.5.p.3">In uncacheable or stale responses, the Vary field value advises the user agent about the criteria that were used to select … … 1533 1543 <td class="left">http</td> 1534 1544 <td class="left">standard</td> 1535 <td class="left"> <a href="#header.cache-control" id="rfc.xref.header.cache-control. 4" title="Cache-Control">Section 3.2</a>1545 <td class="left"> <a href="#header.cache-control" id="rfc.xref.header.cache-control.3" title="Cache-Control">Section 3.2</a> 1536 1546 </td> 1537 1547 </tr> … … 1671 1681 <h1 id="rfc.section.A" class="np"><a href="#rfc.section.A">A.</a> <a id="compatibility" href="#compatibility">Compatibility with Previous Versions</a></h1> 1672 1682 <h2 id="rfc.section.A.1"><a href="#rfc.section.A.1">A.1</a> <a id="changes.from.rfc.2068" href="#changes.from.rfc.2068">Changes from RFC 2068</a></h2> 1673 <p id="rfc.section.A.1.p.1">A case was missed in the Cache-Control model of HTTP/1.1; s-maxage was introduced to add this missing case. (Sections <a href="#response.cacheability" title="Response Cacheability">2.1</a>, <a href="#header.cache-control" id="rfc.xref.header.cache-control. 5" title="Cache-Control">3.2</a>).1683 <p id="rfc.section.A.1.p.1">A case was missed in the Cache-Control model of HTTP/1.1; s-maxage was introduced to add this missing case. (Sections <a href="#response.cacheability" title="Response Cacheability">2.1</a>, <a href="#header.cache-control" id="rfc.xref.header.cache-control.4" title="Cache-Control">3.2</a>). 1674 1684 </p> 1675 1685 <p id="rfc.section.A.1.p.2">Range request responses would become very verbose if all meta-data were always returned; by allowing the server to only send 1676 needed headers in a 206 response, this problem can be avoided. (<a href="#combining.headers" title="Combining Responses">Section 2. 7</a>)1686 needed headers in a 206 response, this problem can be avoided. (<a href="#combining.headers" title="Combining Responses">Section 2.8</a>) 1677 1687 </p> 1678 1688 <p id="rfc.section.A.1.p.3">The Cache-Control: max-age directive was not properly defined for responses. (<a href="#cache-response-directive" title="Response Cache-Control Directives">Section 3.2.2</a>) 1679 1689 </p> 1680 <p id="rfc.section.A.1.p.4">Warnings could be cached incorrectly, or not updated appropriately. (Section <a href="#expiration.model" title="Freshness Model">2.3</a>, <a href="#combining.headers" title="Combining Responses">2. 7</a>, <a href="#header.cache-control" id="rfc.xref.header.cache-control.6" title="Cache-Control">3.2</a>, and <a href="#header.warning" id="rfc.xref.header.warning.4" title="Warning">3.6</a>) Warning also needed to be a general header, as PUT or other methods may have need for it in requests.1690 <p id="rfc.section.A.1.p.4">Warnings could be cached incorrectly, or not updated appropriately. (Section <a href="#expiration.model" title="Freshness Model">2.3</a>, <a href="#combining.headers" title="Combining Responses">2.8</a>, <a href="#header.cache-control" id="rfc.xref.header.cache-control.5" title="Cache-Control">3.2</a>, and <a href="#header.warning" id="rfc.xref.header.warning.4" title="Warning">3.6</a>) Warning also needed to be a general header, as PUT or other methods may have need for it in requests. 1681 1691 </p> 1682 1692 <h2 id="rfc.section.A.2"><a href="#rfc.section.A.2">A.2</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h2> … … 1891 1901 </li> 1892 1902 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/168">http://tools.ietf.org/wg/httpbis/trac/ticket/168</a>>: "Clarify differences between / requirements for request and response CC directives" 1903 </li> 1904 <li> <<a href="http://trac.tools.ietf.org/wg/httpbis/trac/ticket/174">http://trac.tools.ietf.org/wg/httpbis/trac/ticket/174</a>>: "Caching authenticated responses" 1893 1905 </li> 1894 1906 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/208">http://tools.ietf.org/wg/httpbis/trac/ticket/208</a>>: "IANA registry for cache-control directives" … … 1930 1942 </ul> 1931 1943 </li> 1932 <li class="indline1">Cache-Control header <a class="iref" href="#rfc.xref.header.cache-control.1">2.1</a>, <a class="iref" href="#rfc.xref.header.cache-control.2">2. 1</a>, <a class="iref" href="#rfc.xref.header.cache-control.3">2.2</a>, <a class="iref" href="#rfc.iref.c.3"><b>3.2</b></a>, <a class="iref" href="#rfc.xref.header.cache-control.4">5.2</a>, <a class="iref" href="#rfc.xref.header.cache-control.5">A.1</a>, <a class="iref" href="#rfc.xref.header.cache-control.6">A.1</a></li>1944 <li class="indline1">Cache-Control header <a class="iref" href="#rfc.xref.header.cache-control.1">2.1</a>, <a class="iref" href="#rfc.xref.header.cache-control.2">2.2</a>, <a class="iref" href="#rfc.iref.c.3"><b>3.2</b></a>, <a class="iref" href="#rfc.xref.header.cache-control.3">5.2</a>, <a class="iref" href="#rfc.xref.header.cache-control.4">A.1</a>, <a class="iref" href="#rfc.xref.header.cache-control.5">A.1</a></li> 1933 1945 <li class="indline1">cacheable <a class="iref" href="#rfc.iref.c.2">1.2</a></li> 1934 1946 </ul> … … 1979 1991 <ul class="ind"> 1980 1992 <li class="indline1">Age <a class="iref" href="#rfc.xref.header.age.1">2.2</a>, <a class="iref" href="#rfc.xref.header.age.2">2.3.2</a>, <a class="iref" href="#rfc.iref.h.2"><b>3.1</b></a>, <a class="iref" href="#rfc.xref.header.age.3">5.2</a></li> 1981 <li class="indline1">Cache-Control <a class="iref" href="#rfc.xref.header.cache-control.1">2.1</a>, <a class="iref" href="#rfc.xref.header.cache-control.2">2. 1</a>, <a class="iref" href="#rfc.xref.header.cache-control.3">2.2</a>, <a class="iref" href="#rfc.iref.h.3"><b>3.2</b></a>, <a class="iref" href="#rfc.xref.header.cache-control.4">5.2</a>, <a class="iref" href="#rfc.xref.header.cache-control.5">A.1</a>, <a class="iref" href="#rfc.xref.header.cache-control.6">A.1</a></li>1993 <li class="indline1">Cache-Control <a class="iref" href="#rfc.xref.header.cache-control.1">2.1</a>, <a class="iref" href="#rfc.xref.header.cache-control.2">2.2</a>, <a class="iref" href="#rfc.iref.h.3"><b>3.2</b></a>, <a class="iref" href="#rfc.xref.header.cache-control.3">5.2</a>, <a class="iref" href="#rfc.xref.header.cache-control.4">A.1</a>, <a class="iref" href="#rfc.xref.header.cache-control.5">A.1</a></li> 1982 1994 <li class="indline1">Expires <a class="iref" href="#rfc.xref.header.expires.1">2.1</a>, <a class="iref" href="#rfc.xref.header.expires.2">2.3</a>, <a class="iref" href="#rfc.xref.header.expires.3">2.3.1</a>, <a class="iref" href="#rfc.iref.h.4"><b>3.3</b></a>, <a class="iref" href="#rfc.xref.header.expires.4">5.2</a></li> 1983 1995 <li class="indline1">Pragma <a class="iref" href="#rfc.xref.header.pragma.1">2.2</a>, <a class="iref" href="#rfc.xref.header.pragma.2">3.2</a>, <a class="iref" href="#rfc.iref.h.5"><b>3.4</b></a>, <a class="iref" href="#rfc.xref.header.pragma.3">5.2</a></li> 1984 <li class="indline1">Vary <a class="iref" href="#rfc.xref.header.vary.1">2. 6</a>, <a class="iref" href="#rfc.iref.h.6"><b>3.5</b></a>, <a class="iref" href="#rfc.xref.header.vary.2">5.2</a></li>1985 <li class="indline1">Warning <a class="iref" href="#rfc.xref.header.warning.1">2.3.3</a>, <a class="iref" href="#rfc.xref.header.warning.2">2. 7</a>, <a class="iref" href="#rfc.iref.h.7"><b>3.6</b></a>, <a class="iref" href="#rfc.xref.header.warning.3">5.2</a>, <a class="iref" href="#rfc.xref.header.warning.4">A.1</a>, <a class="iref" href="#rfc.xref.header.warning.5">A.2</a></li>1996 <li class="indline1">Vary <a class="iref" href="#rfc.xref.header.vary.1">2.7</a>, <a class="iref" href="#rfc.iref.h.6"><b>3.5</b></a>, <a class="iref" href="#rfc.xref.header.vary.2">5.2</a></li> 1997 <li class="indline1">Warning <a class="iref" href="#rfc.xref.header.warning.1">2.3.3</a>, <a class="iref" href="#rfc.xref.header.warning.2">2.8</a>, <a class="iref" href="#rfc.iref.h.7"><b>3.6</b></a>, <a class="iref" href="#rfc.xref.header.warning.3">5.2</a>, <a class="iref" href="#rfc.xref.header.warning.4">A.1</a>, <a class="iref" href="#rfc.xref.header.warning.5">A.2</a></li> 1986 1998 </ul> 1987 1999 </li> … … 2039 2051 </li> 2040 2052 <li class="indline0"><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul class="ind"> 2041 <li class="indline1"><em>Part1</em> <a class="iref" href="#rfc.xref.Part1.1">1.4</a>, <a class="iref" href="#rfc.xref.Part1.2">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.3">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.4">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.5">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.6">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.7">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.8">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.9">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.10">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.11">2.2</a>, <a class="iref" href="#rfc.xref.Part1.12">2.3.2</a>, <a class="iref" href="#rfc.xref.Part1.13">2.5</a>, <a class="iref" href="#rfc.xref.Part1.14">2.5</a>, <a class="iref" href="#rfc.xref.Part1.15">2.5</a>, <a class="iref" href="#rfc.xref.Part1.16">2. 6</a>, <a class="iref" href="#rfc.xref.Part1.17">3.3</a>, <a class="iref" href="#Part1"><b>8.1</b></a><ul class="ind">2053 <li class="indline1"><em>Part1</em> <a class="iref" href="#rfc.xref.Part1.1">1.4</a>, <a class="iref" href="#rfc.xref.Part1.2">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.3">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.4">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.5">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.6">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.7">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.8">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.9">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.10">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.11">2.2</a>, <a class="iref" href="#rfc.xref.Part1.12">2.3.2</a>, <a class="iref" href="#rfc.xref.Part1.13">2.5</a>, <a class="iref" href="#rfc.xref.Part1.14">2.5</a>, <a class="iref" href="#rfc.xref.Part1.15">2.5</a>, <a class="iref" href="#rfc.xref.Part1.16">2.7</a>, <a class="iref" href="#rfc.xref.Part1.17">3.3</a>, <a class="iref" href="#Part1"><b>8.1</b></a><ul class="ind"> 2042 2054 <li class="indline1"><em>Section 1.2</em> <a class="iref" href="#rfc.xref.Part1.1">1.4</a></li> 2043 2055 <li class="indline1"><em>Section 1.2.2</em> <a class="iref" href="#rfc.xref.Part1.2">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.3">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.4">1.4.1</a>, <a class="iref" href="#rfc.xref.Part1.5">1.4.1</a></li> 2044 2056 <li class="indline1"><em>Section 2.6</em> <a class="iref" href="#rfc.xref.Part1.8">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.10">1.4.2</a></li> 2045 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part1.6">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.16">2. 6</a></li>2057 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part1.6">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.16">2.7</a></li> 2046 2058 <li class="indline1"><em>Section 4.3</em> <a class="iref" href="#rfc.xref.Part1.11">2.2</a>, <a class="iref" href="#rfc.xref.Part1.13">2.5</a>, <a class="iref" href="#rfc.xref.Part1.14">2.5</a>, <a class="iref" href="#rfc.xref.Part1.15">2.5</a></li> 2047 2059 <li class="indline1"><em>Section 6.1</em> <a class="iref" href="#rfc.xref.Part1.7">1.4.2</a>, <a class="iref" href="#rfc.xref.Part1.17">3.3</a></li> … … 2054 2066 </ul> 2055 2067 </li> 2056 <li class="indline1"><em>Part4</em> <a class="iref" href="#rfc.xref.Part4.1">2.3.1.1</a>, <a class="iref" href="#rfc.xref.Part4.2">2.4</a>, <a class="iref" href="#rfc.xref.Part4.3">2. 7</a>, <a class="iref" href="#Part4"><b>8.1</b></a><ul class="ind">2057 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part4.3">2. 7</a></li>2068 <li class="indline1"><em>Part4</em> <a class="iref" href="#rfc.xref.Part4.1">2.3.1.1</a>, <a class="iref" href="#rfc.xref.Part4.2">2.4</a>, <a class="iref" href="#rfc.xref.Part4.3">2.8</a>, <a class="iref" href="#Part4"><b>8.1</b></a><ul class="ind"> 2069 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part4.3">2.8</a></li> 2058 2070 <li class="indline1"><em>Section 6.6</em> <a class="iref" href="#rfc.xref.Part4.1">2.3.1.1</a></li> 2059 2071 </ul> … … 2063 2075 </ul> 2064 2076 </li> 2065 <li class="indline1"><em>Part7</em> <a class="iref" href="#rfc.xref.Part7.1">2.1</a>, <a class="iref" href="#rfc.xref.Part7.2"> 3.2.2</a>, <a class="iref" href="#Part7"><b>8.1</b></a><ul class="ind">2066 <li class="indline1"><em>Section 3.1</em> <a class="iref" href="#rfc.xref.Part7.1">2.1</a>, <a class="iref" href="#rfc.xref.Part7.2"> 3.2.2</a></li>2077 <li class="indline1"><em>Part7</em> <a class="iref" href="#rfc.xref.Part7.1">2.1</a>, <a class="iref" href="#rfc.xref.Part7.2">2.6</a>, <a class="iref" href="#rfc.xref.Part7.3">3.2.2</a>, <a class="iref" href="#Part7"><b>8.1</b></a><ul class="ind"> 2078 <li class="indline1"><em>Section 3.1</em> <a class="iref" href="#rfc.xref.Part7.1">2.1</a>, <a class="iref" href="#rfc.xref.Part7.2">2.6</a>, <a class="iref" href="#rfc.xref.Part7.3">3.2.2</a></li> 2067 2079 </ul> 2068 2080 </li> … … 2119 2131 <li class="indline0"><a id="rfc.index.V" href="#rfc.index.V"><b>V</b></a><ul class="ind"> 2120 2132 <li class="indline1">validator <a class="iref" href="#rfc.iref.v.1">1.2</a>, <a class="iref" href="#rfc.iref.v.2">1.2</a></li> 2121 <li class="indline1">Vary header <a class="iref" href="#rfc.xref.header.vary.1">2. 6</a>, <a class="iref" href="#rfc.iref.v.3"><b>3.5</b></a>, <a class="iref" href="#rfc.xref.header.vary.2">5.2</a></li>2133 <li class="indline1">Vary header <a class="iref" href="#rfc.xref.header.vary.1">2.7</a>, <a class="iref" href="#rfc.iref.v.3"><b>3.5</b></a>, <a class="iref" href="#rfc.xref.header.vary.2">5.2</a></li> 2122 2134 </ul> 2123 2135 </li> 2124 2136 <li class="indline0"><a id="rfc.index.W" href="#rfc.index.W"><b>W</b></a><ul class="ind"> 2125 <li class="indline1">Warning header <a class="iref" href="#rfc.xref.header.warning.1">2.3.3</a>, <a class="iref" href="#rfc.xref.header.warning.2">2. 7</a>, <a class="iref" href="#rfc.iref.w.1"><b>3.6</b></a>, <a class="iref" href="#rfc.xref.header.warning.3">5.2</a>, <a class="iref" href="#rfc.xref.header.warning.4">A.1</a>, <a class="iref" href="#rfc.xref.header.warning.5">A.2</a></li>2137 <li class="indline1">Warning header <a class="iref" href="#rfc.xref.header.warning.1">2.3.3</a>, <a class="iref" href="#rfc.xref.header.warning.2">2.8</a>, <a class="iref" href="#rfc.iref.w.1"><b>3.6</b></a>, <a class="iref" href="#rfc.xref.header.warning.3">5.2</a>, <a class="iref" href="#rfc.xref.header.warning.4">A.1</a>, <a class="iref" href="#rfc.xref.header.warning.5">A.2</a></li> 2126 2138 </ul> 2127 2139 </li>
Note: See TracChangeset
for help on using the changeset viewer.