Ignore:
Timestamp:
Jun 25, 2012, 12:18:34 AM (7 years ago)
Author:
julian.reschke@…
Message:

remove predefined directives from cache control ABNF (make it generic) and deal with the special cases introduced by pre-existing cache directives (see #307)

File:
1 edited

Legend:

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

    r1692 r1695  
    452452  }
    453453  @bottom-center {
    454        content: "Expires December 25, 2012";
     454       content: "Expires December 27, 2012";
    455455  }
    456456  @bottom-right {
     
    494494      <meta name="dct.creator" content="Reschke, J. F.">
    495495      <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p6-cache-latest">
    496       <meta name="dct.issued" scheme="ISO8601" content="2012-06-23">
     496      <meta name="dct.issued" scheme="ISO8601" content="2012-06-25">
    497497      <meta name="dct.replaces" content="urn:ietf:rfc:2616">
    498498      <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 6 of the seven-part specification that defines the protocol referred to as &#34;HTTP/1.1&#34; and, taken together, obsoletes RFC 2616. Part 6 defines requirements on HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.">
     
    520520            </tr>
    521521            <tr>
    522                <td class="left">Expires: December 25, 2012</td>
     522               <td class="left">Expires: December 27, 2012</td>
    523523               <td class="right">M. Nottingham, Editor</td>
    524524            </tr>
     
    537537            <tr>
    538538               <td class="left"></td>
    539                <td class="right">June 23, 2012</td>
     539               <td class="right">June 25, 2012</td>
    540540            </tr>
    541541         </tbody>
     
    567567         in progress”.
    568568      </p>
    569       <p>This Internet-Draft will expire on December 25, 2012.</p>
     569      <p>This Internet-Draft will expire on December 27, 2012.</p>
    570570      <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1>
    571571      <p>Copyright © 2012 IETF Trust and the persons identified as the document authors. All rights reserved.</p>
     
    623623               <li>3.1&nbsp;&nbsp;&nbsp;<a href="#header.age">Age</a></li>
    624624               <li>3.2&nbsp;&nbsp;&nbsp;<a href="#header.cache-control">Cache-Control</a><ul>
    625                      <li>3.2.1&nbsp;&nbsp;&nbsp;<a href="#cache-request-directive">Request Cache-Control Directives</a></li>
    626                      <li>3.2.2&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive">Response Cache-Control Directives</a></li>
     625                     <li>3.2.1&nbsp;&nbsp;&nbsp;<a href="#cache-request-directive">Request Cache-Control Directives</a><ul>
     626                           <li>3.2.1.1&nbsp;&nbsp;&nbsp;<a href="#cache-request-directive.no-cache">no-cache</a></li>
     627                           <li>3.2.1.2&nbsp;&nbsp;&nbsp;<a href="#cache-request-directive.no-store">no-store</a></li>
     628                           <li>3.2.1.3&nbsp;&nbsp;&nbsp;<a href="#cache-request-directive.max-age">max-age</a></li>
     629                           <li>3.2.1.4&nbsp;&nbsp;&nbsp;<a href="#cache-request-directive.max-stale">max-stale</a></li>
     630                           <li>3.2.1.5&nbsp;&nbsp;&nbsp;<a href="#cache-request-directive.min-fresh">min-fresh</a></li>
     631                           <li>3.2.1.6&nbsp;&nbsp;&nbsp;<a href="#cache-request-directive.no-transform">no-transform</a></li>
     632                           <li>3.2.1.7&nbsp;&nbsp;&nbsp;<a href="#cache-request-directive.only-if-cached">only-if-cached</a></li>
     633                        </ul>
     634                     </li>
     635                     <li>3.2.2&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive">Response Cache-Control Directives</a><ul>
     636                           <li>3.2.2.1&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive.only-if-cached">public</a></li>
     637                           <li>3.2.2.2&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive.private">private</a></li>
     638                           <li>3.2.2.3&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive.no-cache">no-cache</a></li>
     639                           <li>3.2.2.4&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive.no-store">no-store</a></li>
     640                           <li>3.2.2.5&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive.must-revalidate">must-revalidate</a></li>
     641                           <li>3.2.2.6&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive.proxy-revalidate">proxy-revalidate</a></li>
     642                           <li>3.2.2.7&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive.max-age">max-age</a></li>
     643                           <li>3.2.2.8&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive.s-maxage">s-maxage</a></li>
     644                           <li>3.2.2.9&nbsp;&nbsp;&nbsp;<a href="#cache-response-directive.no-transform">no-transform</a></li>
     645                        </ul>
     646                     </li>
    627647                     <li>3.2.3&nbsp;&nbsp;&nbsp;<a href="#cache.control.extensions">Cache Control Extensions</a></li>
    628648                  </ul>
     
    12231243         cache.
    12241244      </p>
    1225       <p id="rfc.section.3.2.p.5">Cache directives are identified by a token, to be compared case-insensitively, and have an optional argument.</p>
     1245      <p id="rfc.section.3.2.p.5">Cache directives are identified by a token, to be compared case-insensitively, and have an optional argument, that can use
     1246         both token and quoted-string syntax. For the directives defined below that define arguments, recipients ought to accept both
     1247         forms, even if one is documented to be preferred. For any directive not defined by this specification, recipients <em class="bcp14">MUST</em> accept both forms.
     1248      </p>
    12261249      <div id="rfc.figure.u.9"></div><pre class="inline"><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span>  <a href="#header.cache-control" class="smpl">Cache-Control</a>   = 1#<a href="#header.cache-control" class="smpl">cache-directive</a>
    12271250
    1228   <a href="#header.cache-control" class="smpl">cache-directive</a> = <a href="#header.cache-control" class="smpl">cache-request-directive</a>
    1229      / <a href="#header.cache-control" class="smpl">cache-response-directive</a>
    1230 
    1231   <a href="#header.cache-control" class="smpl">cache-extension</a> = <a href="#core.rules" class="smpl">token</a> [ "=" ( <a href="#core.rules" class="smpl">token</a> / <a href="#core.rules" class="smpl">quoted-string</a> ) ]
    1232 </pre><h3 id="rfc.section.3.2.1"><a href="#rfc.section.3.2.1">3.2.1</a>&nbsp;<a id="cache-request-directive" href="#cache-request-directive">Request Cache-Control Directives</a></h3>
    1233       <div id="rfc.figure.u.10"></div><pre class="inline"><span id="rfc.iref.g.5"></span>  <a href="#header.cache-control" class="smpl">cache-request-directive</a> =
    1234        "no-cache"
    1235      / "no-store"
    1236      / "max-age" "=" <a href="#delta-seconds" class="smpl">delta-seconds</a>
    1237      / "max-stale" [ "=" <a href="#delta-seconds" class="smpl">delta-seconds</a> ]
    1238      / "min-fresh" "=" <a href="#delta-seconds" class="smpl">delta-seconds</a>
    1239      / "no-transform"
    1240      / "only-if-cached"
    1241      / <a href="#header.cache-control" class="smpl">cache-extension</a>
    1242 </pre><p id="rfc.section.3.2.1.p.2"> <dfn>no-cache</dfn>  <span id="rfc.iref.c.7"></span>  <span id="rfc.iref.n.1"></span> 
    1243       </p>
     1251  <a href="#header.cache-control" class="smpl">cache-directive</a> = <a href="#core.rules" class="smpl">token</a> [ "=" ( <a href="#core.rules" class="smpl">token</a> / <a href="#core.rules" class="smpl">quoted-string</a> ) ]
     1252</pre><p id="rfc.section.3.2.p.7">For the cache directives defined below, no argument is defined (nor allowed) otherwise stated otherwise.</p>
     1253      <h3 id="rfc.section.3.2.1"><a href="#rfc.section.3.2.1">3.2.1</a>&nbsp;<a id="cache-request-directive" href="#cache-request-directive">Request Cache-Control Directives</a></h3>
     1254      <div id="rfc.iref.c.7"></div>
     1255      <div id="rfc.iref.n.1"></div>
     1256      <h4 id="rfc.section.3.2.1.1"><a href="#rfc.section.3.2.1.1">3.2.1.1</a>&nbsp;<a id="cache-request-directive.no-cache" href="#cache-request-directive.no-cache">no-cache</a></h4>
     1257      <p id="rfc.section.3.2.1.1.p.1">The no-cache request directive indicates that a cache <em class="bcp14">MUST NOT</em> use a stored response to satisfy the request without successful validation on the origin server.
     1258      </p>
     1259      <div id="rfc.iref.c.8"></div>
     1260      <div id="rfc.iref.n.2"></div>
     1261      <h4 id="rfc.section.3.2.1.2"><a href="#rfc.section.3.2.1.2">3.2.1.2</a>&nbsp;<a id="cache-request-directive.no-store" href="#cache-request-directive.no-store">no-store</a></h4>
     1262      <p id="rfc.section.3.2.1.2.p.1">The no-store request directive indicates that a cache <em class="bcp14">MUST NOT</em> store any part of either this request or any response to it. This directive applies to both private and shared caches. "<em class="bcp14">MUST NOT</em> store" in this context means that the cache <em class="bcp14">MUST NOT</em> intentionally store the information in non-volatile storage, and <em class="bcp14">MUST</em> make a best-effort attempt to remove the information from volatile storage as promptly as possible after forwarding it.
     1263      </p>
     1264      <p id="rfc.section.3.2.1.2.p.2">This directive is NOT a reliable or sufficient mechanism for ensuring privacy. In particular, malicious or compromised caches
     1265         might not recognize or obey this directive, and communications networks might be vulnerable to eavesdropping.
     1266      </p>
     1267      <p id="rfc.section.3.2.1.2.p.3">Note that if a request containing this directive is satisfied from a cache, the no-store request directive does not apply
     1268         to the already stored response.
     1269      </p>
     1270      <div id="rfc.iref.c.9"></div>
     1271      <div id="rfc.iref.m.1"></div>
     1272      <h4 id="rfc.section.3.2.1.3"><a href="#rfc.section.3.2.1.3">3.2.1.3</a>&nbsp;<a id="cache-request-directive.max-age" href="#cache-request-directive.max-age">max-age</a></h4>
     1273      <p id="rfc.section.3.2.1.3.p.1">Argument syntax: </p>
    12441274      <ul class="empty">
    1245          <li>The no-cache request directive indicates that a cache <em class="bcp14">MUST NOT</em> use a stored response to satisfy the request without successful validation on the origin server.
    1246          </li>
    1247       </ul>
    1248       <p id="rfc.section.3.2.1.p.3"> <dfn>no-store</dfn>  <span id="rfc.iref.c.8"></span>  <span id="rfc.iref.n.2"></span> 
    1249       </p>
     1275         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.5</a>)
     1276         </li>
     1277      </ul>
     1278      <p id="rfc.section.3.2.1.3.p.2">The max-age request directive indicates that the client is unwilling to accept a response whose age is greater than the specified
     1279         number of seconds. Unless the max-stale request directive is also present, the client is not willing to accept a stale response.
     1280      </p>
     1281      <p id="rfc.section.3.2.1.3.p.3"> <b>Note:</b> This directive uses the token form of the argument syntax; e.g., 'max-age=5', not 'max-age="5"'. Senders <em class="bcp14">SHOULD NOT</em> use the quoted-string form.
     1282      </p>
     1283      <div id="rfc.iref.c.10"></div>
     1284      <div id="rfc.iref.m.2"></div>
     1285      <h4 id="rfc.section.3.2.1.4"><a href="#rfc.section.3.2.1.4">3.2.1.4</a>&nbsp;<a id="cache-request-directive.max-stale" href="#cache-request-directive.max-stale">max-stale</a></h4>
     1286      <p id="rfc.section.3.2.1.4.p.1">Argument syntax: </p>
    12501287      <ul class="empty">
    1251          <li>The no-store request directive indicates that a cache <em class="bcp14">MUST NOT</em> store any part of either this request or any response to it. This directive applies to both private and shared caches. "<em class="bcp14">MUST NOT</em> store" in this context means that the cache <em class="bcp14">MUST NOT</em> intentionally store the information in non-volatile storage, and <em class="bcp14">MUST</em> make a best-effort attempt to remove the information from volatile storage as promptly as possible after forwarding it.
    1252          </li>
    1253          <li>This directive is NOT a reliable or sufficient mechanism for ensuring privacy. In particular, malicious or compromised caches
    1254             might not recognize or obey this directive, and communications networks might be vulnerable to eavesdropping.
    1255          </li>
    1256          <li>Note that if a request containing this directive is satisfied from a cache, the no-store request directive does not apply
    1257             to the already stored response.
    1258          </li>
    1259       </ul>
    1260       <p id="rfc.section.3.2.1.p.4"> <dfn>max-age</dfn>  <span id="rfc.iref.c.9"></span>  <span id="rfc.iref.m.1"></span> 
    1261       </p>
     1288         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.5</a>)
     1289         </li>
     1290      </ul>
     1291      <p id="rfc.section.3.2.1.4.p.2">The max-stale request directive indicates that the client is willing to accept a response that has exceeded its expiration
     1292         time. If max-stale is assigned a value, then the client is willing to accept a response that has exceeded its expiration time
     1293         by no more than the specified number of seconds. If no value is assigned to max-stale, then the client is willing to accept
     1294         a stale response of any age.
     1295      </p>
     1296      <p id="rfc.section.3.2.1.4.p.3"> <b>Note:</b> This directive uses the token form of the argument syntax; e.g., 'max-stale=10', not 'max-stale="10"'. Senders <em class="bcp14">SHOULD NOT</em> use the quoted-string form.
     1297      </p>
     1298      <div id="rfc.iref.c.11"></div>
     1299      <div id="rfc.iref.m.3"></div>
     1300      <h4 id="rfc.section.3.2.1.5"><a href="#rfc.section.3.2.1.5">3.2.1.5</a>&nbsp;<a id="cache-request-directive.min-fresh" href="#cache-request-directive.min-fresh">min-fresh</a></h4>
     1301      <p id="rfc.section.3.2.1.5.p.1">Argument syntax: </p>
    12621302      <ul class="empty">
    1263          <li>The max-age request directive indicates that the client is unwilling to accept a response whose age is greater than the specified
    1264             number of seconds. Unless the max-stale request directive is also present, the client is not willing to accept a stale response.
    1265          </li>
    1266       </ul>
    1267       <p id="rfc.section.3.2.1.p.5"> <dfn>max-stale</dfn>  <span id="rfc.iref.c.10"></span>  <span id="rfc.iref.m.2"></span> 
    1268       </p>
     1303         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.5</a>)
     1304         </li>
     1305      </ul>
     1306      <p id="rfc.section.3.2.1.5.p.2">The min-fresh request directive indicates that the client is willing to accept a response whose freshness lifetime is no less
     1307         than its current age plus the specified time in seconds. That is, the client wants a response that will still be fresh for
     1308         at least the specified number of seconds.
     1309      </p>
     1310      <p id="rfc.section.3.2.1.5.p.3"> <b>Note:</b> This directive uses the token form of the argument syntax; e.g., 'min-fresh=20', not 'min-fresh="20"'. Senders <em class="bcp14">SHOULD NOT</em> use the quoted-string form.
     1311      </p>
     1312      <div id="rfc.iref.c.12"></div>
     1313      <div id="rfc.iref.n.3"></div>
     1314      <h4 id="rfc.section.3.2.1.6"><a href="#rfc.section.3.2.1.6">3.2.1.6</a>&nbsp;<a id="cache-request-directive.no-transform" href="#cache-request-directive.no-transform">no-transform</a></h4>
     1315      <p id="rfc.section.3.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> change the Content-Encoding, Content-Range or Content-Type request header fields, nor the request representation.
     1316      </p>
     1317      <div id="rfc.iref.c.13"></div>
     1318      <div id="rfc.iref.o.1"></div>
     1319      <h4 id="rfc.section.3.2.1.7"><a href="#rfc.section.3.2.1.7">3.2.1.7</a>&nbsp;<a id="cache-request-directive.only-if-cached" href="#cache-request-directive.only-if-cached">only-if-cached</a></h4>
     1320      <p id="rfc.section.3.2.1.7.p.1">The only-if-cached request directive indicates that the client only wishes to obtain a stored response. If it receives 3ive,
     1321         a cache <em class="bcp14">SHOULD</em> either respond using a stored response that is consistent with the other constraints of the request, or respond with a 504
     1322         (Gateway Timeout) status code. If a group of caches is being operated as a unified system with good internal connectivity,
     1323         a member cache <em class="bcp14">MAY</em> forward such a request within that group of caches.
     1324      </p>
     1325      <h3 id="rfc.section.3.2.2"><a href="#rfc.section.3.2.2">3.2.2</a>&nbsp;<a id="cache-response-directive" href="#cache-response-directive">Response Cache-Control Directives</a></h3>
     1326      <div id="rfc.iref.c.14"></div>
     1327      <div id="rfc.iref.p.2"></div>
     1328      <h4 id="rfc.section.3.2.2.1"><a href="#rfc.section.3.2.2.1">3.2.2.1</a>&nbsp;<a id="cache-response-directive.only-if-cached" href="#cache-response-directive.only-if-cached">public</a></h4>
     1329      <p id="rfc.section.3.2.2.1.p.1">The public response directive indicates that a response whose associated request contains an 'Authentication' header <em class="bcp14">MAY</em> be stored (see <a href="#caching.authenticated.responses" title="Shared Caching of Authenticated Responses">Section&nbsp;2.7</a>).
     1330      </p>
     1331      <div id="rfc.iref.c.15"></div>
     1332      <div id="rfc.iref.p.3"></div>
     1333      <h4 id="rfc.section.3.2.2.2"><a href="#rfc.section.3.2.2.2">3.2.2.2</a>&nbsp;<a id="cache-response-directive.private" href="#cache-response-directive.private">private</a></h4>
     1334      <p id="rfc.section.3.2.2.2.p.1">Argument syntax: </p>
    12691335      <ul class="empty">
    1270          <li>The max-stale request directive indicates that the client is willing to accept a response that has exceeded its expiration
    1271             time. If max-stale is assigned a value, then the client is willing to accept a response that has exceeded its expiration time
    1272             by no more than the specified number of seconds. If no value is assigned to max-stale, then the client is willing to accept
    1273             a stale response of any age.
    1274          </li>
    1275       </ul>
    1276       <p id="rfc.section.3.2.1.p.6"> <dfn>min-fresh</dfn>  <span id="rfc.iref.c.11"></span>  <span id="rfc.iref.m.3"></span> 
    1277       </p>
     1336         <li>#<a href="#abnf.dependencies" class="smpl">field-name</a>
     1337         </li>
     1338      </ul>
     1339      <p id="rfc.section.3.2.2.2.p.2">The private response directive indicates that the response message is intended for a single user and <em class="bcp14">MUST NOT</em> be stored by a shared cache. A private cache <em class="bcp14">MAY</em> store the response.
     1340      </p>
     1341      <p id="rfc.section.3.2.2.2.p.3">If the private response directive specifies one or more field-names, this requirement is limited to the field-values associated
     1342         with the listed response header fields. That is, a shared cache <em class="bcp14">MUST NOT</em> store the specified field-names(s), whereas it <em class="bcp14">MAY</em> store the remainder of the response message.
     1343      </p>
     1344      <p id="rfc.section.3.2.2.2.p.4">The field-names given are not limited to the set of standard header fields defined by this specification. Field names are
     1345         case-insensitive.
     1346      </p>
     1347      <p id="rfc.section.3.2.2.2.p.5"> <b>Note:</b> This usage of the word "private" only controls where the response can be stored; it cannot ensure the privacy of the message
     1348         content. Also, private response directives with field-names are often handled by implementations as if an unqualified private
     1349         directive was received; i.e., the special handling for the qualified form is not widely implemented.
     1350      </p>
     1351      <p id="rfc.section.3.2.2.2.p.6"> <b>Note:</b> This directive uses the quoted-string form of the argument syntax. Senders <em class="bcp14">SHOULD NOT</em> use the token form (even if quoting appears not to be needed for single-entry lists).
     1352      </p>
     1353      <div id="rfc.iref.c.16"></div>
     1354      <div id="rfc.iref.n.4"></div>
     1355      <h4 id="rfc.section.3.2.2.3"><a href="#rfc.section.3.2.2.3">3.2.2.3</a>&nbsp;<a id="cache-response-directive.no-cache" href="#cache-response-directive.no-cache">no-cache</a></h4>
     1356      <p id="rfc.section.3.2.2.3.p.1">Argument syntax: </p>
    12781357      <ul class="empty">
    1279          <li>The min-fresh request directive indicates that the client is willing to accept a response whose freshness lifetime is no less
    1280             than its current age plus the specified time in seconds. That is, the client wants a response that will still be fresh for
    1281             at least the specified number of seconds.
    1282          </li>
    1283       </ul>
    1284       <p id="rfc.section.3.2.1.p.7"> <dfn>no-transform</dfn>  <span id="rfc.iref.c.12"></span>  <span id="rfc.iref.n.3"></span> 
    1285       </p>
     1358         <li>#<a href="#abnf.dependencies" class="smpl">field-name</a>
     1359         </li>
     1360      </ul>
     1361      <p id="rfc.section.3.2.2.3.p.2">The no-cache response directive indicates that the response <em class="bcp14">MUST NOT</em> be used to satisfy a subsequent request without successful validation on the origin server. This allows an origin server to
     1362         prevent a cache from using it to satisfy a request without contacting it, even by caches that have been configured to return
     1363         stale responses.
     1364      </p>
     1365      <p id="rfc.section.3.2.2.3.p.3">If the no-cache response directive specifies one or more field-names, then a cache <em class="bcp14">MAY</em> use the response to satisfy a subsequent request, subject to any other restrictions on caching. However, any header fields
     1366         in the response that have the field-name(s) listed <em class="bcp14">MUST NOT</em> be sent in the response to a subsequent request without successful revalidation with the origin server. This allows an origin
     1367         server to prevent the re-use of certain header fields in a response, while still allowing caching of the rest of the response.
     1368      </p>
     1369      <p id="rfc.section.3.2.2.3.p.4">The field-names given are not limited to the set of standard header fields defined by this specification. Field names are
     1370         case-insensitive.
     1371      </p>
     1372      <p id="rfc.section.3.2.2.3.p.5"> <b>Note:</b> Most HTTP/1.0 caches will not recognize or obey this directive. Also, no-cache response directives with field-names are often
     1373         handled by implementations as if an unqualified no-cache directive was received; i.e., the special handling for the qualified
     1374         form is not widely implemented.
     1375      </p>
     1376      <p id="rfc.section.3.2.2.3.p.6"> <b>Note:</b> This directive uses the quoted-string form of the argument syntax. Senders <em class="bcp14">SHOULD NOT</em> use the token form (even if quoting appears not to be needed for single-entry lists).
     1377      </p>
     1378      <div id="rfc.iref.c.17"></div>
     1379      <div id="rfc.iref.n.5"></div>
     1380      <h4 id="rfc.section.3.2.2.4"><a href="#rfc.section.3.2.2.4">3.2.2.4</a>&nbsp;<a id="cache-response-directive.no-store" href="#cache-response-directive.no-store">no-store</a></h4>
     1381      <p id="rfc.section.3.2.2.4.p.1">The no-store response directive indicates that a cache <em class="bcp14">MUST NOT</em> store any part of either the immediate request or response. This directive applies to both private and shared caches. "<em class="bcp14">MUST NOT</em> store" in this context means that the cache <em class="bcp14">MUST NOT</em> intentionally store the information in non-volatile storage, and <em class="bcp14">MUST</em> make a best-effort attempt to remove the information from volatile storage as promptly as possible after forwarding it.
     1382      </p>
     1383      <p id="rfc.section.3.2.2.4.p.2">This directive is NOT a reliable or sufficient mechanism for ensuring privacy. In particular, malicious or compromised caches
     1384         might not recognize or obey this directive, and communications networks might be vulnerable to eavesdropping.
     1385      </p>
     1386      <div id="rfc.iref.c.18"></div>
     1387      <div id="rfc.iref.m.4"></div>
     1388      <h4 id="rfc.section.3.2.2.5"><a href="#rfc.section.3.2.2.5">3.2.2.5</a>&nbsp;<a id="cache-response-directive.must-revalidate" href="#cache-response-directive.must-revalidate">must-revalidate</a></h4>
     1389      <p id="rfc.section.3.2.2.5.p.1">The must-revalidate response directive indicates that once it has become stale, a cache <em class="bcp14">MUST NOT</em> use the response to satisfy subsequent requests without successful validation on the origin server.
     1390      </p>
     1391      <p id="rfc.section.3.2.2.5.p.2">The must-revalidate directive is necessary to support reliable operation for certain protocol features. In all circumstances
     1392         a cache <em class="bcp14">MUST</em> obey the must-revalidate directive; in particular, if a cache cannot reach the origin server for any reason, it <em class="bcp14">MUST</em> generate a 504 (Gateway Timeout) response.
     1393      </p>
     1394      <p id="rfc.section.3.2.2.5.p.3">The must-revalidate directive ought to be used by servers if and only if failure to validate a request on the representation
     1395         could result in incorrect operation, such as a silently unexecuted financial transaction.
     1396      </p>
     1397      <div id="rfc.iref.c.19"></div>
     1398      <div id="rfc.iref.p.4"></div>
     1399      <h4 id="rfc.section.3.2.2.6"><a href="#rfc.section.3.2.2.6">3.2.2.6</a>&nbsp;<a id="cache-response-directive.proxy-revalidate" href="#cache-response-directive.proxy-revalidate">proxy-revalidate</a></h4>
     1400      <p id="rfc.section.3.2.2.6.p.1">The proxy-revalidate response directive has the same meaning as the must-revalidate response directive, except that it does
     1401         not apply to private caches.
     1402      </p>
     1403      <div id="rfc.iref.c.20"></div>
     1404      <div id="rfc.iref.m.5"></div>
     1405      <h4 id="rfc.section.3.2.2.7"><a href="#rfc.section.3.2.2.7">3.2.2.7</a>&nbsp;<a id="cache-response-directive.max-age" href="#cache-response-directive.max-age">max-age</a></h4>
     1406      <p id="rfc.section.3.2.2.7.p.1">Argument syntax: </p>
    12861407      <ul class="empty">
    1287          <li>The no-transform request directive indicates that an intermediary (whether or not it implements a cache) <em class="bcp14">MUST NOT</em> change the Content-Encoding, Content-Range or Content-Type request header fields, nor the request representation.
    1288          </li>
    1289       </ul>
    1290       <p id="rfc.section.3.2.1.p.8"> <dfn>only-if-cached</dfn>  <span id="rfc.iref.c.13"></span>  <span id="rfc.iref.o.1"></span> 
    1291       </p>
     1408         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.5</a>)
     1409         </li>
     1410      </ul>
     1411      <p id="rfc.section.3.2.2.7.p.2">The max-age response directive indicates that the response is to be considered stale after its age is greater than the specified
     1412         number of seconds.
     1413      </p>
     1414      <p id="rfc.section.3.2.2.7.p.3"> <b>Note:</b> This directive uses the token form of the argument syntax; e.g., 'max-age=5', not 'max-age="5"'. Senders <em class="bcp14">SHOULD NOT</em> use the quoted-string form.
     1415      </p>
     1416      <div id="rfc.iref.c.21"></div>
     1417      <div id="rfc.iref.s.4"></div>
     1418      <h4 id="rfc.section.3.2.2.8"><a href="#rfc.section.3.2.2.8">3.2.2.8</a>&nbsp;<a id="cache-response-directive.s-maxage" href="#cache-response-directive.s-maxage">s-maxage</a></h4>
     1419      <p id="rfc.section.3.2.2.8.p.1">Argument syntax: </p>
    12921420      <ul class="empty">
    1293          <li>The only-if-cached request directive indicates that the client only wishes to obtain a stored response. If it receives this
    1294             directive, a cache <em class="bcp14">SHOULD</em> either respond using a stored response that is consistent with the other constraints of the request, or respond with a 504
    1295             (Gateway Timeout) status code. If a group of caches is being operated as a unified system with good internal connectivity,
    1296             a member cache <em class="bcp14">MAY</em> forward such a request within that group of caches.
    1297          </li>
    1298       </ul>
    1299       <h3 id="rfc.section.3.2.2"><a href="#rfc.section.3.2.2">3.2.2</a>&nbsp;<a id="cache-response-directive" href="#cache-response-directive">Response Cache-Control Directives</a></h3>
    1300       <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.6"></span>  <a href="#header.cache-control" class="smpl">cache-response-directive</a> =
    1301        "public"
    1302      / "private" [ "=" <a href="#notation" class="smpl">DQUOTE</a> 1#<a href="#abnf.dependencies" class="smpl">field-name</a> <a href="#notation" class="smpl">DQUOTE</a> ]
    1303      / "no-cache" [ "=" <a href="#notation" class="smpl">DQUOTE</a> 1#<a href="#abnf.dependencies" class="smpl">field-name</a> <a href="#notation" class="smpl">DQUOTE</a> ]
    1304      / "no-store"
    1305      / "no-transform"
    1306      / "must-revalidate"
    1307      / "proxy-revalidate"
    1308      / "max-age" "=" <a href="#delta-seconds" class="smpl">delta-seconds</a>
    1309      / "s-maxage" "=" <a href="#delta-seconds" class="smpl">delta-seconds</a>
    1310      / <a href="#header.cache-control" class="smpl">cache-extension</a>
    1311 </pre><p id="rfc.section.3.2.2.p.2"> <dfn>public</dfn>  <span id="rfc.iref.c.14"></span>  <span id="rfc.iref.p.2"></span> 
    1312       </p>
    1313       <ul class="empty">
    1314          <li>The public response directive indicates that a response whose associated request contains an 'Authentication' header <em class="bcp14">MAY</em> be stored (see <a href="#caching.authenticated.responses" title="Shared Caching of Authenticated Responses">Section&nbsp;2.7</a>).
    1315          </li>
    1316       </ul>
    1317       <p id="rfc.section.3.2.2.p.3"> <dfn>private</dfn>  <span id="rfc.iref.c.15"></span>  <span id="rfc.iref.p.3"></span> 
    1318       </p>
    1319       <ul class="empty">
    1320          <li>The private response directive indicates that the response message is intended for a single user and <em class="bcp14">MUST NOT</em> be stored by a shared cache. A private cache <em class="bcp14">MAY</em> store the response.
    1321          </li>
    1322          <li>If the private response directive specifies one or more field-names, this requirement is limited to the field-values associated
    1323             with the listed response header fields. That is, a shared cache <em class="bcp14">MUST NOT</em> store the specified field-names(s), whereas it <em class="bcp14">MAY</em> store the remainder of the response message.
    1324          </li>
    1325          <li>The field-names given are not limited to the set of standard header fields defined by this specification. Field names are
    1326             case-insensitive.
    1327          </li>
    1328          <li><b>Note:</b> This usage of the word "private" only controls where the response can be stored; it cannot ensure the privacy of the message
    1329             content. Also, private response directives with field-names are often handled by implementations as if an unqualified private
    1330             directive was received; i.e., the special handling for the qualified form is not widely implemented.
    1331          </li>
    1332       </ul>
    1333       <p id="rfc.section.3.2.2.p.4"> <dfn>no-cache</dfn>  <span id="rfc.iref.c.16"></span>  <span id="rfc.iref.n.4"></span> 
    1334       </p>
    1335       <ul class="empty">
    1336          <li>The no-cache response directive indicates that the response <em class="bcp14">MUST NOT</em> be used to satisfy a subsequent request without successful validation on the origin server. This allows an origin server to
    1337             prevent a cache from using it to satisfy a request without contacting it, even by caches that have been configured to return
    1338             stale responses.
    1339          </li>
    1340          <li>If the no-cache response directive specifies one or more field-names, then a cache <em class="bcp14">MAY</em> use the response to satisfy a subsequent request, subject to any other restrictions on caching. However, any header fields
    1341             in the response that have the field-name(s) listed <em class="bcp14">MUST NOT</em> be sent in the response to a subsequent request without successful revalidation with the origin server. This allows an origin
    1342             server to prevent the re-use of certain header fields in a response, while still allowing caching of the rest of the response.
    1343          </li>
    1344          <li>The field-names given are not limited to the set of standard header fields defined by this specification. Field names are
    1345             case-insensitive.
    1346          </li>
    1347          <li><b>Note:</b> Most HTTP/1.0 caches will not recognize or obey this directive. Also, no-cache response directives with field-names are often
    1348             handled by implementations as if an unqualified no-cache directive was received; i.e., the special handling for the qualified
    1349             form is not widely implemented.
    1350          </li>
    1351       </ul>
    1352       <p id="rfc.section.3.2.2.p.5"> <dfn>no-store</dfn>  <span id="rfc.iref.c.17"></span>  <span id="rfc.iref.n.5"></span> 
    1353       </p>
    1354       <ul class="empty">
    1355          <li>The no-store response directive indicates that a cache <em class="bcp14">MUST NOT</em> store any part of either the immediate request or response. This directive applies to both private and shared caches. "<em class="bcp14">MUST NOT</em> store" in this context means that the cache <em class="bcp14">MUST NOT</em> intentionally store the information in non-volatile storage, and <em class="bcp14">MUST</em> make a best-effort attempt to remove the information from volatile storage as promptly as possible after forwarding it.
    1356          </li>
    1357          <li>This directive is NOT a reliable or sufficient mechanism for ensuring privacy. In particular, malicious or compromised caches
    1358             might not recognize or obey this directive, and communications networks might be vulnerable to eavesdropping.
    1359          </li>
    1360       </ul>
    1361       <p id="rfc.section.3.2.2.p.6"> <dfn>must-revalidate</dfn>  <span id="rfc.iref.c.18"></span>  <span id="rfc.iref.m.4"></span> 
    1362       </p>
    1363       <ul class="empty">
    1364          <li>The must-revalidate response directive indicates that once it has become stale, a cache <em class="bcp14">MUST NOT</em> use the response to satisfy subsequent requests without successful validation on the origin server.
    1365          </li>
    1366          <li>The must-revalidate directive is necessary to support reliable operation for certain protocol features. In all circumstances
    1367             a cache <em class="bcp14">MUST</em> obey the must-revalidate directive; in particular, if a cache cannot reach the origin server for any reason, it <em class="bcp14">MUST</em> generate a 504 (Gateway Timeout) response.
    1368          </li>
    1369          <li>The must-revalidate directive ought to be used by servers if and only if failure to validate a request on the representation
    1370             could result in incorrect operation, such as a silently unexecuted financial transaction.
    1371          </li>
    1372       </ul>
    1373       <p id="rfc.section.3.2.2.p.7"> <dfn>proxy-revalidate</dfn>  <span id="rfc.iref.c.19"></span>  <span id="rfc.iref.p.4"></span> 
    1374       </p>
    1375       <ul class="empty">
    1376          <li>The proxy-revalidate response directive has the same meaning as the must-revalidate response directive, except that it does
    1377             not apply to private caches.
    1378          </li>
    1379       </ul>
    1380       <p id="rfc.section.3.2.2.p.8"> <dfn>max-age</dfn>  <span id="rfc.iref.c.20"></span>  <span id="rfc.iref.m.5"></span> 
    1381       </p>
    1382       <ul class="empty">
    1383          <li>The max-age response directive indicates that the response is to be considered stale after its age is greater than the specified
    1384             number of seconds.
    1385          </li>
    1386       </ul>
    1387       <p id="rfc.section.3.2.2.p.9"> <dfn>s-maxage</dfn>  <span id="rfc.iref.c.21"></span>  <span id="rfc.iref.s.4"></span> 
    1388       </p>
    1389       <ul class="empty">
    1390          <li>The s-maxage response directive indicates that, in shared caches, the maximum age specified by this directive overrides the
    1391             maximum age specified by either the max-age directive or the Expires header field. The s-maxage directive also implies the
    1392             semantics of the proxy-revalidate response directive.
    1393          </li>
    1394       </ul>
    1395       <p id="rfc.section.3.2.2.p.10"> <dfn>no-transform</dfn>  <span id="rfc.iref.c.22"></span>  <span id="rfc.iref.n.6"></span> 
    1396       </p>
    1397       <ul class="empty">
    1398          <li>The no-transform response directive indicates that an intermediary (regardless of whether it implements a cache) <em class="bcp14">MUST NOT</em> change the Content-Encoding, Content-Range or Content-Type response header fields, nor the response representation.
    1399          </li>
    1400       </ul>
     1421         <li> <a href="#delta-seconds" class="smpl">delta-seconds</a> (see <a href="#delta-seconds" title="Delta Seconds">Section&nbsp;1.5</a>)
     1422         </li>
     1423      </ul>
     1424      <p id="rfc.section.3.2.2.8.p.2">The s-maxage response directive indicates that, in shared caches, the maximum age specified by this directive overrides the
     1425         maximum age specified by either the max-age directive or the Expires header field. The s-maxage directive also implies the
     1426         semantics of the proxy-revalidate response directive.
     1427      </p>
     1428      <p id="rfc.section.3.2.2.8.p.3"> <b>Note:</b> This directive uses the token form of the argument syntax; e.g., 's-maxage=10', not 's-maxage="10"'. Senders <em class="bcp14">SHOULD NOT</em> use the quoted-string form.
     1429      </p>
     1430      <div id="rfc.iref.c.22"></div>
     1431      <div id="rfc.iref.n.6"></div>
     1432      <h4 id="rfc.section.3.2.2.9"><a href="#rfc.section.3.2.2.9">3.2.2.9</a>&nbsp;<a id="cache-response-directive.no-transform" href="#cache-response-directive.no-transform">no-transform</a></h4>
     1433      <p id="rfc.section.3.2.2.9.p.1">The no-transform response directive indicates that an intermediary (regardless of whether it implements a cache) <em class="bcp14">MUST NOT</em> change the Content-Encoding, Content-Range or Content-Type response header fields, nor the response representation.
     1434      </p>
    14011435      <h3 id="rfc.section.3.2.3"><a href="#rfc.section.3.2.3">3.2.3</a>&nbsp;<a id="cache.control.extensions" href="#cache.control.extensions">Cache Control Extensions</a></h3>
    14021436      <p id="rfc.section.3.2.3.p.1">The Cache-Control header field can be extended through the use of one or more cache-extension tokens, each with an optional
     
    14161450         private response in their shared cache(s) could do so by including
    14171451      </p>
    1418       <div id="rfc.figure.u.12"></div><pre class="text">  Cache-Control: private, community="UCI"
     1452      <div id="rfc.figure.u.10"></div><pre class="text">  Cache-Control: private, community="UCI"
    14191453</pre><p id="rfc.section.3.2.3.p.5">A cache seeing this header field will act correctly even if the cache does not understand the community cache-extension, since
    14201454         it will also see and understand the private directive and thus default to the safe behavior.
     
    14451479      <p id="rfc.section.3.3.p.3">The field-value is an absolute date and time as defined by HTTP-date in <a href="p2-semantics.html#http.date" title="Date/Time Formats">Section 5.1</a> of <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>; a sender <em class="bcp14">MUST</em> use the rfc1123-date format.
    14461480      </p>
    1447       <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.7"></span>  <a href="#header.expires" class="smpl">Expires</a> = <a href="#abnf.dependencies" class="smpl">HTTP-date</a>
    1448 </pre><div id="rfc.figure.u.14"></div>
     1481      <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.5"></span>  <a href="#header.expires" class="smpl">Expires</a> = <a href="#abnf.dependencies" class="smpl">HTTP-date</a>
     1482</pre><div id="rfc.figure.u.12"></div>
    14491483      <p>For example</p>  <pre class="text">  Expires: Thu, 01 Dec 1994 16:00:00 GMT
    14501484</pre><p id="rfc.section.3.3.p.6">A cache <em class="bcp14">MUST</em> treat other invalid date formats, especially including the value "0", as in the past (i.e., "already expired").
     
    14731507         deprecates such extensions to improve interoperability.
    14741508      </p>
    1475       <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span><span id="rfc.iref.g.10"></span>  <a href="#header.pragma" class="smpl">Pragma</a>           = 1#<a href="#header.pragma" class="smpl">pragma-directive</a>
     1509      <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span>  <a href="#header.pragma" class="smpl">Pragma</a>           = 1#<a href="#header.pragma" class="smpl">pragma-directive</a>
    14761510  <a href="#header.pragma" class="smpl">pragma-directive</a> = "no-cache" / <a href="#header.pragma" class="smpl">extension-pragma</a>
    14771511  <a href="#header.pragma" class="smpl">extension-pragma</a> = <a href="#core.rules" class="smpl">token</a> [ "=" ( <a href="#core.rules" class="smpl">token</a> / <a href="#core.rules" class="smpl">quoted-string</a> ) ]
     
    14811515         no-cache is purposefully omitted to target other Cache-Control response directives at HTTP/1.1 caches. For example:
    14821516      </p>
    1483       <div id="rfc.figure.u.16"></div> <pre class="text">GET / HTTP/1.1
     1517      <div id="rfc.figure.u.14"></div> <pre class="text">GET / HTTP/1.1
    14841518Host: www.example.com
    14851519Cache-Control: max-age=30
     
    15041538         the representation.
    15051539      </p>
    1506       <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.11"></span>  <a href="#header.vary" class="smpl">Vary</a> = "*" / 1#<a href="#abnf.dependencies" class="smpl">field-name</a>
     1540      <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.9"></span>  <a href="#header.vary" class="smpl">Vary</a> = "*" / 1#<a href="#abnf.dependencies" class="smpl">field-name</a>
    15071541</pre><p id="rfc.section.3.5.p.5">The set of header fields named by the Vary field value is known as the selecting header fields.</p>
    15081542      <p id="rfc.section.3.5.p.6">A server <em class="bcp14">SHOULD</em> include a Vary header field with any cacheable response that is subject to server-driven negotiation. Doing so allows a cache
     
    15311565         be applied to response messages.
    15321566      </p>
    1533       <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span>  <a href="#header.warning" class="smpl">Warning</a>       = 1#<a href="#header.warning" class="smpl">warning-value</a>
     1567      <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span>  <a href="#header.warning" class="smpl">Warning</a>       = 1#<a href="#header.warning" class="smpl">warning-value</a>
    15341568 
    15351569  <a href="#header.warning" class="smpl">warning-value</a> = <a href="#header.warning" class="smpl">warn-code</a> <a href="#notation" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-agent</a> <a href="#notation" class="smpl">SP</a> <a href="#header.warning" class="smpl">warn-text</a>
     
    15701604         of its meaning.
    15711605      </p>
    1572       <div id="rfc.iref.78"></div>
     1606      <div id="rfc.iref.76"></div>
    15731607      <div id="rfc.iref.w.2"></div>
    15741608      <h3 id="rfc.section.3.6.1"><a href="#rfc.section.3.6.1">3.6.1</a>&nbsp;<a id="warn.110" href="#warn.110">110 Response is Stale</a></h3>
    15751609      <p id="rfc.section.3.6.1.p.1">A cache <em class="bcp14">SHOULD</em> include this whenever the returned response is stale.
    15761610      </p>
    1577       <div id="rfc.iref.79"></div>
     1611      <div id="rfc.iref.77"></div>
    15781612      <div id="rfc.iref.w.3"></div>
    15791613      <h3 id="rfc.section.3.6.2"><a href="#rfc.section.3.6.2">3.6.2</a>&nbsp;<a id="warn.111" href="#warn.111">111 Revalidation Failed</a></h3>
     
    15811615         the server.
    15821616      </p>
    1583       <div id="rfc.iref.80"></div>
     1617      <div id="rfc.iref.78"></div>
    15841618      <div id="rfc.iref.w.4"></div>
    15851619      <h3 id="rfc.section.3.6.3"><a href="#rfc.section.3.6.3">3.6.3</a>&nbsp;<a id="warn.112" href="#warn.112">112 Disconnected Operation</a></h3>
    15861620      <p id="rfc.section.3.6.3.p.1">A cache <em class="bcp14">SHOULD</em> include this if it is intentionally disconnected from the rest of the network for a period of time.
    15871621      </p>
    1588       <div id="rfc.iref.81"></div>
     1622      <div id="rfc.iref.79"></div>
    15891623      <div id="rfc.iref.w.5"></div>
    15901624      <h3 id="rfc.section.3.6.4"><a href="#rfc.section.3.6.4">3.6.4</a>&nbsp;<a id="warn.113" href="#warn.113">113 Heuristic Expiration</a></h3>
     
    15921626         hours.
    15931627      </p>
    1594       <div id="rfc.iref.82"></div>
     1628      <div id="rfc.iref.80"></div>
    15951629      <div id="rfc.iref.w.6"></div>
    15961630      <h3 id="rfc.section.3.6.5"><a href="#rfc.section.3.6.5">3.6.5</a>&nbsp;<a id="warn.199" href="#warn.199">199 Miscellaneous Warning</a></h3>
    15971631      <p id="rfc.section.3.6.5.p.1">The warning text can include arbitrary information to be presented to a human user, or logged. A system receiving this warning <em class="bcp14">MUST NOT</em> take any automated action, besides presenting the warning to the user.
    15981632      </p>
    1599       <div id="rfc.iref.83"></div>
     1633      <div id="rfc.iref.81"></div>
    16001634      <div id="rfc.iref.w.7"></div>
    16011635      <h3 id="rfc.section.3.6.6"><a href="#rfc.section.3.6.6">3.6.6</a>&nbsp;<a id="warn.214" href="#warn.214">214 Transformation Applied</a></h3>
     
    16031637         or modifying the representation data, unless this Warning code already appears in the response.
    16041638      </p>
    1605       <div id="rfc.iref.84"></div>
     1639      <div id="rfc.iref.82"></div>
    16061640      <div id="rfc.iref.w.8"></div>
    16071641      <h3 id="rfc.section.3.6.7"><a href="#rfc.section.3.6.7">3.6.7</a>&nbsp;<a id="warn.299" href="#warn.299">299 Miscellaneous Persistent Warning</a></h3>
     
    16491683               <tr>
    16501684                  <td class="left">max-age</td>
    1651                   <td class="left"> <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;3.2.1</a>, <a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;3.2.2</a>
     1685                  <td class="left"> <a href="#cache-request-directive.max-age" title="max-age">Section&nbsp;3.2.1.3</a>, <a href="#cache-response-directive.max-age" title="max-age">Section&nbsp;3.2.2.7</a>
    16521686                  </td>
    16531687               </tr>
    16541688               <tr>
    16551689                  <td class="left">max-stale</td>
    1656                   <td class="left"> <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;3.2.1</a>
     1690                  <td class="left"> <a href="#cache-request-directive.max-stale" title="max-stale">Section&nbsp;3.2.1.4</a>
    16571691                  </td>
    16581692               </tr>
    16591693               <tr>
    16601694                  <td class="left">min-fresh</td>
    1661                   <td class="left"> <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;3.2.1</a>
     1695                  <td class="left"> <a href="#cache-request-directive.min-fresh" title="min-fresh">Section&nbsp;3.2.1.5</a>
    16621696                  </td>
    16631697               </tr>
    16641698               <tr>
    16651699                  <td class="left">must-revalidate</td>
    1666                   <td class="left"> <a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;3.2.2</a>
     1700                  <td class="left"> <a href="#cache-response-directive.must-revalidate" title="must-revalidate">Section&nbsp;3.2.2.5</a>
    16671701                  </td>
    16681702               </tr>
    16691703               <tr>
    16701704                  <td class="left">no-cache</td>
    1671                   <td class="left"> <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;3.2.1</a>, <a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;3.2.2</a>
     1705                  <td class="left"> <a href="#cache-request-directive.no-cache" title="no-cache">Section&nbsp;3.2.1.1</a>, <a href="#cache-response-directive.no-cache" title="no-cache">Section&nbsp;3.2.2.3</a>
    16721706                  </td>
    16731707               </tr>
    16741708               <tr>
    16751709                  <td class="left">no-store</td>
    1676                   <td class="left"> <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;3.2.1</a>, <a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;3.2.2</a>
     1710                  <td class="left"> <a href="#cache-request-directive.no-store" title="no-store">Section&nbsp;3.2.1.2</a>, <a href="#cache-response-directive.no-store" title="no-store">Section&nbsp;3.2.2.4</a>
    16771711                  </td>
    16781712               </tr>
    16791713               <tr>
    16801714                  <td class="left">no-transform</td>
    1681                   <td class="left"> <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;3.2.1</a>, <a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;3.2.2</a>
     1715                  <td class="left"> <a href="#cache-request-directive.no-transform" title="no-transform">Section&nbsp;3.2.1.6</a>, <a href="#cache-response-directive.no-transform" title="no-transform">Section&nbsp;3.2.2.9</a>
    16821716                  </td>
    16831717               </tr>
    16841718               <tr>
    16851719                  <td class="left">only-if-cached</td>
    1686                   <td class="left"> <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;3.2.1</a>
     1720                  <td class="left"> <a href="#cache-request-directive.only-if-cached" title="only-if-cached">Section&nbsp;3.2.1.7</a>
    16871721                  </td>
    16881722               </tr>
    16891723               <tr>
    16901724                  <td class="left">private</td>
    1691                   <td class="left"> <a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;3.2.2</a>
     1725                  <td class="left"> <a href="#cache-response-directive.private" title="private">Section&nbsp;3.2.2.2</a>
    16921726                  </td>
    16931727               </tr>
    16941728               <tr>
    16951729                  <td class="left">proxy-revalidate</td>
    1696                   <td class="left"> <a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;3.2.2</a>
     1730                  <td class="left"> <a href="#cache-response-directive.proxy-revalidate" title="proxy-revalidate">Section&nbsp;3.2.2.6</a>
    16971731                  </td>
    16981732               </tr>
    16991733               <tr>
    17001734                  <td class="left">public</td>
    1701                   <td class="left"> <a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;3.2.2</a>
     1735                  <td class="left"> <a href="#cache-response-directive.only-if-cached" title="public">Section&nbsp;3.2.2.1</a>
    17021736                  </td>
    17031737               </tr>
    17041738               <tr>
    17051739                  <td class="left">s-maxage</td>
    1706                   <td class="left"> <a href="#cache-response-directive" title="Response Cache-Control Directives">Section&nbsp;3.2.2</a>
     1740                  <td class="left"> <a href="#cache-response-directive.s-maxage" title="s-maxage">Section&nbsp;3.2.2.8</a>
    17071741                  </td>
    17081742               </tr>
     
    19501984      </p>
    19511985      <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a>&nbsp;<a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1>
    1952       <div id="rfc.figure.u.19"></div> <pre class="inline"><a href="#header.age" class="smpl">Age</a> = delta-seconds
     1986      <div id="rfc.figure.u.17"></div> <pre class="inline"><a href="#header.age" class="smpl">Age</a> = delta-seconds
    19531987
    19541988<a href="#header.cache-control" class="smpl">Cache-Control</a> = *( "," OWS ) cache-directive *( OWS "," [ OWS
     
    19702004 )
    19712005
    1972 <a href="#header.cache-control" class="smpl">cache-directive</a> = cache-request-directive / cache-response-directive
    1973 <a href="#header.cache-control" class="smpl">cache-extension</a> = token [ "=" ( token / quoted-string ) ]
    1974 <a href="#header.cache-control" class="smpl">cache-request-directive</a> = "no-cache" / "no-store" / ( "max-age="
    1975  delta-seconds ) / ( "max-stale" [ "=" delta-seconds ] ) / (
    1976  "min-fresh=" delta-seconds ) / "no-transform" / "only-if-cached" /
    1977  cache-extension
    1978 <a href="#header.cache-control" class="smpl">cache-response-directive</a> = "public" / ( "private" [ "=" DQUOTE *( ","
    1979  OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / (
    1980  "no-cache" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS
    1981  field-name ] ) DQUOTE ] ) / "no-store" / "no-transform" /
    1982  "must-revalidate" / "proxy-revalidate" / ( "max-age=" delta-seconds
    1983  ) / ( "s-maxage=" delta-seconds ) / cache-extension
     2006<a href="#header.cache-control" class="smpl">cache-directive</a> = token [ "=" ( token / quoted-string ) ]
    19842007
    19852008<a href="#delta-seconds" class="smpl">delta-seconds</a> = 1*DIGIT
     
    20052028<a href="#header.warning" class="smpl">warning-value</a> = warn-code SP warn-agent SP warn-text [ SP warn-date
    20062029 ]
    2007 </pre> <div id="rfc.figure.u.20"></div>
     2030</pre> <div id="rfc.figure.u.18"></div>
    20082031      <p>ABNF diagnostics:</p><pre class="inline">; Age defined but not used
    20092032; Cache-Control defined but not used
     
    20182041      <p id="rfc.section.C.1.p.1">Closed issues: </p>
    20192042      <ul>
     2043         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/307">http://tools.ietf.org/wg/httpbis/trac/ticket/307</a>&gt;: "untangle Cache-Control ABNF"
     2044         </li>
    20202045         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/355">http://tools.ietf.org/wg/httpbis/trac/ticket/355</a>&gt;: "Case sensitivity of header fields in CC values"
    20212046         </li>
     
    20312056         <ul class="ind">
    20322057            <li><a id="rfc.index.1" href="#rfc.index.1"><b>1</b></a><ul>
    2033                   <li>110 Response is Stale (warn code)&nbsp;&nbsp;<a href="#rfc.iref.78"><b>3.6.1</b></a>, <a href="#rfc.xref.warn.110.1">5.2</a></li>
    2034                   <li>111 Revalidation Failed (warn code)&nbsp;&nbsp;<a href="#rfc.iref.79"><b>3.6.2</b></a>, <a href="#rfc.xref.warn.111.1">5.2</a></li>
    2035                   <li>112 Disconnected Operation (warn code)&nbsp;&nbsp;<a href="#rfc.iref.80"><b>3.6.3</b></a>, <a href="#rfc.xref.warn.112.1">5.2</a></li>
    2036                   <li>113 Heuristic Expiration (warn code)&nbsp;&nbsp;<a href="#rfc.iref.81"><b>3.6.4</b></a>, <a href="#rfc.xref.warn.113.1">5.2</a></li>
    2037                   <li>199 Miscellaneous Warning (warn code)&nbsp;&nbsp;<a href="#rfc.iref.82"><b>3.6.5</b></a>, <a href="#rfc.xref.warn.199.1">5.2</a></li>
     2058                  <li>110 Response is Stale (warn code)&nbsp;&nbsp;<a href="#rfc.iref.76"><b>3.6.1</b></a>, <a href="#rfc.xref.warn.110.1">5.2</a></li>
     2059                  <li>111 Revalidation Failed (warn code)&nbsp;&nbsp;<a href="#rfc.iref.77"><b>3.6.2</b></a>, <a href="#rfc.xref.warn.111.1">5.2</a></li>
     2060                  <li>112 Disconnected Operation (warn code)&nbsp;&nbsp;<a href="#rfc.iref.78"><b>3.6.3</b></a>, <a href="#rfc.xref.warn.112.1">5.2</a></li>
     2061                  <li>113 Heuristic Expiration (warn code)&nbsp;&nbsp;<a href="#rfc.iref.79"><b>3.6.4</b></a>, <a href="#rfc.xref.warn.113.1">5.2</a></li>
     2062                  <li>199 Miscellaneous Warning (warn code)&nbsp;&nbsp;<a href="#rfc.iref.80"><b>3.6.5</b></a>, <a href="#rfc.xref.warn.199.1">5.2</a></li>
    20382063               </ul>
    20392064            </li>
    20402065            <li><a id="rfc.index.2" href="#rfc.index.2"><b>2</b></a><ul>
    2041                   <li>214 Transformation Applied (warn code)&nbsp;&nbsp;<a href="#rfc.iref.83"><b>3.6.6</b></a>, <a href="#rfc.xref.warn.214.1">5.2</a></li>
    2042                   <li>299 Miscellaneous Persistent Warning (warn code)&nbsp;&nbsp;<a href="#rfc.iref.84"><b>3.6.7</b></a>, <a href="#rfc.xref.warn.299.1">5.2</a></li>
     2066                  <li>214 Transformation Applied (warn code)&nbsp;&nbsp;<a href="#rfc.iref.81"><b>3.6.6</b></a>, <a href="#rfc.xref.warn.214.1">5.2</a></li>
     2067                  <li>299 Miscellaneous Persistent Warning (warn code)&nbsp;&nbsp;<a href="#rfc.iref.82"><b>3.6.7</b></a>, <a href="#rfc.xref.warn.299.1">5.2</a></li>
    20432068               </ul>
    20442069            </li>
     
    20522077                  <li>Cache Directives&nbsp;&nbsp;
    20532078                     <ul>
    2054                         <li>max-age&nbsp;&nbsp;<a href="#rfc.iref.c.9"><b>3.2.1</b></a>, <a href="#rfc.iref.c.20"><b>3.2.2</b></a></li>
    2055                         <li>max-stale&nbsp;&nbsp;<a href="#rfc.iref.c.10"><b>3.2.1</b></a></li>
    2056                         <li>min-fresh&nbsp;&nbsp;<a href="#rfc.iref.c.11"><b>3.2.1</b></a></li>
    2057                         <li>must-revalidate&nbsp;&nbsp;<a href="#rfc.iref.c.18"><b>3.2.2</b></a></li>
    2058                         <li>no-cache&nbsp;&nbsp;<a href="#rfc.iref.c.7"><b>3.2.1</b></a>, <a href="#rfc.iref.c.16"><b>3.2.2</b></a></li>
    2059                         <li>no-store&nbsp;&nbsp;<a href="#rfc.iref.c.8"><b>3.2.1</b></a>, <a href="#rfc.iref.c.17"><b>3.2.2</b></a></li>
    2060                         <li>no-transform&nbsp;&nbsp;<a href="#rfc.iref.c.12"><b>3.2.1</b></a>, <a href="#rfc.iref.c.22"><b>3.2.2</b></a></li>
    2061                         <li>only-if-cached&nbsp;&nbsp;<a href="#rfc.iref.c.13"><b>3.2.1</b></a></li>
    2062                         <li>private&nbsp;&nbsp;<a href="#rfc.iref.c.15"><b>3.2.2</b></a></li>
    2063                         <li>proxy-revalidate&nbsp;&nbsp;<a href="#rfc.iref.c.19"><b>3.2.2</b></a></li>
    2064                         <li>public&nbsp;&nbsp;<a href="#rfc.iref.c.14"><b>3.2.2</b></a></li>
    2065                         <li>s-maxage&nbsp;&nbsp;<a href="#rfc.iref.c.21"><b>3.2.2</b></a></li>
     2079                        <li>max-age&nbsp;&nbsp;<a href="#rfc.iref.c.9"><b>3.2.1.3</b></a>, <a href="#rfc.iref.c.20"><b>3.2.2.7</b></a></li>
     2080                        <li>max-stale&nbsp;&nbsp;<a href="#rfc.iref.c.10"><b>3.2.1.4</b></a></li>
     2081                        <li>min-fresh&nbsp;&nbsp;<a href="#rfc.iref.c.11"><b>3.2.1.5</b></a></li>
     2082                        <li>must-revalidate&nbsp;&nbsp;<a href="#rfc.iref.c.18"><b>3.2.2.5</b></a></li>
     2083                        <li>no-cache&nbsp;&nbsp;<a href="#rfc.iref.c.7"><b>3.2.1.1</b></a>, <a href="#rfc.iref.c.16"><b>3.2.2.3</b></a></li>
     2084                        <li>no-store&nbsp;&nbsp;<a href="#rfc.iref.c.8"><b>3.2.1.2</b></a>, <a href="#rfc.iref.c.17"><b>3.2.2.4</b></a></li>
     2085                        <li>no-transform&nbsp;&nbsp;<a href="#rfc.iref.c.12"><b>3.2.1.6</b></a>, <a href="#rfc.iref.c.22"><b>3.2.2.9</b></a></li>
     2086                        <li>only-if-cached&nbsp;&nbsp;<a href="#rfc.iref.c.13"><b>3.2.1.7</b></a></li>
     2087                        <li>private&nbsp;&nbsp;<a href="#rfc.iref.c.15"><b>3.2.2.2</b></a></li>
     2088                        <li>proxy-revalidate&nbsp;&nbsp;<a href="#rfc.iref.c.19"><b>3.2.2.6</b></a></li>
     2089                        <li>public&nbsp;&nbsp;<a href="#rfc.iref.c.14"><b>3.2.2.1</b></a></li>
     2090                        <li>s-maxage&nbsp;&nbsp;<a href="#rfc.iref.c.21"><b>3.2.2.8</b></a></li>
    20662091                     </ul>
    20672092                  </li>
     
    20882113                        <li><tt>Age</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.2"><b>3.1</b></a></li>
    20892114                        <li><tt>Cache-Control</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.3"><b>3.2</b></a></li>
    2090                         <li><tt>cache-extension</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.4"><b>3.2</b></a></li>
    2091                         <li><tt>cache-request-directive</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.5"><b>3.2.1</b></a></li>
    2092                         <li><tt>cache-response-directive</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.6"><b>3.2.2</b></a></li>
     2115                        <li><tt>cache-directive</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.4"><b>3.2</b></a></li>
    20932116                        <li><tt>delta-seconds</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.1"><b>1.5</b></a></li>
    2094                         <li><tt>Expires</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.7"><b>3.3</b></a></li>
    2095                         <li><tt>extension-pragma</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.10"><b>3.4</b></a></li>
    2096                         <li><tt>Pragma</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.8"><b>3.4</b></a></li>
    2097                         <li><tt>pragma-directive</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.9"><b>3.4</b></a></li>
    2098                         <li><tt>Vary</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.11"><b>3.5</b></a></li>
    2099                         <li><tt>warn-agent</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.15"><b>3.6</b></a></li>
    2100                         <li><tt>warn-code</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.14"><b>3.6</b></a></li>
    2101                         <li><tt>warn-date</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.17"><b>3.6</b></a></li>
    2102                         <li><tt>warn-text</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.16"><b>3.6</b></a></li>
    2103                         <li><tt>Warning</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.12"><b>3.6</b></a></li>
    2104                         <li><tt>warning-value</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.13"><b>3.6</b></a></li>
     2117                        <li><tt>Expires</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.5"><b>3.3</b></a></li>
     2118                        <li><tt>extension-pragma</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.8"><b>3.4</b></a></li>
     2119                        <li><tt>Pragma</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.6"><b>3.4</b></a></li>
     2120                        <li><tt>pragma-directive</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.7"><b>3.4</b></a></li>
     2121                        <li><tt>Vary</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.9"><b>3.5</b></a></li>
     2122                        <li><tt>warn-agent</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.13"><b>3.6</b></a></li>
     2123                        <li><tt>warn-code</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.12"><b>3.6</b></a></li>
     2124                        <li><tt>warn-date</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.15"><b>3.6</b></a></li>
     2125                        <li><tt>warn-text</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.14"><b>3.6</b></a></li>
     2126                        <li><tt>Warning</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.10"><b>3.6</b></a></li>
     2127                        <li><tt>warning-value</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.11"><b>3.6</b></a></li>
    21052128                     </ul>
    21062129                  </li>
     
    21242147                  <li>max-age&nbsp;&nbsp;
    21252148                     <ul>
    2126                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.m.1"><b>3.2.1</b></a>, <a href="#rfc.iref.m.5"><b>3.2.2</b></a></li>
     2149                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.m.1"><b>3.2.1.3</b></a>, <a href="#rfc.iref.m.5"><b>3.2.2.7</b></a></li>
    21272150                     </ul>
    21282151                  </li>
    21292152                  <li>max-stale&nbsp;&nbsp;
    21302153                     <ul>
    2131                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.m.2"><b>3.2.1</b></a></li>
     2154                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.m.2"><b>3.2.1.4</b></a></li>
    21322155                     </ul>
    21332156                  </li>
    21342157                  <li>min-fresh&nbsp;&nbsp;
    21352158                     <ul>
    2136                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.m.3"><b>3.2.1</b></a></li>
     2159                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.m.3"><b>3.2.1.5</b></a></li>
    21372160                     </ul>
    21382161                  </li>
    21392162                  <li>must-revalidate&nbsp;&nbsp;
    21402163                     <ul>
    2141                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.m.4"><b>3.2.2</b></a></li>
     2164                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.m.4"><b>3.2.2.5</b></a></li>
    21422165                     </ul>
    21432166                  </li>
     
    21472170                  <li>no-cache&nbsp;&nbsp;
    21482171                     <ul>
    2149                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.n.1"><b>3.2.1</b></a>, <a href="#rfc.iref.n.4"><b>3.2.2</b></a></li>
     2172                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.n.1"><b>3.2.1.1</b></a>, <a href="#rfc.iref.n.4"><b>3.2.2.3</b></a></li>
    21502173                     </ul>
    21512174                  </li>
    21522175                  <li>no-store&nbsp;&nbsp;
    21532176                     <ul>
    2154                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.n.2"><b>3.2.1</b></a>, <a href="#rfc.iref.n.5"><b>3.2.2</b></a></li>
     2177                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.n.2"><b>3.2.1.2</b></a>, <a href="#rfc.iref.n.5"><b>3.2.2.4</b></a></li>
    21552178                     </ul>
    21562179                  </li>
    21572180                  <li>no-transform&nbsp;&nbsp;
    21582181                     <ul>
    2159                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.n.3"><b>3.2.1</b></a>, <a href="#rfc.iref.n.6"><b>3.2.2</b></a></li>
     2182                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.n.3"><b>3.2.1.6</b></a>, <a href="#rfc.iref.n.6"><b>3.2.2.9</b></a></li>
    21602183                     </ul>
    21612184                  </li>
     
    21652188                  <li>only-if-cached&nbsp;&nbsp;
    21662189                     <ul>
    2167                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.o.1"><b>3.2.1</b></a></li>
     2190                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.o.1"><b>3.2.1.7</b></a></li>
    21682191                     </ul>
    21692192                  </li>
     
    22082231                  <li>private&nbsp;&nbsp;
    22092232                     <ul>
    2210                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.p.3"><b>3.2.2</b></a></li>
     2233                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.p.3"><b>3.2.2.2</b></a></li>
    22112234                     </ul>
    22122235                  </li>
     
    22142237                  <li>proxy-revalidate&nbsp;&nbsp;
    22152238                     <ul>
    2216                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.p.4"><b>3.2.2</b></a></li>
     2239                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.p.4"><b>3.2.2.6</b></a></li>
    22172240                     </ul>
    22182241                  </li>
    22192242                  <li>public&nbsp;&nbsp;
    22202243                     <ul>
    2221                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.p.2"><b>3.2.2</b></a></li>
     2244                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.p.2"><b>3.2.2.1</b></a></li>
    22222245                     </ul>
    22232246                  </li>
     
    22502273                  <li>s-maxage&nbsp;&nbsp;
    22512274                     <ul>
    2252                         <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.s.4"><b>3.2.2</b></a></li>
     2275                        <li>Cache Directive&nbsp;&nbsp;<a href="#rfc.iref.s.4"><b>3.2.2.8</b></a></li>
    22532276                     </ul>
    22542277                  </li>
Note: See TracChangeset for help on using the changeset viewer.