Ignore:
Timestamp:
Jan 27, 2013, 2:46:43 AM (7 years ago)
Author:
fielding@…
Message:

Indicate certain status codes as cacheable by default instead of heuristics allowed; Use requirement on heuristics to allow them to be used only when cacheable by default or indicated as cacheable via public directive; Addresses #223

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p2-semantics.html

    r2163 r2166  
    449449  }
    450450  @bottom-center {
    451        content: "Expires July 29, 2013";
     451       content: "Expires July 31, 2013";
    452452  }
    453453  @bottom-right {
     
    494494      <meta name="dct.creator" content="Reschke, J. F.">
    495495      <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p2-semantics-latest">
    496       <meta name="dct.issued" scheme="ISO8601" content="2013-01-25">
     496      <meta name="dct.issued" scheme="ISO8601" content="2013-01-27">
    497497      <meta name="dct.replaces" content="urn:ietf:rfc:2616">
    498498      <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.">
     
    522522            <tr>
    523523               <td class="left">Intended status: Standards Track</td>
    524                <td class="right">January 25, 2013</td>
     524               <td class="right">January 27, 2013</td>
    525525            </tr>
    526526            <tr>
    527                <td class="left">Expires: July 29, 2013</td>
     527               <td class="left">Expires: July 31, 2013</td>
    528528               <td class="right"></td>
    529529            </tr>
     
    553553         in progress”.
    554554      </p>
    555       <p>This Internet-Draft will expire on July 29, 2013.</p>
     555      <p>This Internet-Draft will expire on July 31, 2013.</p>
    556556      <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1>
    557557      <p>Copyright © 2013 IETF Trust and the persons identified as the document authors. All rights reserved.</p>
     
    23972397      </div>
    23982398      <p id="rfc.section.6.1.p.2">Note that this list is not exhaustive — it does not include extension status codes defined in other specifications.</p>
     2399      <p id="rfc.section.6.1.p.3">Responses with status codes that are defined as cacheable by default (e.g., 200, 203, 206, 300, 301, and 410 in this specification)
     2400         can be reused by a cache with heuristic expiration unless otherwise indicated by the method definition or explicit cache controls <a href="#Part6" id="rfc.xref.Part6.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>; all other status codes are not cacheable by default.
     2401      </p>
    23992402      <h2 id="rfc.section.6.2"><a href="#rfc.section.6.2">6.2</a>&nbsp;<a id="status.1xx" href="#status.1xx">Informational 1xx</a></h2>
    24002403      <div id="rfc.iref.72"></div>
     
    24582461         200 response header block.
    24592462      </p>
    2460       <p id="rfc.section.6.3.1.p.3">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.10"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 200 responses.
     2463      <p id="rfc.section.6.3.1.p.3">A 200 response is cacheable unless otherwise indicated by the method definition or explicit cache controls (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).
    24612464      </p>
    24622465      <div id="rfc.iref.74"></div>
     
    24852488         applicable along the same request path (through the same proxies).
    24862489      </p>
    2487       <p id="rfc.section.6.3.4.p.2">The 203 response is similar to the Warning code of 214 Transformation Applied (<a href="p6-cache.html#header.warning" title="Warning">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.11"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>), which has the advantage of being applicable to responses with any status code.
     2490      <p id="rfc.section.6.3.4.p.2">The 203 response is similar to the Warning code of 214 Transformation Applied (<a href="p6-cache.html#header.warning" title="Warning">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>), which has the advantage of being applicable to responses with any status code.
     2491      </p>
     2492      <p id="rfc.section.6.3.4.p.3">A 203 response is cacheable unless otherwise indicated by the method definition or explicit cache controls (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).
    24882493      </p>
    24892494      <div id="rfc.iref.74"></div>
     
    25682573         for such automatic selection.
    25692574      </p>
    2570       <p id="rfc.section.6.4.1.p.4">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.12"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 300 responses.
     2575      <p id="rfc.section.6.4.1.p.4">A 300 response is cacheable unless otherwise indicated by the method definition or explicit cache controls (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).
    25712576      </p>
    25722577      <div class="note" id="rfc.section.6.4.1.p.5">
     
    25902595         </p>
    25912596      </div>
    2592       <p id="rfc.section.6.4.2.p.4">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 301 responses.
     2597      <p id="rfc.section.6.4.2.p.4">A 301 response is cacheable unless otherwise indicated by the method definition or explicit cache controls (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.15"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).
    25932598      </p>
    25942599      <div id="rfc.iref.75"></div>
     
    27132718         any length of time — that is left to the discretion of the server owner.
    27142719      </p>
    2715       <p id="rfc.section.6.5.9.p.3">Caches <em class="bcp14">MAY</em> use a heuristic (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.14"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to determine freshness for 410 responses.
     2720      <p id="rfc.section.6.5.9.p.3">A 410 response is cacheable unless otherwise indicated by the method definition or explicit cache controls (see <a href="p6-cache.html#heuristic.freshness" title="Calculating Heuristic Freshness">Section 4.1.2</a> of <a href="#Part6" id="rfc.xref.Part6.16"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).
    27162721      </p>
    27172722      <div id="rfc.iref.76"></div>
     
    28212826               <tr>
    28222827                  <td class="left">Age</td>
    2823                   <td class="left"><a href="p6-cache.html#header.age" title="Age">Section 7.1</a> of <a href="#Part6" id="rfc.xref.Part6.15"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a></td>
     2828                  <td class="left"><a href="p6-cache.html#header.age" title="Age">Section 7.1</a> of <a href="#Part6" id="rfc.xref.Part6.17"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a></td>
    28242829               </tr>
    28252830               <tr>
    28262831                  <td class="left">Cache-Control</td>
    2827                   <td class="left"><a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 7.2</a> of <a href="#Part6" id="rfc.xref.Part6.16"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a></td>
     2832                  <td class="left"><a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 7.2</a> of <a href="#Part6" id="rfc.xref.Part6.18"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a></td>
    28282833               </tr>
    28292834               <tr>
    28302835                  <td class="left">Expires</td>
    2831                   <td class="left"><a href="p6-cache.html#header.expires" title="Expires">Section 7.3</a> of <a href="#Part6" id="rfc.xref.Part6.17"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a></td>
     2836                  <td class="left"><a href="p6-cache.html#header.expires" title="Expires">Section 7.3</a> of <a href="#Part6" id="rfc.xref.Part6.19"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a></td>
    28322837               </tr>
    28332838               <tr>
     
    28492854               <tr>
    28502855                  <td class="left">Warning</td>
    2851                   <td class="left"><a href="p6-cache.html#header.warning" title="Warning">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.18"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a></td>
     2856                  <td class="left"><a href="p6-cache.html#header.warning" title="Warning">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.20"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a></td>
    28522857               </tr>
    28532858            </tbody>
     
    30433048         <li>
    30443049            <p>To inform cache recipients that they <em class="bcp14">MUST NOT</em> use this response to satisfy a later request unless the later request has the same values for the listed fields as the original
    3045                request (<a href="p6-cache.html#caching.negotiated.responses" title="Using Negotiated Responses">Section 4.3</a> of <a href="#Part6" id="rfc.xref.Part6.19"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). In other words, Vary expands the cache key required to match a new request to the stored cache entry.
     3050               request (<a href="p6-cache.html#caching.negotiated.responses" title="Using Negotiated Responses">Section 4.3</a> of <a href="#Part6" id="rfc.xref.Part6.21"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>). In other words, Vary expands the cache key required to match a new request to the stored cache entry.
    30463051            </p>
    30473052         </li>
     
    30553060         other than the method and request target, unless the variance cannot be crossed or the origin server has been deliberately
    30563061         configured to prevent cache transparency. For example, there is no need to send the Authorization field name in Vary because
    3057          reuse across users is constrained by the field definition (<a href="p7-auth.html#header.authorization" title="Authorization">Section 4.1</a> of <a href="#Part7" id="rfc.xref.Part7.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Authentication">[Part7]</cite></a>). Likewise, an origin server might use Cache-Control directives (<a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 7.2</a> of <a href="#Part6" id="rfc.xref.Part6.20"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to supplant Vary if it considers the variance less significant than the performance cost of Vary's impact on caching.
     3062         reuse across users is constrained by the field definition (<a href="p7-auth.html#header.authorization" title="Authorization">Section 4.1</a> of <a href="#Part7" id="rfc.xref.Part7.8"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Authentication">[Part7]</cite></a>). Likewise, an origin server might use Cache-Control directives (<a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 7.2</a> of <a href="#Part6" id="rfc.xref.Part6.22"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) to supplant Vary if it considers the variance less significant than the performance cost of Vary's impact on caching.
    30583063      </p>
    30593064      <div id="rfc.iref.s.8"></div>
     
    33033308      </p>
    33043309      <p id="rfc.section.8.2.2.p.5">A response that can transfer a payload ought to specify expected cache behavior (e.g., cacheability and freshness criteria,
    3305          as described in <a href="#Part6" id="rfc.xref.Part6.21"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) and whether the payload has any implied association with an identified resource (<a href="#identifying.payload" title="Identifying a Representation">Section&nbsp;3.1.4.1</a>).
     3310         as described in <a href="#Part6" id="rfc.xref.Part6.23"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>) and whether the payload has any implied association with an identified resource (<a href="#identifying.payload" title="Identifying a Representation">Section&nbsp;3.1.4.1</a>).
    33063311      </p>
    33073312      <h3 id="rfc.section.8.2.3"><a href="#rfc.section.8.2.3">8.2.3</a>&nbsp;<a id="status.code.registration" href="#status.code.registration">Registrations</a></h3>
     
    35993604         </li>
    36003605         <li>
    3601             <p>How the header field might interact with caching (see <a href="#Part6" id="rfc.xref.Part6.22"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).
     3606            <p>How the header field might interact with caching (see <a href="#Part6" id="rfc.xref.Part6.24"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Caching">[Part6]</cite></a>).
    36023607            </p>
    36033608         </li>
     
    46664671                     </ul>
    46674672                  </li>
    4668                   <li><em>Part6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.1">4.2.3</a>, <a href="#rfc.xref.Part6.2">4.3.1</a>, <a href="#rfc.xref.Part6.3">4.3.2</a>, <a href="#rfc.xref.Part6.4">4.3.2</a>, <a href="#rfc.xref.Part6.5">4.3.3</a>, <a href="#rfc.xref.Part6.6">4.3.4</a>, <a href="#rfc.xref.Part6.7">4.3.5</a>, <a href="#rfc.xref.Part6.8">5.1</a>, <a href="#rfc.xref.Part6.9">5.1</a>, <a href="#rfc.xref.Part6.10">6.3.1</a>, <a href="#rfc.xref.Part6.11">6.3.4</a>, <a href="#rfc.xref.Part6.12">6.4.1</a>, <a href="#rfc.xref.Part6.13">6.4.2</a>, <a href="#rfc.xref.Part6.14">6.5.9</a>, <a href="#rfc.xref.Part6.15">7.1</a>, <a href="#rfc.xref.Part6.16">7.1</a>, <a href="#rfc.xref.Part6.17">7.1</a>, <a href="#rfc.xref.Part6.18">7.1</a>, <a href="#rfc.xref.Part6.19">7.1.4</a>, <a href="#rfc.xref.Part6.20">7.1.4</a>, <a href="#rfc.xref.Part6.21">8.2.2</a>, <a href="#rfc.xref.Part6.22">8.3.1</a>, <a href="#Part6"><b>11.1</b></a><ul>
     4673                  <li><em>Part6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.1">4.2.3</a>, <a href="#rfc.xref.Part6.2">4.3.1</a>, <a href="#rfc.xref.Part6.3">4.3.2</a>, <a href="#rfc.xref.Part6.4">4.3.2</a>, <a href="#rfc.xref.Part6.5">4.3.3</a>, <a href="#rfc.xref.Part6.6">4.3.4</a>, <a href="#rfc.xref.Part6.7">4.3.5</a>, <a href="#rfc.xref.Part6.8">5.1</a>, <a href="#rfc.xref.Part6.9">5.1</a>, <a href="#rfc.xref.Part6.10">6.1</a>, <a href="#rfc.xref.Part6.11">6.3.1</a>, <a href="#rfc.xref.Part6.12">6.3.4</a>, <a href="#rfc.xref.Part6.13">6.3.4</a>, <a href="#rfc.xref.Part6.14">6.4.1</a>, <a href="#rfc.xref.Part6.15">6.4.2</a>, <a href="#rfc.xref.Part6.16">6.5.9</a>, <a href="#rfc.xref.Part6.17">7.1</a>, <a href="#rfc.xref.Part6.18">7.1</a>, <a href="#rfc.xref.Part6.19">7.1</a>, <a href="#rfc.xref.Part6.20">7.1</a>, <a href="#rfc.xref.Part6.21">7.1.4</a>, <a href="#rfc.xref.Part6.22">7.1.4</a>, <a href="#rfc.xref.Part6.23">8.2.2</a>, <a href="#rfc.xref.Part6.24">8.3.1</a>, <a href="#Part6"><b>11.1</b></a><ul>
    46694674                        <li><em>Section 4.1.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.5">4.3.3</a></li>
    4670                         <li><em>Section 4.1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.10">6.3.1</a>, <a href="#rfc.xref.Part6.12">6.4.1</a>, <a href="#rfc.xref.Part6.13">6.4.2</a>, <a href="#rfc.xref.Part6.14">6.5.9</a></li>
    4671                         <li><em>Section 4.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.19">7.1.4</a></li>
     4675                        <li><em>Section 4.1.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.11">6.3.1</a>, <a href="#rfc.xref.Part6.13">6.3.4</a>, <a href="#rfc.xref.Part6.14">6.4.1</a>, <a href="#rfc.xref.Part6.15">6.4.2</a>, <a href="#rfc.xref.Part6.16">6.5.9</a></li>
     4676                        <li><em>Section 4.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.21">7.1.4</a></li>
    46724677                        <li><em>Section 5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.4">4.3.2</a></li>
    46734678                        <li><em>Section 6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.6">4.3.4</a>, <a href="#rfc.xref.Part6.7">4.3.5</a></li>
    4674                         <li><em>Section 7.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.15">7.1</a></li>
    4675                         <li><em>Section 7.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.2">4.3.1</a>, <a href="#rfc.xref.Part6.3">4.3.2</a>, <a href="#rfc.xref.Part6.8">5.1</a>, <a href="#rfc.xref.Part6.16">7.1</a>, <a href="#rfc.xref.Part6.20">7.1.4</a></li>
    4676                         <li><em>Section 7.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.17">7.1</a></li>
     4679                        <li><em>Section 7.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.17">7.1</a></li>
     4680                        <li><em>Section 7.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.2">4.3.1</a>, <a href="#rfc.xref.Part6.3">4.3.2</a>, <a href="#rfc.xref.Part6.8">5.1</a>, <a href="#rfc.xref.Part6.18">7.1</a>, <a href="#rfc.xref.Part6.22">7.1.4</a></li>
     4681                        <li><em>Section 7.3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.19">7.1</a></li>
    46774682                        <li><em>Section 7.4</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.9">5.1</a></li>
    4678                         <li><em>Section 7.5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.11">6.3.4</a>, <a href="#rfc.xref.Part6.18">7.1</a></li>
     4683                        <li><em>Section 7.5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part6.12">6.3.4</a>, <a href="#rfc.xref.Part6.20">7.1</a></li>
    46794684                     </ul>
    46804685                  </li>
Note: See TracChangeset for help on using the changeset viewer.