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

Changeset 1291


Ignore:
Timestamp:
2011-05-26 21:42:18 (3 years ago)
Author:
mnot@pobox.com
Message:

Explicitly allow cache-control extensions to override requirements; se #291

Location:
draft-ietf-httpbis/latest
Files:
2 edited

Legend:

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

    r1290 r1291  
    767767         </li> 
    768768      </ul> 
    769       <p id="rfc.section.2.1.p.2">In this context, a cache has "understood" a request method or a response status code if it recognises it and implements any 
     769      <p id="rfc.section.2.1.p.2">Note that any of the requirements listed above can be overridden by a cache-control extension; see <a href="#cache.control.extensions" title="Cache Control Extensions">Section&nbsp;3.2.3</a>. 
     770      </p> 
     771      <p id="rfc.section.2.1.p.3">In this context, a cache has "understood" a request method or a response status code if it recognises it and implements any 
    770772         cache-specific behaviour. In particular, 206 Partial Content responses cannot be cached by an implementation that does not 
    771773         handle partial content (see <a href="#errors.or.incomplete.response.cache.behavior" title="Storing Partial and Incomplete Responses">Section&nbsp;2.1.1</a>). 
    772774      </p> 
    773       <p id="rfc.section.2.1.p.3">Note that in normal operation, most caches will not store a response that has neither a cache validator nor an explicit expiration 
     775      <p id="rfc.section.2.1.p.4">Note that in normal operation, most caches will not store a response that has neither a cache validator nor an explicit expiration 
    774776         time, as such responses are not usually useful to store. However, caches are not prohibited from storing such responses. 
    775777      </p> 
     
    802804         </li> 
    803805      </ul> 
    804       <p id="rfc.section.2.2.p.2">When a stored response is used to satisfy a request without validation, a cache <em class="bcp14">MUST</em> include a single Age header field (<a href="#header.age" id="rfc.xref.header.age.1" title="Age">Section&nbsp;3.1</a>) in the response with a value equal to the stored response's current_age; see <a href="#age.calculations" title="Calculating Age">Section&nbsp;2.3.2</a>. 
    805       </p> 
    806       <p id="rfc.section.2.2.p.3">A cache <em class="bcp14">MUST</em> write through requests with methods that are unsafe (<a href="p2-semantics.html#safe.methods" title="Safe Methods">Section 7.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) to the origin server; i.e., a cache must not generate a reply to such a request before having forwarded the request and 
     806      <p id="rfc.section.2.2.p.2">Note that any of the requirements listed above can be overridden by a cache-control extension; see <a href="#cache.control.extensions" title="Cache Control Extensions">Section&nbsp;3.2.3</a>. 
     807      </p> 
     808      <p id="rfc.section.2.2.p.3">When a stored response is used to satisfy a request without validation, a cache <em class="bcp14">MUST</em> include a single Age header field (<a href="#header.age" id="rfc.xref.header.age.1" title="Age">Section&nbsp;3.1</a>) in the response with a value equal to the stored response's current_age; see <a href="#age.calculations" title="Calculating Age">Section&nbsp;2.3.2</a>. 
     809      </p> 
     810      <p id="rfc.section.2.2.p.4">A cache <em class="bcp14">MUST</em> write through requests with methods that are unsafe (<a href="p2-semantics.html#safe.methods" title="Safe Methods">Section 7.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.1"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) to the origin server; i.e., a cache must not generate a reply to such a request before having forwarded the request and 
    807811         having received a corresponding response. 
    808812      </p> 
    809       <p id="rfc.section.2.2.p.4">Also, note that unsafe requests might invalidate already stored responses; see <a href="#invalidation.after.updates.or.deletions" title="Request Methods that Invalidate">Section&nbsp;2.5</a>. 
    810       </p> 
    811       <p id="rfc.section.2.2.p.5">When more than one suitable response is stored, a cache <em class="bcp14">MUST</em> use the most recent response (as determined by the Date header field). It can also forward a request with "Cache-Control: 
     813      <p id="rfc.section.2.2.p.5">Also, note that unsafe requests might invalidate already stored responses; see <a href="#invalidation.after.updates.or.deletions" title="Request Methods that Invalidate">Section&nbsp;2.5</a>. 
     814      </p> 
     815      <p id="rfc.section.2.2.p.6">When more than one suitable response is stored, a cache <em class="bcp14">MUST</em> use the most recent response (as determined by the Date header field). It can also forward a request with "Cache-Control: 
    812816         max-age=0" or "Cache-Control: no-cache" to disambiguate which response to use. 
    813817      </p> 
    814       <p id="rfc.section.2.2.p.6">A cache that does not have a clock available <em class="bcp14">MUST NOT</em> use stored responses without revalidating them on every use. A cache, especially a shared cache, <em class="bcp14">SHOULD</em> use a mechanism, such as NTP <a href="#RFC1305" id="rfc.xref.RFC1305.1"><cite title="Network Time Protocol (Version 3) Specification, Implementation">[RFC1305]</cite></a>, to synchronize its clock with a reliable external standard. 
     818      <p id="rfc.section.2.2.p.7">A cache that does not have a clock available <em class="bcp14">MUST NOT</em> use stored responses without revalidating them on every use. A cache, especially a shared cache, <em class="bcp14">SHOULD</em> use a mechanism, such as NTP <a href="#RFC1305" id="rfc.xref.RFC1305.1"><cite title="Network Time Protocol (Version 3) Specification, Implementation">[RFC1305]</cite></a>, to synchronize its clock with a reliable external standard. 
    815819      </p> 
    816820      <h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3</a>&nbsp;<a id="expiration.model" href="#expiration.model">Freshness Model</a></h2> 
     
    18931897         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/197">http://tools.ietf.org/wg/httpbis/trac/ticket/197</a>&gt;: "Effect of CC directives on history lists" 
    18941898         </li> 
     1899         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/291">http://tools.ietf.org/wg/httpbis/trac/ticket/291</a>&gt;: "Cache Extensions can override no-store, etc." 
     1900         </li> 
    18951901      </ul> 
    18961902      <p id="rfc.section.C.10.p.2">Affected issues: </p> 
  • draft-ietf-httpbis/latest/p6-cache.xml

    r1290 r1291  
    482482</t> 
    483483<t> 
     484         Note that any of the requirements listed above can be overridden by a 
     485   cache-control extension; see <xref target="cache.control.extensions" />. 
     486</t> 
     487<t> 
    484488   In this context, a cache has "understood" a request method or a response 
    485489   status code if it recognises it and implements any cache-specific 
     
    541545      </t> 
    542546  </list> 
     547</t> 
     548<t> 
     549         Note that any of the requirements listed above can be overridden by a 
     550   cache-control extension; see <xref target="cache.control.extensions" />. 
    543551</t> 
    544552<t> 
     
    25692577      "Effect of CC directives on history lists" 
    25702578    </t> 
     2579    <t> 
     2580                  <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/291" />: 
     2581                  "Cache Extensions can override no-store, etc." 
     2582                </t> 
    25712583  </list> 
    25722584</t> 
Note: See TracChangeset for help on using the changeset viewer.