* WGs marked with an * asterisk has had at least one new draft made available during the last 5 days

Ticket #307: 307.2.diff

File 307.2.diff, 30.0 KB (added by julian.reschke@gmx.de, 2 years ago)

Proposed patch

  • p6-cache.xml

     
    11841184      x:for-anchor="" /> 
    11851185   <x:anchor-alias value="Cache-Control"/> 
    11861186   <x:anchor-alias value="cache-directive"/> 
    1187    <x:anchor-alias value="cache-extension"/> 
    1188    <x:anchor-alias value="cache-request-directive"/> 
    1189    <x:anchor-alias value="cache-response-directive"/> 
    11901187<t> 
    11911188   The "Cache-Control" header field is used to specify directives for 
    11921189   caches along the request/response chain. Such cache directives are 
     
    12131210   to all recipients along the request/response chain. It is not possible to  
    12141211   target a directive to a specific cache. 
    12151212</t> 
    1216 <t>Cache directives are identified by a token, to be compared case-insensitively, and have an optional argument.</t> 
    1217 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Cache-Control"/><iref primary="true" item="Grammar" subitem="cache-extension"/> 
     1213<t> 
     1214   Cache directives are identified by a token, to be compared case-insensitively, 
     1215   and have an optional argument, that can use both token and quoted-string 
     1216   syntax. For the directives defined below, recipients ought to accept both 
     1217   forms, even if one is documented to be preferred. For any other directive, 
     1218   recipients &MUST; accept both forms.  
     1219</t> 
     1220<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Cache-Control"/><iref primary="true" item="Grammar" subitem="cache-directive"/> 
    12181221  <x:ref>Cache-Control</x:ref>   = 1#<x:ref>cache-directive</x:ref> 
    12191222 
    1220   <x:ref>cache-directive</x:ref> = <x:ref>cache-request-directive</x:ref> 
    1221      / <x:ref>cache-response-directive</x:ref> 
    1222  
    1223   <x:ref>cache-extension</x:ref> = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> ) ] 
     1223  <x:ref>cache-directive</x:ref> = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> ) ] 
    12241224</artwork></figure> 
     1225<t> 
     1226   For the cache directives defined below, no argument is defined (nor allowed) 
     1227   otherwise stated otherwise. 
     1228</t> 
    12251229 
    12261230<section anchor="cache-request-directive"  
    12271231   title="Request Cache-Control Directives"> 
    1228    <x:anchor-alias value="cache-request-directive" /> 
    12291232 
    1230 <figure><artwork type="abnf2616"><iref item="Grammar" primary="true"  
    1231    subitem="cache-request-directive" /> 
    1232   <x:ref>cache-request-directive</x:ref> = 
    1233        "no-cache" 
    1234      / "no-store" 
    1235      / "max-age" "=" <x:ref>delta-seconds</x:ref> 
    1236      / "max-stale" [ "=" <x:ref>delta-seconds</x:ref> ] 
    1237      / "min-fresh" "=" <x:ref>delta-seconds</x:ref> 
    1238      / "no-transform" 
    1239      / "only-if-cached" 
    1240      / <x:ref>cache-extension</x:ref> 
    1241 </artwork></figure> 
    1242  
    1243 <t> 
    1244    <x:dfn>no-cache</x:dfn> 
     1233<section title="no-cache" anchor="cache-request-directive.no-cache"> 
    12451234   <iref item="Cache Directives" primary="true" subitem="no-cache" /> 
    12461235   <iref item="no-cache" primary="true" subitem="Cache Directive" /> 
    1247    <list> 
    1248       <t>The no-cache request directive indicates that a cache &MUST-NOT;  
    1249       use a stored response to satisfy the request without successful  
    1250       validation on the origin server.</t>  
    1251    </list> 
     1236<t> 
     1237   The no-cache request directive indicates that a cache &MUST-NOT;  
     1238   use a stored response to satisfy the request without successful  
     1239   validation on the origin server. 
    12521240</t> 
    1253 <t> 
    1254    <x:dfn>no-store</x:dfn> 
     1241</section> 
     1242  
     1243<section title="no-store" anchor="cache-request-directive.no-store"> 
    12551244   <iref item="Cache Directives" primary="true" subitem="no-store" /> 
    12561245   <iref item="no-store" primary="true" subitem="Cache Directive" /> 
    1257    <list> 
    1258       <t>The no-store request directive indicates that a cache &MUST-NOT; 
    1259       store any part of either this request or any response to it. This 
    1260       directive applies to both private and shared caches. "&MUST-NOT; 
    1261       store" in this context means that the cache &MUST-NOT; intentionally 
    1262       store the information in non-volatile storage, and &MUST; make a 
    1263       best-effort attempt to remove the information from volatile storage as 
    1264       promptly as possible after forwarding it.</t> 
    1265       <t>This directive is NOT a reliable or sufficient mechanism for ensuring 
    1266       privacy. In particular, malicious or compromised caches might not 
    1267       recognize or obey this directive, and communications networks might be 
    1268       vulnerable to eavesdropping.</t> 
    1269       <t>Note that if a request containing this directive is satisfied from a 
    1270       cache, the no-store request directive does not apply to the already 
    1271       stored response.</t> 
    1272    </list> 
     1246<t> 
     1247   The no-store request directive indicates that a cache &MUST-NOT; 
     1248   store any part of either this request or any response to it. This 
     1249   directive applies to both private and shared caches. "&MUST-NOT; 
     1250   store" in this context means that the cache &MUST-NOT; intentionally 
     1251   store the information in non-volatile storage, and &MUST; make a 
     1252   best-effort attempt to remove the information from volatile storage as 
     1253   promptly as possible after forwarding it. 
    12731254</t> 
    12741255<t> 
    1275    <x:dfn>max-age</x:dfn> 
     1256   This directive is NOT a reliable or sufficient mechanism for ensuring 
     1257   privacy. In particular, malicious or compromised caches might not 
     1258   recognize or obey this directive, and communications networks might be 
     1259   vulnerable to eavesdropping. 
     1260</t> 
     1261<t> 
     1262   Note that if a request containing this directive is satisfied from a 
     1263   cache, the no-store request directive does not apply to the already 
     1264   stored response. 
     1265</t> 
     1266</section> 
     1267 
     1268<section title="max-age" anchor="cache-request-directive.max-age"> 
    12761269   <iref item="Cache Directives" primary="true" subitem="max-age" /> 
    12771270   <iref item="max-age" primary="true" subitem="Cache Directive" /> 
     1271<t> 
     1272   Argument syntax: 
    12781273   <list> 
    1279       <t>The max-age request directive indicates that the client is unwilling to 
    1280       accept a response whose age is greater than the specified number of 
    1281       seconds. Unless the max-stale request directive is also present, the 
    1282       client is not willing to accept a stale response.</t> 
     1274      <t> 
     1275        <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 
     1276      </t> 
    12831277   </list> 
    12841278</t> 
    12851279<t> 
    1286    <x:dfn>max-stale</x:dfn> 
     1280   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. 
     1284</t> 
     1285<t> 
     1286   <x:h>Note:</x:h> the preferred syntax for this argument is "token". 
     1287   For compatibility with non-robust recipients, arguments &SHOULD; be sent 
     1288   using the token syntax. 
     1289</t> 
     1290</section> 
     1291 
     1292<section title="max-stale" anchor="cache-request-directive.max-stale"> 
    12871293   <iref item="Cache Directives" primary="true" subitem="max-stale" /> 
    12881294   <iref item="max-stale" primary="true" subitem="Cache Directive" /> 
     1295<t> 
     1296   Argument syntax: 
    12891297   <list> 
    1290       <t>The max-stale request directive indicates that the client is willing 
    1291       to accept a response that has exceeded its expiration time. If max-stale 
    1292       is assigned a value, then the client is willing to accept a response 
    1293       that has exceeded its expiration time by no more than the specified 
    1294       number of seconds. If no value is assigned to max-stale, then the client 
    1295       is willing to accept a stale response of any age.</t> 
     1298      <t> 
     1299        <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 
     1300      </t> 
    12961301   </list> 
    12971302</t> 
    12981303<t> 
    1299    <x:dfn>min-fresh</x:dfn> 
     1304   The max-stale request directive indicates that the client is willing 
     1305   to accept a response that has exceeded its expiration time. If max-stale 
     1306   is assigned a value, then the client is willing to accept a response 
     1307   that has exceeded its expiration time by no more than the specified 
     1308   number of seconds. If no value is assigned to max-stale, then the client 
     1309   is willing to accept a stale response of any age. 
     1310</t> 
     1311<t> 
     1312   <x:h>Note:</x:h> the preferred syntax for this argument is "token". 
     1313   For compatibility with non-robust recipients, arguments &SHOULD; be sent 
     1314   using the token syntax. 
     1315</t> 
     1316</section> 
     1317 
     1318<section title="min-fresh" anchor="cache-request-directive.min-fresh"> 
    13001319   <iref item="Cache Directives" primary="true" subitem="min-fresh" /> 
    13011320   <iref item="min-fresh" primary="true" subitem="Cache Directive" /> 
     1321<t> 
     1322   Argument syntax: 
    13021323   <list> 
    1303       <t>The min-fresh request directive indicates that the client is willing 
    1304       to accept a response whose freshness lifetime is no less than its 
    1305       current age plus the specified time in seconds. That is, the client 
    1306       wants a response that will still be fresh for at least the specified 
    1307       number of seconds.</t> 
     1324      <t> 
     1325        <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 
     1326      </t> 
    13081327   </list> 
    13091328</t> 
    13101329<t> 
    1311    <x:dfn>no-transform</x:dfn> 
     1330   The min-fresh request directive indicates that the client is willing 
     1331   to accept a response whose freshness lifetime is no less than its 
     1332   current age plus the specified time in seconds. That is, the client 
     1333   wants a response that will still be fresh for at least the specified 
     1334   number of seconds. 
     1335</t> 
     1336</section> 
     1337 
     1338<section title="no-transform" anchor="cache-request-directive.no-transform"> 
    13121339   <iref item="Cache Directives" primary="true" subitem="no-transform" /> 
    13131340   <iref item="no-transform" primary="true" subitem="Cache Directive" /> 
    1314    <list> 
    1315       <t>The no-transform request directive indicates that an intermediary 
    1316         (whether or not it implements a cache) &MUST-NOT; change the  
    1317         Content-Encoding, Content-Range or Content-Type request header fields,  
    1318         nor the request representation.</t> 
    1319    </list> 
     1341<t> 
     1342   The no-transform request directive indicates that an intermediary 
     1343   (whether or not it implements a cache) &MUST-NOT; change the  
     1344   Content-Encoding, Content-Range or Content-Type request header fields,  
     1345   nor the request representation. 
    13201346</t> 
    1321 <t> 
    1322    <x:dfn>only-if-cached</x:dfn> 
     1347</section> 
     1348 
     1349<section title="only-if-cached" anchor="cache-request-directive.only-if-cached"> 
    13231350   <iref item="Cache Directives" primary="true" subitem="only-if-cached" /> 
    13241351   <iref item="only-if-cached" primary="true" subitem="Cache Directive" /> 
    1325    <list> 
    1326       <t>The only-if-cached request directive indicates that the client only 
    1327       wishes to obtain a stored response. If it receives this directive, a 
    1328       cache &SHOULD; either respond using a stored response that is consistent 
    1329       with the other constraints of the request, or respond with a 504 
    1330       (Gateway Timeout) status code. If a group of caches is being operated as 
    1331       a unified system with good internal connectivity, a member cache &MAY; 
    1332       forward such a request within that group of caches.</t> 
    1333    </list> 
     1352<t> 
     1353   The only-if-cached request directive indicates that the client only 
     1354   wishes to obtain a stored response. If it receives this directive, a 
     1355   cache &SHOULD; either respond using a stored response that is consistent 
     1356   with the other constraints of the request, or respond with a 504 
     1357   (Gateway Timeout) status code. If a group of caches is being operated as 
     1358   a unified system with good internal connectivity, a member cache &MAY; 
     1359   forward such a request within that group of caches. 
    13341360</t> 
    13351361</section> 
     1362</section> 
    13361363 
    13371364<section anchor="cache-response-directive"  
    13381365   title="Response Cache-Control Directives"> 
    13391366   <x:anchor-alias value="cache-response-directive" /> 
    13401367 
    1341 <figure><artwork type="abnf2616"><iref item="Grammar" primary="true"  
    1342    subitem="cache-response-directive" /> 
    1343   <x:ref>cache-response-directive</x:ref> = 
    1344        "public" 
    1345      / "private" [ "=" <x:ref>DQUOTE</x:ref> 1#<x:ref>field-name</x:ref> <x:ref>DQUOTE</x:ref> ] 
    1346      / "no-cache" [ "=" <x:ref>DQUOTE</x:ref> 1#<x:ref>field-name</x:ref> <x:ref>DQUOTE</x:ref> ] 
    1347      / "no-store" 
    1348      / "no-transform" 
    1349      / "must-revalidate" 
    1350      / "proxy-revalidate" 
    1351      / "max-age" "=" <x:ref>delta-seconds</x:ref> 
    1352      / "s-maxage" "=" <x:ref>delta-seconds</x:ref> 
    1353      / <x:ref>cache-extension</x:ref> 
    1354 </artwork></figure> 
    1355  
    1356 <t> 
    1357    <x:dfn>public</x:dfn> 
     1368<section title="public" anchor="cache-response-directive.only-if-cached"> 
    13581369   <iref item="Cache Directives" primary="true" subitem="public" /> 
    13591370   <iref item="public" primary="true" subitem="Cache Directive" /> 
    1360    <list> 
    1361       <t>The public response directive indicates that a response whose  
    1362         associated request contains an 'Authentication' header &MAY; be  
    1363         stored (see <xref target="caching.authenticated.responses" />).</t> 
    1364   </list> 
     1371<t> 
     1372   The public response directive indicates that a response whose  
     1373   associated request contains an 'Authentication' header &MAY; be  
     1374   stored (see <xref target="caching.authenticated.responses" />). 
    13651375</t> 
    1366 <t> 
    1367    <x:dfn>private</x:dfn> 
     1376</section> 
     1377 
     1378<section title="private" anchor="cache-response-directive.private"> 
    13681379   <iref item="Cache Directives" primary="true" subitem="private" /> 
    13691380   <iref item="private" primary="true" subitem="Cache Directive" /> 
     1381<t> 
     1382   Argument syntax: 
    13701383   <list> 
    1371       <t>The private response directive indicates that the response message is 
    1372       intended for a single user and &MUST-NOT; be stored by a shared cache. A 
    1373       private cache &MAY; store the response.</t> 
    1374       <t>If the private response directive specifies one or more field-names, 
    1375       this requirement is limited to the field-values associated with the 
    1376       listed response header fields. That is, a shared cache &MUST-NOT; store 
    1377       the specified field-names(s), whereas it &MAY; store the remainder of the 
    1378       response message.</t> 
    1379       <t>The field-names given are not limited to the set of standard header 
    1380       fields defined by this specification. Field names are case-insensitive. 
     1384      <t> 
     1385        #<x:ref>field-name</x:ref> 
    13811386      </t> 
    1382       <t> <x:h>Note:</x:h> This usage of the word "private" only controls 
    1383       where the response can be stored; it cannot ensure the privacy of the 
    1384       message content. Also, private response directives with field-names are 
    1385       often handled by implementations as if an unqualified private directive 
    1386       was received; i.e., the special handling for the qualified form is not 
    1387       widely implemented.</t> 
    13881387   </list> 
    13891388</t> 
    13901389<t> 
    1391    <x:dfn>no-cache</x:dfn> 
     1390   The private response directive indicates that the response message is 
     1391   intended for a single user and &MUST-NOT; be stored by a shared cache. A 
     1392   private cache &MAY; store the response. 
     1393</t> 
     1394<t> 
     1395   If the private response directive specifies one or more field-names, 
     1396   this requirement is limited to the field-values associated with the 
     1397   listed response header fields. That is, a shared cache &MUST-NOT; store 
     1398   the specified field-names(s), whereas it &MAY; store the remainder of the 
     1399   response message. 
     1400</t> 
     1401<t> 
     1402   The field-names given are not limited to the set of standard header 
     1403   fields defined by this specification. Field names are case-insensitive. 
     1404</t> 
     1405<t> 
     1406   <x:h>Note:</x:h> This usage of the word "private" only controls 
     1407   where the response can be stored; it cannot ensure the privacy of the 
     1408   message content. Also, private response directives with field-names are 
     1409   often handled by implementations as if an unqualified private directive 
     1410   was received; i.e., the special handling for the qualified form is not 
     1411   widely implemented. 
     1412</t> 
     1413<t> 
     1414   <x:h>Note:</x:h> the preferred syntax for this argument is "quoted-string". 
     1415   For compatibility with non-robust recipients, even a single-entry list of 
     1416   field names &SHOULD; be sent using the quoted-string syntax. 
     1417</t> 
     1418</section> 
     1419 
     1420<section title="no-cache" anchor="cache-response-directive.no-cache"> 
    13921421   <iref item="Cache Directives" primary="true" subitem="no-cache" /> 
    13931422   <iref item="no-cache" primary="true" subitem="Cache Directive" /> 
     1423<t> 
     1424   Argument syntax: 
    13941425   <list> 
    1395       <t>The no-cache response directive indicates that the response &MUST-NOT; 
    1396       be used to satisfy a subsequent request without successful validation on 
    1397       the origin server. This allows an origin server to prevent a cache from 
    1398       using it to satisfy a request without contacting it, even by caches that 
    1399       have been configured to return stale responses.</t> 
    1400       <t>If the no-cache response directive specifies one or more field-names, 
    1401       then a cache &MAY; use the response to satisfy a subsequent request, 
    1402       subject to any other restrictions on caching. However, any header fields 
    1403       in the response that have the field-name(s) listed &MUST-NOT; be sent 
    1404       in the response to a subsequent request without successful revalidation 
    1405       with the origin server. This allows an origin server to prevent the 
    1406       re-use of certain header fields in a response, while still allowing 
    1407       caching of the rest of the response.</t>  
    1408       <t>The field-names given are not limited to the set of standard header 
    1409       fields defined by this specification. Field names are case-insensitive. 
     1426      <t> 
     1427        #<x:ref>field-name</x:ref> 
    14101428      </t> 
    1411       <t> <x:h>Note:</x:h> Most HTTP/1.0 caches will not recognize or obey 
    1412       this directive. Also, no-cache response directives with field-names are 
    1413       often handled by implementations as if an unqualified no-cache directive 
    1414       was received; i.e., the special handling for the qualified form is not 
    1415       widely implemented.</t> 
    14161429   </list> 
    14171430</t> 
    14181431<t> 
    1419    <x:dfn>no-store</x:dfn> 
     1432   The no-cache response directive indicates that the response &MUST-NOT; 
     1433   be used to satisfy a subsequent request without successful validation on 
     1434   the origin server. This allows an origin server to prevent a cache from 
     1435   using it to satisfy a request without contacting it, even by caches that 
     1436   have been configured to return stale responses. 
     1437</t> 
     1438<t> 
     1439   If the no-cache response directive specifies one or more field-names, 
     1440   then a cache &MAY; use the response to satisfy a subsequent request, 
     1441   subject to any other restrictions on caching. However, any header fields 
     1442   in the response that have the field-name(s) listed &MUST-NOT; be sent 
     1443   in the response to a subsequent request without successful revalidation 
     1444   with the origin server. This allows an origin server to prevent the 
     1445   re-use of certain header fields in a response, while still allowing 
     1446   caching of the rest of the response. 
     1447</t>  
     1448<t> 
     1449   The field-names given are not limited to the set of standard header 
     1450   fields defined by this specification. Field names are case-insensitive. 
     1451</t> 
     1452<t> 
     1453   <x:h>Note:</x:h> Most HTTP/1.0 caches will not recognize or obey 
     1454   this directive. Also, no-cache response directives with field-names are 
     1455   often handled by implementations as if an unqualified no-cache directive 
     1456   was received; i.e., the special handling for the qualified form is not 
     1457   widely implemented. 
     1458</t> 
     1459<t> 
     1460   <x:h>Note:</x:h> the preferred syntax for this argument is "quoted-string". 
     1461   For compatibility with non-robust recipients, even a single-entry list of 
     1462   field names &SHOULD; be sent using the quoted-string syntax. 
     1463</t> 
     1464</section> 
     1465 
     1466<section title="no-store" anchor="cache-response-directive.no-store"> 
    14201467   <iref item="Cache Directives" primary="true" subitem="no-store" /> 
    14211468   <iref item="no-store" primary="true" subitem="Cache Directive" /> 
    1422    <list> 
    1423       <t>The no-store response directive indicates that a cache &MUST-NOT; 
    1424       store any part of either the immediate request or response. This 
    1425       directive applies to both private and shared caches. "&MUST-NOT; 
    1426       store" in this context means that the cache &MUST-NOT; intentionally 
    1427       store the information in non-volatile storage, and &MUST; make a 
    1428       best-effort attempt to remove the information from volatile storage as 
    1429       promptly as possible after forwarding it.</t> 
    1430       <t>This directive is NOT a reliable or sufficient mechanism for ensuring 
    1431       privacy. In particular, malicious or compromised caches might not 
    1432       recognize or obey this directive, and communications networks might be 
    1433       vulnerable to eavesdropping.</t> 
    1434    </list> 
     1469<t> 
     1470   The no-store response directive indicates that a cache &MUST-NOT; 
     1471   store any part of either the immediate request or response. This 
     1472   directive applies to both private and shared caches. "&MUST-NOT; 
     1473   store" in this context means that the cache &MUST-NOT; intentionally 
     1474   store the information in non-volatile storage, and &MUST; make a 
     1475   best-effort attempt to remove the information from volatile storage as 
     1476   promptly as possible after forwarding it. 
    14351477</t> 
    14361478<t> 
    1437    <x:dfn>must-revalidate</x:dfn> 
     1479   This directive is NOT a reliable or sufficient mechanism for ensuring 
     1480   privacy. In particular, malicious or compromised caches might not 
     1481   recognize or obey this directive, and communications networks might be 
     1482   vulnerable to eavesdropping. 
     1483</t> 
     1484</section> 
     1485 
     1486<section title="must-revalidate" anchor="cache-response-directive.must-revalidate"> 
    14381487   <iref item="Cache Directives" primary="true" subitem="must-revalidate" /> 
    14391488   <iref item="must-revalidate" primary="true" subitem="Cache Directive" /> 
    1440    <list> 
    1441       <t>The must-revalidate response directive indicates that once it has 
    1442       become stale, a cache &MUST-NOT; use the response to satisfy subsequent 
    1443       requests without successful validation on the origin server.</t> 
    1444       <t>The must-revalidate directive is necessary to support reliable 
    1445       operation for certain protocol features. In all circumstances a 
    1446       cache &MUST; obey the must-revalidate directive; in particular, 
    1447       if a cache cannot reach the origin server for any reason, it &MUST; 
    1448       generate a 504 (Gateway Timeout) response.</t> 
    1449       <t>The must-revalidate directive ought to be used by servers if and only 
    1450       if failure to validate a request on the representation could result in 
    1451       incorrect operation, such as a silently unexecuted financial 
    1452       transaction.</t> 
    1453    </list> 
     1489<t> 
     1490   The must-revalidate response directive indicates that once it has 
     1491   become stale, a cache &MUST-NOT; use the response to satisfy subsequent 
     1492   requests without successful validation on the origin server. 
    14541493</t> 
    14551494<t> 
    1456    <x:dfn>proxy-revalidate</x:dfn> 
     1495   The must-revalidate directive is necessary to support reliable 
     1496   operation for certain protocol features. In all circumstances a 
     1497   cache &MUST; obey the must-revalidate directive; in particular, 
     1498   if a cache cannot reach the origin server for any reason, it &MUST; 
     1499   generate a 504 (Gateway Timeout) response. 
     1500</t> 
     1501<t> 
     1502   The must-revalidate directive ought to be used by servers if and only 
     1503   if failure to validate a request on the representation could result in 
     1504   incorrect operation, such as a silently unexecuted financial 
     1505   transaction. 
     1506</t> 
     1507</section> 
     1508 
     1509<section title="proxy-revalidate" anchor="cache-response-directive.proxy-revalidate"> 
    14571510   <iref item="Cache Directives" primary="true" subitem="proxy-revalidate" /> 
    14581511   <iref item="proxy-revalidate" primary="true" subitem="Cache Directive" /> 
    1459    <list> 
    1460       <t>The proxy-revalidate response directive has the same meaning as the 
    1461       must-revalidate response directive, except that it does not apply to 
    1462       private caches.</t> 
    1463    </list> 
     1512<t> 
     1513   The proxy-revalidate response directive has the same meaning as the 
     1514   must-revalidate response directive, except that it does not apply to 
     1515   private caches. 
    14641516</t> 
    1465 <t> 
    1466    <x:dfn>max-age</x:dfn> 
     1517</section> 
     1518 
     1519<section title="max-age" anchor="cache-response-directive.max-age"> 
    14671520   <iref item="Cache Directives" primary="true" subitem="max-age" /> 
    14681521   <iref item="max-age" primary="true" subitem="Cache Directive" /> 
     1522<t> 
     1523   Argument syntax: 
    14691524   <list> 
    1470       <t>The max-age response directive indicates that the response is to be 
    1471       considered stale after its age is greater than the specified number of 
    1472       seconds.</t> 
     1525      <t> 
     1526        <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 
     1527      </t> 
    14731528   </list> 
    14741529</t> 
    14751530<t> 
    1476    <x:dfn>s-maxage</x:dfn> 
     1531   The max-age response directive indicates that the response is to be 
     1532   considered stale after its age is greater than the specified number of 
     1533   seconds. 
     1534</t> 
     1535<t> 
     1536   <x:h>Note:</x:h> the preferred syntax for this argument is "token". 
     1537   For compatibility with non-robust recipients, arguments &SHOULD; be sent 
     1538   using the token syntax. 
     1539</t> 
     1540</section>       
     1541 
     1542<section title="s-maxage" anchor="cache-response-directive.s-maxage"> 
    14771543   <iref item="Cache Directives" primary="true" subitem="s-maxage" /> 
    14781544   <iref item="s-maxage" primary="true" subitem="Cache Directive" /> 
     1545<t> 
     1546   Argument syntax: 
    14791547   <list> 
    1480       <t>The s-maxage response directive indicates that, in shared caches, the 
    1481       maximum age specified by this directive overrides the maximum age 
    1482       specified by either the max-age directive or the Expires header field. The 
    1483       s-maxage directive also implies the semantics of the proxy-revalidate 
    1484       response directive.</t> 
     1548      <t> 
     1549        <x:ref>delta-seconds</x:ref> (see <xref target="delta-seconds"/>) 
     1550      </t> 
    14851551   </list> 
    14861552</t> 
    14871553<t> 
    1488    <x:dfn>no-transform</x:dfn> 
     1554   The s-maxage response directive indicates that, in shared caches, the 
     1555   maximum age specified by this directive overrides the maximum age 
     1556   specified by either the max-age directive or the Expires header field. The 
     1557   s-maxage directive also implies the semantics of the proxy-revalidate 
     1558   response directive. 
     1559</t> 
     1560<t> 
     1561   <x:h>Note:</x:h> the preferred syntax for this argument is "token". 
     1562   For compatibility with non-robust recipients, arguments &SHOULD; be sent 
     1563   using the token syntax. 
     1564</t> 
     1565</section> 
     1566 
     1567<section title="no-transform" anchor="cache-response-directive.no-transform"> 
    14891568   <iref item="Cache Directives" primary="true" subitem="no-transform" /> 
    14901569   <iref item="no-transform" primary="true" subitem="Cache Directive" /> 
    1491    <list> 
    1492       <t>The no-transform response directive indicates that an intermediary 
    1493       (regardless of whether it implements a cache) &MUST-NOT; change the  
    1494       Content-Encoding, Content-Range or Content-Type response header fields,  
    1495       nor the response representation.</t> 
    1496    </list> 
     1570<t> 
     1571   The no-transform response directive indicates that an intermediary 
     1572   (regardless of whether it implements a cache) &MUST-NOT; change the  
     1573   Content-Encoding, Content-Range or Content-Type response header fields,  
     1574   nor the response representation. 
    14971575</t> 
     1576</section> 
    14981577 
    14991578</section> 
    15001579 
     
    19512030 
    19522031   <c>max-age</c> 
    19532032   <c> 
    1954       <xref target="cache-request-directive"/>, <xref target="cache-response-directive"/> 
     2033      <xref target="cache-request-directive.max-age"/>, <xref target="cache-response-directive.max-age"/> 
    19552034   </c> 
    19562035   <c>max-stale</c> 
    19572036   <c> 
    1958       <xref target="cache-request-directive"/> 
     2037      <xref target="cache-request-directive.max-stale"/> 
    19592038   </c> 
    19602039   <c>min-fresh</c> 
    19612040   <c> 
    1962       <xref target="cache-request-directive"/> 
     2041      <xref target="cache-request-directive.min-fresh"/> 
    19632042   </c> 
    19642043   <c>must-revalidate</c> 
    19652044   <c> 
    1966       <xref target="cache-response-directive"/> 
     2045      <xref target="cache-response-directive.must-revalidate"/> 
    19672046   </c> 
    19682047   <c>no-cache</c> 
    19692048   <c> 
    1970       <xref target="cache-request-directive"/>, <xref target="cache-response-directive"/> 
     2049      <xref target="cache-request-directive.no-cache"/>, <xref target="cache-response-directive.no-cache"/> 
    19712050   </c> 
    19722051   <c>no-store</c> 
    19732052   <c> 
    1974       <xref target="cache-request-directive"/>, <xref target="cache-response-directive"/> 
     2053      <xref target="cache-request-directive.no-store"/>, <xref target="cache-response-directive.no-store"/> 
    19752054   </c> 
    19762055   <c>no-transform</c> 
    19772056   <c> 
    1978       <xref target="cache-request-directive"/>, <xref target="cache-response-directive"/> 
     2057      <xref target="cache-request-directive.no-transform"/>, <xref target="cache-response-directive.no-transform"/> 
    19792058   </c> 
    19802059   <c>only-if-cached</c> 
    19812060   <c> 
    1982       <xref target="cache-request-directive"/> 
     2061      <xref target="cache-request-directive.only-if-cached"/> 
    19832062   </c> 
    19842063   <c>private</c> 
    19852064   <c> 
    1986       <xref target="cache-response-directive"/> 
     2065      <xref target="cache-response-directive.private"/> 
    19872066   </c> 
    19882067   <c>proxy-revalidate</c> 
    19892068   <c> 
    1990       <xref target="cache-response-directive"/> 
     2069      <xref target="cache-response-directive.proxy-revalidate"/> 
    19912070   </c> 
    19922071   <c>public</c> 
    19932072   <c> 
    1994       <xref target="cache-response-directive"/> 
     2073      <xref target="cache-response-directive.only-if-cached"/> 
    19952074   </c> 
    19962075   <c>s-maxage</c> 
    19972076   <c> 
    1998       <xref target="cache-response-directive"/> 
     2077      <xref target="cache-response-directive.s-maxage"/> 
    19992078   </c> 
    20002079   <c>stale-if-error</c> 
    20012080   <c> 
     
    24412520<x:ref>Warning</x:ref> = *( "," OWS ) warning-value *( OWS "," [ OWS warning-value ] 
    24422521 ) 
    24432522 
    2444 <x:ref>cache-directive</x:ref> = cache-request-directive / cache-response-directive 
    2445 <x:ref>cache-extension</x:ref> = token [ "=" ( token / quoted-string ) ] 
    2446 <x:ref>cache-request-directive</x:ref> = "no-cache" / "no-store" / ( "max-age=" 
    2447  delta-seconds ) / ( "max-stale" [ "=" delta-seconds ] ) / ( 
    2448  "min-fresh=" delta-seconds ) / "no-transform" / "only-if-cached" / 
    2449  cache-extension 
    2450 <x:ref>cache-response-directive</x:ref> = "public" / ( "private" [ "=" DQUOTE *( "," 
    2451  OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / ( 
    2452  "no-cache" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS 
    2453  field-name ] ) DQUOTE ] ) / "no-store" / "no-transform" / 
    2454  "must-revalidate" / "proxy-revalidate" / ( "max-age=" delta-seconds 
    2455  ) / ( "s-maxage=" delta-seconds ) / cache-extension 
     2523<x:ref>cache-directive</x:ref> = token [ "=" ( token / quoted-string ) ] 
    24562524 
    24572525<x:ref>delta-seconds</x:ref> = 1*DIGIT 
    24582526