Changeset 1695 for draft-ietf-httpbis
- Timestamp:
- 25/06/12 07:18:34 (10 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/httpbis.abnf
r1663 r1695 80 80 byte-ranges-specifier = bytes-unit "=" byte-range-set 81 81 bytes-unit = "bytes" 82 cache-directive = cache-request-directive / cache-response-directive 83 cache-extension = token [ "=" ( token / quoted-string ) ] 84 cache-request-directive = "no-cache" / "no-store" / ( "max-age=" delta-seconds ) / ( "max-stale" [ "=" delta-seconds ] ) / ( "min-fresh=" delta-seconds ) / "no-transform" / "only-if-cached" / cache-extension 85 cache-response-directive = "public" / ( "private" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / ( "no-cache" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / "no-store" / "no-transform" / "must-revalidate" / "proxy-revalidate" / ( "max-age=" delta-seconds ) / ( "s-maxage=" delta-seconds ) / cache-extension 82 cache-directive = token [ "=" ( token / quoted-string ) ] 86 83 challenge = auth-scheme [ 1*SP ( b64token / [ ( "," / auth-param ) *( OWS "," [ OWS auth-param ] ) ] ) ] 87 84 charset = token -
draft-ietf-httpbis/latest/p6-cache.html
r1692 r1695 452 452 } 453 453 @bottom-center { 454 content: "Expires December 2 5, 2012";454 content: "Expires December 27, 2012"; 455 455 } 456 456 @bottom-right { … … 494 494 <meta name="dct.creator" content="Reschke, J. F."> 495 495 <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p6-cache-latest"> 496 <meta name="dct.issued" scheme="ISO8601" content="2012-06-2 3">496 <meta name="dct.issued" scheme="ISO8601" content="2012-06-25"> 497 497 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 498 498 <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 "HTTP/1.1" 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."> … … 520 520 </tr> 521 521 <tr> 522 <td class="left">Expires: December 2 5, 2012</td>522 <td class="left">Expires: December 27, 2012</td> 523 523 <td class="right">M. Nottingham, Editor</td> 524 524 </tr> … … 537 537 <tr> 538 538 <td class="left"></td> 539 <td class="right">June 2 3, 2012</td>539 <td class="right">June 25, 2012</td> 540 540 </tr> 541 541 </tbody> … … 567 567 in progress”. 568 568 </p> 569 <p>This Internet-Draft will expire on December 2 5, 2012.</p>569 <p>This Internet-Draft will expire on December 27, 2012.</p> 570 570 <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> 571 571 <p>Copyright © 2012 IETF Trust and the persons identified as the document authors. All rights reserved.</p> … … 623 623 <li>3.1 <a href="#header.age">Age</a></li> 624 624 <li>3.2 <a href="#header.cache-control">Cache-Control</a><ul> 625 <li>3.2.1 <a href="#cache-request-directive">Request Cache-Control Directives</a></li> 626 <li>3.2.2 <a href="#cache-response-directive">Response Cache-Control Directives</a></li> 625 <li>3.2.1 <a href="#cache-request-directive">Request Cache-Control Directives</a><ul> 626 <li>3.2.1.1 <a href="#cache-request-directive.no-cache">no-cache</a></li> 627 <li>3.2.1.2 <a href="#cache-request-directive.no-store">no-store</a></li> 628 <li>3.2.1.3 <a href="#cache-request-directive.max-age">max-age</a></li> 629 <li>3.2.1.4 <a href="#cache-request-directive.max-stale">max-stale</a></li> 630 <li>3.2.1.5 <a href="#cache-request-directive.min-fresh">min-fresh</a></li> 631 <li>3.2.1.6 <a href="#cache-request-directive.no-transform">no-transform</a></li> 632 <li>3.2.1.7 <a href="#cache-request-directive.only-if-cached">only-if-cached</a></li> 633 </ul> 634 </li> 635 <li>3.2.2 <a href="#cache-response-directive">Response Cache-Control Directives</a><ul> 636 <li>3.2.2.1 <a href="#cache-response-directive.only-if-cached">public</a></li> 637 <li>3.2.2.2 <a href="#cache-response-directive.private">private</a></li> 638 <li>3.2.2.3 <a href="#cache-response-directive.no-cache">no-cache</a></li> 639 <li>3.2.2.4 <a href="#cache-response-directive.no-store">no-store</a></li> 640 <li>3.2.2.5 <a href="#cache-response-directive.must-revalidate">must-revalidate</a></li> 641 <li>3.2.2.6 <a href="#cache-response-directive.proxy-revalidate">proxy-revalidate</a></li> 642 <li>3.2.2.7 <a href="#cache-response-directive.max-age">max-age</a></li> 643 <li>3.2.2.8 <a href="#cache-response-directive.s-maxage">s-maxage</a></li> 644 <li>3.2.2.9 <a href="#cache-response-directive.no-transform">no-transform</a></li> 645 </ul> 646 </li> 627 647 <li>3.2.3 <a href="#cache.control.extensions">Cache Control Extensions</a></li> 628 648 </ul> … … 1223 1243 cache. 1224 1244 </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> 1226 1249 <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> 1227 1250 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> <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> <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> <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> <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> <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> 1244 1274 <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 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> <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> 1250 1287 <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 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> <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> 1262 1302 <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 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> <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> <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> <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> <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 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> <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> 1269 1335 <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> <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> 1278 1357 <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> <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> <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> <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> <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> 1286 1407 <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 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> <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> 1292 1420 <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> <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 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 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> <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> 1401 1435 <h3 id="rfc.section.3.2.3"><a href="#rfc.section.3.2.3">3.2.3</a> <a id="cache.control.extensions" href="#cache.control.extensions">Cache Control Extensions</a></h3> 1402 1436 <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 … … 1416 1450 private response in their shared cache(s) could do so by including 1417 1451 </p> 1418 <div id="rfc.figure.u.1 2"></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" 1419 1453 </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 1420 1454 it will also see and understand the private directive and thus default to the safe behavior. … … 1445 1479 <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. 1446 1480 </p> 1447 <div id="rfc.figure.u.1 3"></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.1 4"></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> 1449 1483 <p>For example</p> <pre class="text"> Expires: Thu, 01 Dec 1994 16:00:00 GMT 1450 1484 </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"). … … 1473 1507 deprecates such extensions to improve interoperability. 1474 1508 </p> 1475 <div id="rfc.figure.u.1 5"></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> 1476 1510 <a href="#header.pragma" class="smpl">pragma-directive</a> = "no-cache" / <a href="#header.pragma" class="smpl">extension-pragma</a> 1477 1511 <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> ) ] … … 1481 1515 no-cache is purposefully omitted to target other Cache-Control response directives at HTTP/1.1 caches. For example: 1482 1516 </p> 1483 <div id="rfc.figure.u.1 6"></div> <pre class="text">GET / HTTP/1.11517 <div id="rfc.figure.u.14"></div> <pre class="text">GET / HTTP/1.1 1484 1518 Host: www.example.com 1485 1519 Cache-Control: max-age=30 … … 1504 1538 the representation. 1505 1539 </p> 1506 <div id="rfc.figure.u.1 7"></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> 1507 1541 </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> 1508 1542 <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 … … 1531 1565 be applied to response messages. 1532 1566 </p> 1533 <div id="rfc.figure.u.1 8"></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> 1534 1568 1535 1569 <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> … … 1570 1604 of its meaning. 1571 1605 </p> 1572 <div id="rfc.iref.7 8"></div>1606 <div id="rfc.iref.76"></div> 1573 1607 <div id="rfc.iref.w.2"></div> 1574 1608 <h3 id="rfc.section.3.6.1"><a href="#rfc.section.3.6.1">3.6.1</a> <a id="warn.110" href="#warn.110">110 Response is Stale</a></h3> 1575 1609 <p id="rfc.section.3.6.1.p.1">A cache <em class="bcp14">SHOULD</em> include this whenever the returned response is stale. 1576 1610 </p> 1577 <div id="rfc.iref.7 9"></div>1611 <div id="rfc.iref.77"></div> 1578 1612 <div id="rfc.iref.w.3"></div> 1579 1613 <h3 id="rfc.section.3.6.2"><a href="#rfc.section.3.6.2">3.6.2</a> <a id="warn.111" href="#warn.111">111 Revalidation Failed</a></h3> … … 1581 1615 the server. 1582 1616 </p> 1583 <div id="rfc.iref. 80"></div>1617 <div id="rfc.iref.78"></div> 1584 1618 <div id="rfc.iref.w.4"></div> 1585 1619 <h3 id="rfc.section.3.6.3"><a href="#rfc.section.3.6.3">3.6.3</a> <a id="warn.112" href="#warn.112">112 Disconnected Operation</a></h3> 1586 1620 <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. 1587 1621 </p> 1588 <div id="rfc.iref. 81"></div>1622 <div id="rfc.iref.79"></div> 1589 1623 <div id="rfc.iref.w.5"></div> 1590 1624 <h3 id="rfc.section.3.6.4"><a href="#rfc.section.3.6.4">3.6.4</a> <a id="warn.113" href="#warn.113">113 Heuristic Expiration</a></h3> … … 1592 1626 hours. 1593 1627 </p> 1594 <div id="rfc.iref.8 2"></div>1628 <div id="rfc.iref.80"></div> 1595 1629 <div id="rfc.iref.w.6"></div> 1596 1630 <h3 id="rfc.section.3.6.5"><a href="#rfc.section.3.6.5">3.6.5</a> <a id="warn.199" href="#warn.199">199 Miscellaneous Warning</a></h3> 1597 1631 <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. 1598 1632 </p> 1599 <div id="rfc.iref.8 3"></div>1633 <div id="rfc.iref.81"></div> 1600 1634 <div id="rfc.iref.w.7"></div> 1601 1635 <h3 id="rfc.section.3.6.6"><a href="#rfc.section.3.6.6">3.6.6</a> <a id="warn.214" href="#warn.214">214 Transformation Applied</a></h3> … … 1603 1637 or modifying the representation data, unless this Warning code already appears in the response. 1604 1638 </p> 1605 <div id="rfc.iref.8 4"></div>1639 <div id="rfc.iref.82"></div> 1606 1640 <div id="rfc.iref.w.8"></div> 1607 1641 <h3 id="rfc.section.3.6.7"><a href="#rfc.section.3.6.7">3.6.7</a> <a id="warn.299" href="#warn.299">299 Miscellaneous Persistent Warning</a></h3> … … 1649 1683 <tr> 1650 1684 <td class="left">max-age</td> 1651 <td class="left"> <a href="#cache-request-directive " title="Request Cache-Control Directives">Section 3.2.1</a>, <a href="#cache-response-directive" title="Response Cache-Control Directives">Section 3.2.2</a>1685 <td class="left"> <a href="#cache-request-directive.max-age" title="max-age">Section 3.2.1.3</a>, <a href="#cache-response-directive.max-age" title="max-age">Section 3.2.2.7</a> 1652 1686 </td> 1653 1687 </tr> 1654 1688 <tr> 1655 1689 <td class="left">max-stale</td> 1656 <td class="left"> <a href="#cache-request-directive " title="Request Cache-Control Directives">Section 3.2.1</a>1690 <td class="left"> <a href="#cache-request-directive.max-stale" title="max-stale">Section 3.2.1.4</a> 1657 1691 </td> 1658 1692 </tr> 1659 1693 <tr> 1660 1694 <td class="left">min-fresh</td> 1661 <td class="left"> <a href="#cache-request-directive " title="Request Cache-Control Directives">Section 3.2.1</a>1695 <td class="left"> <a href="#cache-request-directive.min-fresh" title="min-fresh">Section 3.2.1.5</a> 1662 1696 </td> 1663 1697 </tr> 1664 1698 <tr> 1665 1699 <td class="left">must-revalidate</td> 1666 <td class="left"> <a href="#cache-response-directive " title="Response Cache-Control Directives">Section 3.2.2</a>1700 <td class="left"> <a href="#cache-response-directive.must-revalidate" title="must-revalidate">Section 3.2.2.5</a> 1667 1701 </td> 1668 1702 </tr> 1669 1703 <tr> 1670 1704 <td class="left">no-cache</td> 1671 <td class="left"> <a href="#cache-request-directive " title="Request Cache-Control Directives">Section 3.2.1</a>, <a href="#cache-response-directive" title="Response Cache-Control Directives">Section 3.2.2</a>1705 <td class="left"> <a href="#cache-request-directive.no-cache" title="no-cache">Section 3.2.1.1</a>, <a href="#cache-response-directive.no-cache" title="no-cache">Section 3.2.2.3</a> 1672 1706 </td> 1673 1707 </tr> 1674 1708 <tr> 1675 1709 <td class="left">no-store</td> 1676 <td class="left"> <a href="#cache-request-directive " title="Request Cache-Control Directives">Section 3.2.1</a>, <a href="#cache-response-directive" title="Response Cache-Control Directives">Section 3.2.2</a>1710 <td class="left"> <a href="#cache-request-directive.no-store" title="no-store">Section 3.2.1.2</a>, <a href="#cache-response-directive.no-store" title="no-store">Section 3.2.2.4</a> 1677 1711 </td> 1678 1712 </tr> 1679 1713 <tr> 1680 1714 <td class="left">no-transform</td> 1681 <td class="left"> <a href="#cache-request-directive " title="Request Cache-Control Directives">Section 3.2.1</a>, <a href="#cache-response-directive" title="Response Cache-Control Directives">Section 3.2.2</a>1715 <td class="left"> <a href="#cache-request-directive.no-transform" title="no-transform">Section 3.2.1.6</a>, <a href="#cache-response-directive.no-transform" title="no-transform">Section 3.2.2.9</a> 1682 1716 </td> 1683 1717 </tr> 1684 1718 <tr> 1685 1719 <td class="left">only-if-cached</td> 1686 <td class="left"> <a href="#cache-request-directive " title="Request Cache-Control Directives">Section 3.2.1</a>1720 <td class="left"> <a href="#cache-request-directive.only-if-cached" title="only-if-cached">Section 3.2.1.7</a> 1687 1721 </td> 1688 1722 </tr> 1689 1723 <tr> 1690 1724 <td class="left">private</td> 1691 <td class="left"> <a href="#cache-response-directive " title="Response Cache-Control Directives">Section 3.2.2</a>1725 <td class="left"> <a href="#cache-response-directive.private" title="private">Section 3.2.2.2</a> 1692 1726 </td> 1693 1727 </tr> 1694 1728 <tr> 1695 1729 <td class="left">proxy-revalidate</td> 1696 <td class="left"> <a href="#cache-response-directive " title="Response Cache-Control Directives">Section 3.2.2</a>1730 <td class="left"> <a href="#cache-response-directive.proxy-revalidate" title="proxy-revalidate">Section 3.2.2.6</a> 1697 1731 </td> 1698 1732 </tr> 1699 1733 <tr> 1700 1734 <td class="left">public</td> 1701 <td class="left"> <a href="#cache-response-directive " title="Response Cache-Control Directives">Section 3.2.2</a>1735 <td class="left"> <a href="#cache-response-directive.only-if-cached" title="public">Section 3.2.2.1</a> 1702 1736 </td> 1703 1737 </tr> 1704 1738 <tr> 1705 1739 <td class="left">s-maxage</td> 1706 <td class="left"> <a href="#cache-response-directive " title="Response Cache-Control Directives">Section 3.2.2</a>1740 <td class="left"> <a href="#cache-response-directive.s-maxage" title="s-maxage">Section 3.2.2.8</a> 1707 1741 </td> 1708 1742 </tr> … … 1950 1984 </p> 1951 1985 <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1> 1952 <div id="rfc.figure.u.1 9"></div> <pre class="inline"><a href="#header.age" class="smpl">Age</a> = delta-seconds1986 <div id="rfc.figure.u.17"></div> <pre class="inline"><a href="#header.age" class="smpl">Age</a> = delta-seconds 1953 1987 1954 1988 <a href="#header.cache-control" class="smpl">Cache-Control</a> = *( "," OWS ) cache-directive *( OWS "," [ OWS … … 1970 2004 ) 1971 2005 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 ) ] 1984 2007 1985 2008 <a href="#delta-seconds" class="smpl">delta-seconds</a> = 1*DIGIT … … 2005 2028 <a href="#header.warning" class="smpl">warning-value</a> = warn-code SP warn-agent SP warn-text [ SP warn-date 2006 2029 ] 2007 </pre> <div id="rfc.figure.u. 20"></div>2030 </pre> <div id="rfc.figure.u.18"></div> 2008 2031 <p>ABNF diagnostics:</p><pre class="inline">; Age defined but not used 2009 2032 ; Cache-Control defined but not used … … 2018 2041 <p id="rfc.section.C.1.p.1">Closed issues: </p> 2019 2042 <ul> 2043 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/307">http://tools.ietf.org/wg/httpbis/trac/ticket/307</a>>: "untangle Cache-Control ABNF" 2044 </li> 2020 2045 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/355">http://tools.ietf.org/wg/httpbis/trac/ticket/355</a>>: "Case sensitivity of header fields in CC values" 2021 2046 </li> … … 2031 2056 <ul class="ind"> 2032 2057 <li><a id="rfc.index.1" href="#rfc.index.1"><b>1</b></a><ul> 2033 <li>110 Response is Stale (warn code) <a href="#rfc.iref.7 8"><b>3.6.1</b></a>, <a href="#rfc.xref.warn.110.1">5.2</a></li>2034 <li>111 Revalidation Failed (warn code) <a href="#rfc.iref.7 9"><b>3.6.2</b></a>, <a href="#rfc.xref.warn.111.1">5.2</a></li>2035 <li>112 Disconnected Operation (warn code) <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) <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) <a href="#rfc.iref.8 2"><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) <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) <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) <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) <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) <a href="#rfc.iref.80"><b>3.6.5</b></a>, <a href="#rfc.xref.warn.199.1">5.2</a></li> 2038 2063 </ul> 2039 2064 </li> 2040 2065 <li><a id="rfc.index.2" href="#rfc.index.2"><b>2</b></a><ul> 2041 <li>214 Transformation Applied (warn code) <a href="#rfc.iref.8 3"><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) <a href="#rfc.iref.8 4"><b>3.6.7</b></a>, <a href="#rfc.xref.warn.299.1">5.2</a></li>2066 <li>214 Transformation Applied (warn code) <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) <a href="#rfc.iref.82"><b>3.6.7</b></a>, <a href="#rfc.xref.warn.299.1">5.2</a></li> 2043 2068 </ul> 2044 2069 </li> … … 2052 2077 <li>Cache Directives 2053 2078 <ul> 2054 <li>max-age <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 <a href="#rfc.iref.c.10"><b>3.2.1 </b></a></li>2056 <li>min-fresh <a href="#rfc.iref.c.11"><b>3.2.1 </b></a></li>2057 <li>must-revalidate <a href="#rfc.iref.c.18"><b>3.2.2 </b></a></li>2058 <li>no-cache <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 <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 <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 <a href="#rfc.iref.c.13"><b>3.2.1 </b></a></li>2062 <li>private <a href="#rfc.iref.c.15"><b>3.2.2 </b></a></li>2063 <li>proxy-revalidate <a href="#rfc.iref.c.19"><b>3.2.2 </b></a></li>2064 <li>public <a href="#rfc.iref.c.14"><b>3.2.2 </b></a></li>2065 <li>s-maxage <a href="#rfc.iref.c.21"><b>3.2.2 </b></a></li>2079 <li>max-age <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 <a href="#rfc.iref.c.10"><b>3.2.1.4</b></a></li> 2081 <li>min-fresh <a href="#rfc.iref.c.11"><b>3.2.1.5</b></a></li> 2082 <li>must-revalidate <a href="#rfc.iref.c.18"><b>3.2.2.5</b></a></li> 2083 <li>no-cache <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 <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 <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 <a href="#rfc.iref.c.13"><b>3.2.1.7</b></a></li> 2087 <li>private <a href="#rfc.iref.c.15"><b>3.2.2.2</b></a></li> 2088 <li>proxy-revalidate <a href="#rfc.iref.c.19"><b>3.2.2.6</b></a></li> 2089 <li>public <a href="#rfc.iref.c.14"><b>3.2.2.1</b></a></li> 2090 <li>s-maxage <a href="#rfc.iref.c.21"><b>3.2.2.8</b></a></li> 2066 2091 </ul> 2067 2092 </li> … … 2088 2113 <li><tt>Age</tt> <a href="#rfc.iref.g.2"><b>3.1</b></a></li> 2089 2114 <li><tt>Cache-Control</tt> <a href="#rfc.iref.g.3"><b>3.2</b></a></li> 2090 <li><tt>cache-extension</tt> <a href="#rfc.iref.g.4"><b>3.2</b></a></li> 2091 <li><tt>cache-request-directive</tt> <a href="#rfc.iref.g.5"><b>3.2.1</b></a></li> 2092 <li><tt>cache-response-directive</tt> <a href="#rfc.iref.g.6"><b>3.2.2</b></a></li> 2115 <li><tt>cache-directive</tt> <a href="#rfc.iref.g.4"><b>3.2</b></a></li> 2093 2116 <li><tt>delta-seconds</tt> <a href="#rfc.iref.g.1"><b>1.5</b></a></li> 2094 <li><tt>Expires</tt> <a href="#rfc.iref.g. 7"><b>3.3</b></a></li>2095 <li><tt>extension-pragma</tt> <a href="#rfc.iref.g. 10"><b>3.4</b></a></li>2096 <li><tt>Pragma</tt> <a href="#rfc.iref.g. 8"><b>3.4</b></a></li>2097 <li><tt>pragma-directive</tt> <a href="#rfc.iref.g. 9"><b>3.4</b></a></li>2098 <li><tt>Vary</tt> <a href="#rfc.iref.g. 11"><b>3.5</b></a></li>2099 <li><tt>warn-agent</tt> <a href="#rfc.iref.g.1 5"><b>3.6</b></a></li>2100 <li><tt>warn-code</tt> <a href="#rfc.iref.g.1 4"><b>3.6</b></a></li>2101 <li><tt>warn-date</tt> <a href="#rfc.iref.g.1 7"><b>3.6</b></a></li>2102 <li><tt>warn-text</tt> <a href="#rfc.iref.g.1 6"><b>3.6</b></a></li>2103 <li><tt>Warning</tt> <a href="#rfc.iref.g.1 2"><b>3.6</b></a></li>2104 <li><tt>warning-value</tt> <a href="#rfc.iref.g.1 3"><b>3.6</b></a></li>2117 <li><tt>Expires</tt> <a href="#rfc.iref.g.5"><b>3.3</b></a></li> 2118 <li><tt>extension-pragma</tt> <a href="#rfc.iref.g.8"><b>3.4</b></a></li> 2119 <li><tt>Pragma</tt> <a href="#rfc.iref.g.6"><b>3.4</b></a></li> 2120 <li><tt>pragma-directive</tt> <a href="#rfc.iref.g.7"><b>3.4</b></a></li> 2121 <li><tt>Vary</tt> <a href="#rfc.iref.g.9"><b>3.5</b></a></li> 2122 <li><tt>warn-agent</tt> <a href="#rfc.iref.g.13"><b>3.6</b></a></li> 2123 <li><tt>warn-code</tt> <a href="#rfc.iref.g.12"><b>3.6</b></a></li> 2124 <li><tt>warn-date</tt> <a href="#rfc.iref.g.15"><b>3.6</b></a></li> 2125 <li><tt>warn-text</tt> <a href="#rfc.iref.g.14"><b>3.6</b></a></li> 2126 <li><tt>Warning</tt> <a href="#rfc.iref.g.10"><b>3.6</b></a></li> 2127 <li><tt>warning-value</tt> <a href="#rfc.iref.g.11"><b>3.6</b></a></li> 2105 2128 </ul> 2106 2129 </li> … … 2124 2147 <li>max-age 2125 2148 <ul> 2126 <li>Cache Directive <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 <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> 2127 2150 </ul> 2128 2151 </li> 2129 2152 <li>max-stale 2130 2153 <ul> 2131 <li>Cache Directive <a href="#rfc.iref.m.2"><b>3.2.1 </b></a></li>2154 <li>Cache Directive <a href="#rfc.iref.m.2"><b>3.2.1.4</b></a></li> 2132 2155 </ul> 2133 2156 </li> 2134 2157 <li>min-fresh 2135 2158 <ul> 2136 <li>Cache Directive <a href="#rfc.iref.m.3"><b>3.2.1 </b></a></li>2159 <li>Cache Directive <a href="#rfc.iref.m.3"><b>3.2.1.5</b></a></li> 2137 2160 </ul> 2138 2161 </li> 2139 2162 <li>must-revalidate 2140 2163 <ul> 2141 <li>Cache Directive <a href="#rfc.iref.m.4"><b>3.2.2 </b></a></li>2164 <li>Cache Directive <a href="#rfc.iref.m.4"><b>3.2.2.5</b></a></li> 2142 2165 </ul> 2143 2166 </li> … … 2147 2170 <li>no-cache 2148 2171 <ul> 2149 <li>Cache Directive <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 <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> 2150 2173 </ul> 2151 2174 </li> 2152 2175 <li>no-store 2153 2176 <ul> 2154 <li>Cache Directive <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 <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> 2155 2178 </ul> 2156 2179 </li> 2157 2180 <li>no-transform 2158 2181 <ul> 2159 <li>Cache Directive <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 <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> 2160 2183 </ul> 2161 2184 </li> … … 2165 2188 <li>only-if-cached 2166 2189 <ul> 2167 <li>Cache Directive <a href="#rfc.iref.o.1"><b>3.2.1 </b></a></li>2190 <li>Cache Directive <a href="#rfc.iref.o.1"><b>3.2.1.7</b></a></li> 2168 2191 </ul> 2169 2192 </li> … … 2208 2231 <li>private 2209 2232 <ul> 2210 <li>Cache Directive <a href="#rfc.iref.p.3"><b>3.2.2 </b></a></li>2233 <li>Cache Directive <a href="#rfc.iref.p.3"><b>3.2.2.2</b></a></li> 2211 2234 </ul> 2212 2235 </li> … … 2214 2237 <li>proxy-revalidate 2215 2238 <ul> 2216 <li>Cache Directive <a href="#rfc.iref.p.4"><b>3.2.2 </b></a></li>2239 <li>Cache Directive <a href="#rfc.iref.p.4"><b>3.2.2.6</b></a></li> 2217 2240 </ul> 2218 2241 </li> 2219 2242 <li>public 2220 2243 <ul> 2221 <li>Cache Directive <a href="#rfc.iref.p.2"><b>3.2.2 </b></a></li>2244 <li>Cache Directive <a href="#rfc.iref.p.2"><b>3.2.2.1</b></a></li> 2222 2245 </ul> 2223 2246 </li> … … 2250 2273 <li>s-maxage 2251 2274 <ul> 2252 <li>Cache Directive <a href="#rfc.iref.s.4"><b>3.2.2 </b></a></li>2275 <li>Cache Directive <a href="#rfc.iref.s.4"><b>3.2.2.8</b></a></li> 2253 2276 </ul> 2254 2277 </li> -
draft-ietf-httpbis/latest/p6-cache.xml
r1692 r1695 1186 1186 <x:anchor-alias value="Cache-Control"/> 1187 1187 <x:anchor-alias value="cache-directive"/> 1188 <x:anchor-alias value="cache-extension"/>1189 <x:anchor-alias value="cache-request-directive"/>1190 <x:anchor-alias value="cache-response-directive"/>1191 1188 <t> 1192 1189 The "Cache-Control" header field is used to specify directives for … … 1215 1212 target a directive to a specific cache. 1216 1213 </t> 1217 <t>Cache directives are identified by a token, to be compared case-insensitively, and have an optional argument.</t> 1218 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Cache-Control"/><iref primary="true" item="Grammar" subitem="cache-extension"/> 1214 <t> 1215 Cache directives are identified by a token, to be compared case-insensitively, 1216 and have an optional argument, that can use both token and quoted-string 1217 syntax. For the directives defined below that define arguments, recipients 1218 ought to accept both forms, even if one is documented to be preferred. For 1219 any directive not defined by this specification, recipients &MUST; accept 1220 both forms. 1221 </t> 1222 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Cache-Control"/><iref primary="true" item="Grammar" subitem="cache-directive"/> 1219 1223 <x:ref>Cache-Control</x:ref> = 1#<x:ref>cache-directive</x:ref> 1220 1224 1221 <x:ref>cache-directive</x:ref> = <x:ref>cache-request-directive</x:ref> 1222 / <x:ref>cache-response-directive</x:ref> 1223 1224 <x:ref>cache-extension</x:ref> = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> ) ] 1225 <x:ref>cache-directive</x:ref> = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> ) ] 1225 1226 </artwork></figure> 1227 <t> 1228 For the cache directives defined below, no argument is defined (nor allowed) 1229 otherwise stated otherwise. 1230 </t> 1226 1231 1227 1232 <section anchor="cache-request-directive" 1228 1233 title="Request Cache-Control Directives"> 1229 <x:anchor-alias value="cache-request-directive" /> 1230 1231 <figure><artwork type="abnf2616"><iref item="Grammar" primary="true" 1232 subitem="cache-request-directive" /> 1233 <x:ref>cache-request-directive</x:ref> = 1234 "no-cache" 1235 / "no-store" 1236 / "max-age" "=" <x:ref>delta-seconds</x:ref> 1237 / "max-stale" [ "=" <x:ref>delta-seconds</x:ref> ] 1238 / "min-fresh" "=" <x:ref>delta-seconds</x:ref> 1239 / "no-transform" 1240 / "only-if-cached" 1241 / <x:ref>cache-extension</x:ref> 1242 </artwork></figure> 1243 1244 <t> 1245 <x:dfn>no-cache</x:dfn> 1234 1235 <section title="no-cache" anchor="cache-request-directive.no-cache"> 1246 1236 <iref item="Cache Directives" primary="true" subitem="no-cache" /> 1247 1237 <iref item="no-cache" primary="true" subitem="Cache Directive" /> 1248 <list>1249 <t>The no-cache request directive indicates that a cache &MUST-NOT;1250 1251 validation on the origin server.</t>1252 </list>1253 </ t>1254 <t> 1255 <x:dfn>no-store</x:dfn>1238 <t> 1239 The no-cache request directive indicates that a cache &MUST-NOT; 1240 use a stored response to satisfy the request without successful 1241 validation on the origin server. 1242 </t> 1243 </section> 1244 1245 <section title="no-store" anchor="cache-request-directive.no-store"> 1256 1246 <iref item="Cache Directives" primary="true" subitem="no-store" /> 1257 1247 <iref item="no-store" primary="true" subitem="Cache Directive" /> 1258 <list> 1259 <t>The no-store request directive indicates that a cache &MUST-NOT; 1260 store any part of either this request or any response to it. This 1261 directive applies to both private and shared caches. "&MUST-NOT; 1262 store" in this context means that the cache &MUST-NOT; intentionally 1263 store the information in non-volatile storage, and &MUST; make a 1264 best-effort attempt to remove the information from volatile storage as 1265 promptly as possible after forwarding it.</t> 1266 <t>This directive is NOT a reliable or sufficient mechanism for ensuring 1267 privacy. In particular, malicious or compromised caches might not 1268 recognize or obey this directive, and communications networks might be 1269 vulnerable to eavesdropping.</t> 1270 <t>Note that if a request containing this directive is satisfied from a 1271 cache, the no-store request directive does not apply to the already 1272 stored response.</t> 1273 </list> 1274 </t> 1275 <t> 1276 <x:dfn>max-age</x:dfn> 1248 <t> 1249 The no-store request directive indicates that a cache &MUST-NOT; 1250 store any part of either this request or any response to it. This 1251 directive applies to both private and shared caches. "&MUST-NOT; 1252 store" in this context means that the cache &MUST-NOT; intentionally 1253 store the information in non-volatile storage, and &MUST; make a 1254 best-effort attempt to remove the information from volatile storage as 1255 promptly as possible after forwarding it. 1256 </t> 1257 <t> 1258 This directive is NOT a reliable or sufficient mechanism for ensuring 1259 privacy. In particular, malicious or compromised caches might not 1260 recognize or obey this directive, and communications networks might be 1261 vulnerable to eavesdropping. 1262 </t> 1263 <t> 1264 Note that if a request containing this directive is satisfied from a 1265 cache, the no-store request directive does not apply to the already 1266 stored response. 1267 </t> 1268 </section> 1269 1270 <section title="max-age" anchor="cache-request-directive.max-age"> 1277 1271 <iref item="Cache Directives" primary="true" subitem="max-age" /> 1278 1272 <iref item="max-age" primary="true" subitem="Cache Directive" /> 1273 <t> 1274 Argument syntax: 1279 1275 <list> 1280 <t>The max-age request directive indicates that the client is unwilling to 1281 accept a response whose age is greater than the specified number of 1282 seconds. Unless the max-stale request directive is also present, the 1283 client is not willing to accept a stale response.</t> 1284 </list> 1285 </t> 1286 <t> 1287 <x:dfn>max-stale</x:dfn> 1276 <t> 1277 <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 1278 </t> 1279 </list> 1280 </t> 1281 <t> 1282 The max-age request directive indicates that the client is unwilling to 1283 accept a response whose age is greater than the specified number of 1284 seconds. Unless the max-stale request directive is also present, the 1285 client is not willing to accept a stale response. 1286 </t> 1287 <t> 1288 &Note; This directive uses the token form of the argument syntax; 1289 e.g., 'max-age=5', not 'max-age="5"'. Senders &SHOULD-NOT; use the 1290 quoted-string form. 1291 </t> 1292 </section> 1293 1294 <section title="max-stale" anchor="cache-request-directive.max-stale"> 1288 1295 <iref item="Cache Directives" primary="true" subitem="max-stale" /> 1289 1296 <iref item="max-stale" primary="true" subitem="Cache Directive" /> 1297 <t> 1298 Argument syntax: 1290 1299 <list> 1291 <t>The max-stale request directive indicates that the client is willing 1292 to accept a response that has exceeded its expiration time. If max-stale 1293 is assigned a value, then the client is willing to accept a response 1294 that has exceeded its expiration time by no more than the specified 1295 number of seconds. If no value is assigned to max-stale, then the client 1296 is willing to accept a stale response of any age.</t> 1297 </list> 1298 </t> 1299 <t> 1300 <x:dfn>min-fresh</x:dfn> 1300 <t> 1301 <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 1302 </t> 1303 </list> 1304 </t> 1305 <t> 1306 The max-stale request directive indicates that the client is willing 1307 to accept a response that has exceeded its expiration time. If max-stale 1308 is assigned a value, then the client is willing to accept a response 1309 that has exceeded its expiration time by no more than the specified 1310 number of seconds. If no value is assigned to max-stale, then the client 1311 is willing to accept a stale response of any age. 1312 </t> 1313 <t> 1314 &Note; This directive uses the token form of the argument syntax; 1315 e.g., 'max-stale=10', not 'max-stale="10"'. Senders &SHOULD-NOT; use the 1316 quoted-string form. 1317 </t> 1318 </section> 1319 1320 <section title="min-fresh" anchor="cache-request-directive.min-fresh"> 1301 1321 <iref item="Cache Directives" primary="true" subitem="min-fresh" /> 1302 1322 <iref item="min-fresh" primary="true" subitem="Cache Directive" /> 1323 <t> 1324 Argument syntax: 1303 1325 <list> 1304 <t>The min-fresh request directive indicates that the client is willing 1305 to accept a response whose freshness lifetime is no less than its 1306 current age plus the specified time in seconds. That is, the client 1307 wants a response that will still be fresh for at least the specified 1308 number of seconds.</t> 1309 </list> 1310 </t> 1311 <t> 1312 <x:dfn>no-transform</x:dfn> 1326 <t> 1327 <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 1328 </t> 1329 </list> 1330 </t> 1331 <t> 1332 The min-fresh request directive indicates that the client is willing 1333 to accept a response whose freshness lifetime is no less than its 1334 current age plus the specified time in seconds. That is, the client 1335 wants a response that will still be fresh for at least the specified 1336 number of seconds. 1337 </t> 1338 <t> 1339 &Note; This directive uses the token form of the argument syntax; 1340 e.g., 'min-fresh=20', not 'min-fresh="20"'. Senders &SHOULD-NOT; use the 1341 quoted-string form. 1342 </t> 1343 </section> 1344 1345 <section title="no-transform" anchor="cache-request-directive.no-transform"> 1313 1346 <iref item="Cache Directives" primary="true" subitem="no-transform" /> 1314 1347 <iref item="no-transform" primary="true" subitem="Cache Directive" /> 1315 <list>1316 <t>The no-transform request directive indicates that an intermediary1317 1318 1319 nor the request representation.</t>1320 </list>1321 </ t>1322 <t> 1323 <x:dfn>only-if-cached</x:dfn>1348 <t> 1349 The no-transform request directive indicates that an intermediary 1350 (whether or not it implements a cache) &MUST-NOT; change the 1351 Content-Encoding, Content-Range or Content-Type request header fields, 1352 nor the request representation. 1353 </t> 1354 </section> 1355 1356 <section title="only-if-cached" anchor="cache-request-directive.only-if-cached"> 1324 1357 <iref item="Cache Directives" primary="true" subitem="only-if-cached" /> 1325 1358 <iref item="only-if-cached" primary="true" subitem="Cache Directive" /> 1326 <list>1327 <t>The only-if-cached request directive indicates that the client only1328 wishes to obtain a stored response. If it receives this directive, a1329 1330 1331 1332 1333 forward such a request within that group of caches.</t>1334 </list>1335 </ t>1359 <t> 1360 The only-if-cached request directive indicates that the client only 1361 wishes to obtain a stored response. If it receives 3ive, a 1362 cache &SHOULD; either respond using a stored response that is consistent 1363 with the other constraints of the request, or respond with a 504 1364 (Gateway Timeout) status code. If a group of caches is being operated as 1365 a unified system with good internal connectivity, a member cache &MAY; 1366 forward such a request within that group of caches. 1367 </t> 1368 </section> 1336 1369 </section> 1337 1370 … … 1340 1373 <x:anchor-alias value="cache-response-directive" /> 1341 1374 1342 <figure><artwork type="abnf2616"><iref item="Grammar" primary="true" 1343 subitem="cache-response-directive" /> 1344 <x:ref>cache-response-directive</x:ref> = 1345 "public" 1346 / "private" [ "=" <x:ref>DQUOTE</x:ref> 1#<x:ref>field-name</x:ref> <x:ref>DQUOTE</x:ref> ] 1347 / "no-cache" [ "=" <x:ref>DQUOTE</x:ref> 1#<x:ref>field-name</x:ref> <x:ref>DQUOTE</x:ref> ] 1348 / "no-store" 1349 / "no-transform" 1350 / "must-revalidate" 1351 / "proxy-revalidate" 1352 / "max-age" "=" <x:ref>delta-seconds</x:ref> 1353 / "s-maxage" "=" <x:ref>delta-seconds</x:ref> 1354 / <x:ref>cache-extension</x:ref> 1355 </artwork></figure> 1356 1357 <t> 1358 <x:dfn>public</x:dfn> 1375 <section title="public" anchor="cache-response-directive.only-if-cached"> 1359 1376 <iref item="Cache Directives" primary="true" subitem="public" /> 1360 1377 <iref item="public" primary="true" subitem="Cache Directive" /> 1361 <list>1362 <t>The public response directive indicates that a response whose1363 1364 stored (see <xref target="caching.authenticated.responses" />).</t>1365 </list>1366 </ t>1367 <t> 1368 <x:dfn>private</x:dfn>1378 <t> 1379 The public response directive indicates that a response whose 1380 associated request contains an 'Authentication' header &MAY; be 1381 stored (see <xref target="caching.authenticated.responses" />). 1382 </t> 1383 </section> 1384 1385 <section title="private" anchor="cache-response-directive.private"> 1369 1386 <iref item="Cache Directives" primary="true" subitem="private" /> 1370 1387 <iref item="private" primary="true" subitem="Cache Directive" /> 1388 <t> 1389 Argument syntax: 1371 1390 <list> 1372 <t>The private response directive indicates that the response message is 1373 intended for a single user and &MUST-NOT; be stored by a shared cache. A 1374 private cache &MAY; store the response.</t> 1375 <t>If the private response directive specifies one or more field-names, 1376 this requirement is limited to the field-values associated with the 1377 listed response header fields. That is, a shared cache &MUST-NOT; store 1378 the specified field-names(s), whereas it &MAY; store the remainder of the 1379 response message.</t> 1380 <t>The field-names given are not limited to the set of standard header 1381 fields defined by this specification. Field names are case-insensitive. 1391 <t> 1392 #<x:ref>field-name</x:ref> 1382 1393 </t> 1383 <t>&Note; This usage of the word "private" only controls 1384 where the response can be stored; it cannot ensure the privacy of the 1385 message content. Also, private response directives with field-names are 1386 often handled by implementations as if an unqualified private directive 1387 was received; i.e., the special handling for the qualified form is not 1388 widely implemented.</t> 1389 </list> 1390 </t> 1391 <t> 1392 <x:dfn>no-cache</x:dfn> 1394 </list> 1395 </t> 1396 <t> 1397 The private response directive indicates that the response message is 1398 intended for a single user and &MUST-NOT; be stored by a shared cache. A 1399 private cache &MAY; store the response. 1400 </t> 1401 <t> 1402 If the private response directive specifies one or more field-names, 1403 this requirement is limited to the field-values associated with the 1404 listed response header fields. That is, a shared cache &MUST-NOT; store 1405 the specified field-names(s), whereas it &MAY; store the remainder of the 1406 response message. 1407 </t> 1408 <t> 1409 The field-names given are not limited to the set of standard header 1410 fields defined by this specification. Field names are case-insensitive. 1411 </t> 1412 <t> 1413 &Note; This usage of the word "private" only controls 1414 where the response can be stored; it cannot ensure the privacy of the 1415 message content. Also, private response directives with field-names are 1416 often handled by implementations as if an unqualified private directive 1417 was received; i.e., the special handling for the qualified form is not 1418 widely implemented. 1419 </t> 1420 <t> 1421 &Note; This directive uses the quoted-string form of the argument 1422 syntax. Senders &SHOULD-NOT; use the token form (even if quoting appears not 1423 to be needed for single-entry lists). 1424 </t> 1425 </section> 1426 1427 <section title="no-cache" anchor="cache-response-directive.no-cache"> 1393 1428 <iref item="Cache Directives" primary="true" subitem="no-cache" /> 1394 1429 <iref item="no-cache" primary="true" subitem="Cache Directive" /> 1430 <t> 1431 Argument syntax: 1395 1432 <list> 1396 <t>The no-cache response directive indicates that the response &MUST-NOT; 1397 be used to satisfy a subsequent request without successful validation on 1398 the origin server. This allows an origin server to prevent a cache from 1399 using it to satisfy a request without contacting it, even by caches that 1400 have been configured to return stale responses.</t> 1401 <t>If the no-cache response directive specifies one or more field-names, 1402 then a cache &MAY; use the response to satisfy a subsequent request, 1403 subject to any other restrictions on caching. However, any header fields 1404 in the response that have the field-name(s) listed &MUST-NOT; be sent 1405 in the response to a subsequent request without successful revalidation 1406 with the origin server. This allows an origin server to prevent the 1407 re-use of certain header fields in a response, while still allowing 1408 caching of the rest of the response.</t> 1409 <t>The field-names given are not limited to the set of standard header 1410 fields defined by this specification. Field names are case-insensitive. 1433 <t> 1434 #<x:ref>field-name</x:ref> 1411 1435 </t> 1412 <t>&Note; Most HTTP/1.0 caches will not recognize or obey 1413 this directive. Also, no-cache response directives with field-names are 1414 often handled by implementations as if an unqualified no-cache directive 1415 was received; i.e., the special handling for the qualified form is not 1416 widely implemented.</t> 1417 </list> 1418 </t> 1419 <t> 1420 <x:dfn>no-store</x:dfn> 1436 </list> 1437 </t> 1438 <t> 1439 The no-cache response directive indicates that the response &MUST-NOT; 1440 be used to satisfy a subsequent request without successful validation on 1441 the origin server. This allows an origin server to prevent a cache from 1442 using it to satisfy a request without contacting it, even by caches that 1443 have been configured to return stale responses. 1444 </t> 1445 <t> 1446 If the no-cache response directive specifies one or more field-names, 1447 then a cache &MAY; use the response to satisfy a subsequent request, 1448 subject to any other restrictions on caching. However, any header fields 1449 in the response that have the field-name(s) listed &MUST-NOT; be sent 1450 in the response to a subsequent request without successful revalidation 1451 with the origin server. This allows an origin server to prevent the 1452 re-use of certain header fields in a response, while still allowing 1453 caching of the rest of the response. 1454 </t> 1455 <t> 1456 The field-names given are not limited to the set of standard header 1457 fields defined by this specification. Field names are case-insensitive. 1458 </t> 1459 <t> 1460 &Note; Most HTTP/1.0 caches will not recognize or obey 1461 this directive. Also, no-cache response directives with field-names are 1462 often handled by implementations as if an unqualified no-cache directive 1463 was received; i.e., the special handling for the qualified form is not 1464 widely implemented. 1465 </t> 1466 <t> 1467 &Note; This directive uses the quoted-string form of the argument 1468 syntax. Senders &SHOULD-NOT; use the token form (even if quoting appears not 1469 to be needed for single-entry lists). 1470 </t> 1471 </section> 1472 1473 <section title="no-store" anchor="cache-response-directive.no-store"> 1421 1474 <iref item="Cache Directives" primary="true" subitem="no-store" /> 1422 1475 <iref item="no-store" primary="true" subitem="Cache Directive" /> 1423 <list> 1424 <t>The no-store response directive indicates that a cache &MUST-NOT; 1425 store any part of either the immediate request or response. This 1426 directive applies to both private and shared caches. "&MUST-NOT; 1427 store" in this context means that the cache &MUST-NOT; intentionally 1428 store the information in non-volatile storage, and &MUST; make a 1429 best-effort attempt to remove the information from volatile storage as 1430 promptly as possible after forwarding it.</t> 1431 <t>This directive is NOT a reliable or sufficient mechanism for ensuring 1432 privacy. In particular, malicious or compromised caches might not 1433 recognize or obey this directive, and communications networks might be 1434 vulnerable to eavesdropping.</t> 1435 </list> 1436 </t> 1437 <t> 1438 <x:dfn>must-revalidate</x:dfn> 1476 <t> 1477 The no-store response directive indicates that a cache &MUST-NOT; 1478 store any part of either the immediate request or response. This 1479 directive applies to both private and shared caches. "&MUST-NOT; 1480 store" in this context means that the cache &MUST-NOT; intentionally 1481 store the information in non-volatile storage, and &MUST; make a 1482 best-effort attempt to remove the information from volatile storage as 1483 promptly as possible after forwarding it. 1484 </t> 1485 <t> 1486 This directive is NOT a reliable or sufficient mechanism for ensuring 1487 privacy. In particular, malicious or compromised caches might not 1488 recognize or obey this directive, and communications networks might be 1489 vulnerable to eavesdropping. 1490 </t> 1491 </section> 1492 1493 <section title="must-revalidate" anchor="cache-response-directive.must-revalidate"> 1439 1494 <iref item="Cache Directives" primary="true" subitem="must-revalidate" /> 1440 1495 <iref item="must-revalidate" primary="true" subitem="Cache Directive" /> 1441 <list> 1442 <t>The must-revalidate response directive indicates that once it has 1443 become stale, a cache &MUST-NOT; use the response to satisfy subsequent 1444 requests without successful validation on the origin server.</t> 1445 <t>The must-revalidate directive is necessary to support reliable 1446 operation for certain protocol features. In all circumstances a 1447 cache &MUST; obey the must-revalidate directive; in particular, 1448 if a cache cannot reach the origin server for any reason, it &MUST; 1449 generate a 504 (Gateway Timeout) response.</t> 1450 <t>The must-revalidate directive ought to be used by servers if and only 1451 if failure to validate a request on the representation could result in 1452 incorrect operation, such as a silently unexecuted financial 1453 transaction.</t> 1454 </list> 1455 </t> 1456 <t> 1457 <x:dfn>proxy-revalidate</x:dfn> 1496 <t> 1497 The must-revalidate response directive indicates that once it has 1498 become stale, a cache &MUST-NOT; use the response to satisfy subsequent 1499 requests without successful validation on the origin server. 1500 </t> 1501 <t> 1502 The must-revalidate directive is necessary to support reliable 1503 operation for certain protocol features. In all circumstances a 1504 cache &MUST; obey the must-revalidate directive; in particular, 1505 if a cache cannot reach the origin server for any reason, it &MUST; 1506 generate a 504 (Gateway Timeout) response. 1507 </t> 1508 <t> 1509 The must-revalidate directive ought to be used by servers if and only 1510 if failure to validate a request on the representation could result in 1511 incorrect operation, such as a silently unexecuted financial 1512 transaction. 1513 </t> 1514 </section> 1515 1516 <section title="proxy-revalidate" anchor="cache-response-directive.proxy-revalidate"> 1458 1517 <iref item="Cache Directives" primary="true" subitem="proxy-revalidate" /> 1459 1518 <iref item="proxy-revalidate" primary="true" subitem="Cache Directive" /> 1460 <list>1461 <t>The proxy-revalidate response directive has the same meaning as the1462 1463 private caches.</t>1464 </list>1465 </ t>1466 <t> 1467 <x:dfn>max-age</x:dfn>1519 <t> 1520 The proxy-revalidate response directive has the same meaning as the 1521 must-revalidate response directive, except that it does not apply to 1522 private caches. 1523 </t> 1524 </section> 1525 1526 <section title="max-age" anchor="cache-response-directive.max-age"> 1468 1527 <iref item="Cache Directives" primary="true" subitem="max-age" /> 1469 1528 <iref item="max-age" primary="true" subitem="Cache Directive" /> 1529 <t> 1530 Argument syntax: 1470 1531 <list> 1471 <t>The max-age response directive indicates that the response is to be 1472 considered stale after its age is greater than the specified number of 1473 seconds.</t> 1474 </list> 1475 </t> 1476 <t> 1477 <x:dfn>s-maxage</x:dfn> 1532 <t> 1533 <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 1534 </t> 1535 </list> 1536 </t> 1537 <t> 1538 The max-age response directive indicates that the response is to be 1539 considered stale after its age is greater than the specified number of 1540 seconds. 1541 </t> 1542 <t> 1543 &Note; This directive uses the token form of the argument syntax; 1544 e.g., 'max-age=5', not 'max-age="5"'. Senders &SHOULD-NOT; use the 1545 quoted-string form. 1546 </t> 1547 </section> 1548 1549 <section title="s-maxage" anchor="cache-response-directive.s-maxage"> 1478 1550 <iref item="Cache Directives" primary="true" subitem="s-maxage" /> 1479 1551 <iref item="s-maxage" primary="true" subitem="Cache Directive" /> 1552 <t> 1553 Argument syntax: 1480 1554 <list> 1481 <t>The s-maxage response directive indicates that, in shared caches, the 1482 maximum age specified by this directive overrides the maximum age 1483 specified by either the max-age directive or the Expires header field. The 1484 s-maxage directive also implies the semantics of the proxy-revalidate 1485 response directive.</t> 1486 </list> 1487 </t> 1488 <t> 1489 <x:dfn>no-transform</x:dfn> 1555 <t> 1556 <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 1557 </t> 1558 </list> 1559 </t> 1560 <t> 1561 The s-maxage response directive indicates that, in shared caches, the 1562 maximum age specified by this directive overrides the maximum age 1563 specified by either the max-age directive or the Expires header field. The 1564 s-maxage directive also implies the semantics of the proxy-revalidate 1565 response directive. 1566 </t> 1567 <t> 1568 &Note; This directive uses the token form of the argument syntax; 1569 e.g., 's-maxage=10', not 's-maxage="10"'. Senders &SHOULD-NOT; use the 1570 quoted-string form. 1571 </t> 1572 </section> 1573 1574 <section title="no-transform" anchor="cache-response-directive.no-transform"> 1490 1575 <iref item="Cache Directives" primary="true" subitem="no-transform" /> 1491 1576 <iref item="no-transform" primary="true" subitem="Cache Directive" /> 1492 <list>1493 <t>The no-transform response directive indicates that an intermediary1494 1495 1496 nor the response representation.</t>1497 </list>1498 </ t>1577 <t> 1578 The no-transform response directive indicates that an intermediary 1579 (regardless of whether it implements a cache) &MUST-NOT; change the 1580 Content-Encoding, Content-Range or Content-Type response header fields, 1581 nor the response representation. 1582 </t> 1583 </section> 1499 1584 1500 1585 </section> … … 1953 2038 <c>max-age</c> 1954 2039 <c> 1955 <xref target="cache-request-directive "/>, <xref target="cache-response-directive"/>2040 <xref target="cache-request-directive.max-age"/>, <xref target="cache-response-directive.max-age"/> 1956 2041 </c> 1957 2042 <c>max-stale</c> 1958 2043 <c> 1959 <xref target="cache-request-directive "/>2044 <xref target="cache-request-directive.max-stale"/> 1960 2045 </c> 1961 2046 <c>min-fresh</c> 1962 2047 <c> 1963 <xref target="cache-request-directive "/>2048 <xref target="cache-request-directive.min-fresh"/> 1964 2049 </c> 1965 2050 <c>must-revalidate</c> 1966 2051 <c> 1967 <xref target="cache-response-directive "/>2052 <xref target="cache-response-directive.must-revalidate"/> 1968 2053 </c> 1969 2054 <c>no-cache</c> 1970 2055 <c> 1971 <xref target="cache-request-directive "/>, <xref target="cache-response-directive"/>2056 <xref target="cache-request-directive.no-cache"/>, <xref target="cache-response-directive.no-cache"/> 1972 2057 </c> 1973 2058 <c>no-store</c> 1974 2059 <c> 1975 <xref target="cache-request-directive "/>, <xref target="cache-response-directive"/>2060 <xref target="cache-request-directive.no-store"/>, <xref target="cache-response-directive.no-store"/> 1976 2061 </c> 1977 2062 <c>no-transform</c> 1978 2063 <c> 1979 <xref target="cache-request-directive "/>, <xref target="cache-response-directive"/>2064 <xref target="cache-request-directive.no-transform"/>, <xref target="cache-response-directive.no-transform"/> 1980 2065 </c> 1981 2066 <c>only-if-cached</c> 1982 2067 <c> 1983 <xref target="cache-request-directive "/>2068 <xref target="cache-request-directive.only-if-cached"/> 1984 2069 </c> 1985 2070 <c>private</c> 1986 2071 <c> 1987 <xref target="cache-response-directive "/>2072 <xref target="cache-response-directive.private"/> 1988 2073 </c> 1989 2074 <c>proxy-revalidate</c> 1990 2075 <c> 1991 <xref target="cache-response-directive "/>2076 <xref target="cache-response-directive.proxy-revalidate"/> 1992 2077 </c> 1993 2078 <c>public</c> 1994 2079 <c> 1995 <xref target="cache-response-directive "/>2080 <xref target="cache-response-directive.only-if-cached"/> 1996 2081 </c> 1997 2082 <c>s-maxage</c> 1998 2083 <c> 1999 <xref target="cache-response-directive "/>2084 <xref target="cache-response-directive.s-maxage"/> 2000 2085 </c> 2001 2086 <c>stale-if-error</c> … … 2443 2528 ) 2444 2529 2445 <x:ref>cache-directive</x:ref> = cache-request-directive / cache-response-directive 2446 <x:ref>cache-extension</x:ref> = token [ "=" ( token / quoted-string ) ] 2447 <x:ref>cache-request-directive</x:ref> = "no-cache" / "no-store" / ( "max-age=" 2448 delta-seconds ) / ( "max-stale" [ "=" delta-seconds ] ) / ( 2449 "min-fresh=" delta-seconds ) / "no-transform" / "only-if-cached" / 2450 cache-extension 2451 <x:ref>cache-response-directive</x:ref> = "public" / ( "private" [ "=" DQUOTE *( "," 2452 OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / ( 2453 "no-cache" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS 2454 field-name ] ) DQUOTE ] ) / "no-store" / "no-transform" / 2455 "must-revalidate" / "proxy-revalidate" / ( "max-age=" delta-seconds 2456 ) / ( "s-maxage=" delta-seconds ) / cache-extension 2530 <x:ref>cache-directive</x:ref> = token [ "=" ( token / quoted-string ) ] 2457 2531 2458 2532 <x:ref>delta-seconds</x:ref> = 1*DIGIT … … 2501 2575 <list style="symbols"> 2502 2576 <t> 2577 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/307"/>: 2578 "untangle Cache-Control ABNF" 2579 </t> 2580 <t> 2503 2581 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/355"/>: 2504 2582 "Case sensitivity of header fields in CC values"
Note: See TracChangeset
for help on using the changeset viewer.