May 19, 2011, 7:28:25 PM (8 years ago)

Rewrite Pragma section; addresses #292

1 edited


  • draft-ietf-httpbis/latest/p6-cache.html

    r1282 r1284  
    362362  }
    363363  @bottom-center {
    364        content: "Expires November 5, 2011";
     364       content: "Expires November 21, 2011";
    365365  }
    366366  @bottom-right {
    408408      <meta name="dct.creator" content="Reschke, J. F.">
    409409      <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p6-cache-latest">
    410       <meta name="dct.issued" scheme="ISO8601" content="2011-05-04">
     410      <meta name="dct.issued" scheme="ISO8601" content="2011-05-20">
    411411      <meta name="dct.replaces" content="urn:ietf:rfc:2616">
    412412      <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. This document is Part 6 of the seven-part specification that defines the protocol referred to as &#34;HTTP/1.1&#34; and, taken together, obsoletes RFC 2616. Part 6 defines requirements on HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.">
    434434            </tr>
    435435            <tr>
    436                <td class="left">Expires: November 5, 2011</td>
     436               <td class="left">Expires: November 21, 2011</td>
    437437               <td class="right">J. Mogul</td>
    438438            </tr>
    495495            <tr>
    496496               <td class="left"></td>
    497                <td class="right">May 4, 2011</td>
     497               <td class="right">May 20, 2011</td>
    498498            </tr>
    499499         </tbody>
    523523         in progress”.
    524524      </p>
    525       <p>This Internet-Draft will expire on November 5, 2011.</p>
     525      <p>This Internet-Draft will expire on November 21, 2011.</p>
    526526      <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1>
    527527      <p>Copyright © 2011 IETF Trust and the persons identified as the document authors. All rights reserved.</p>
    13051305      <div id="rfc.iref.h.5"></div>
    13061306      <h2 id="rfc.section.3.4"><a href="#rfc.section.3.4">3.4</a>&nbsp;<a id="header.pragma" href="#header.pragma">Pragma</a></h2>
    1307       <p id="rfc.section.3.4.p.1">The "Pragma" header field is used to include implementation-specific directives that might apply to any recipient along the
    1308          request/response chain. All pragma directives specify optional behavior from the viewpoint of the protocol; however, some
    1309          systems <em class="bcp14">MAY</em> require that behavior be consistent with the directives.
     1307      <p id="rfc.section.3.4.p.1">The "Pragma" header field allows backwards compatibility with HTTP/1.0 caches, so that clients can specify a "no-cache" request
     1308         that they will understand (as Cache-Control was not defined until HTTP/1.1). When the Cache-Control header is also present
     1309         and understood in a request, Pragma is ignored.
     1310      </p>
     1311      <p id="rfc.section.3.4.p.2">In HTTP/1.0, Pragma was defined as an extensible field for implementation-specified directives for recipients. This specification
     1312         deprecates such extensions to improve interoperability.
    13101313      </p>
    13111314      <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span><span id="rfc.iref.g.10"></span>  <a href="#header.pragma" class="smpl">Pragma</a>           = 1#<a href="#header.pragma" class="smpl">pragma-directive</a>
    13121315  <a href="#header.pragma" class="smpl">pragma-directive</a> = "no-cache" / <a href="#header.pragma" class="smpl">extension-pragma</a>
    13131316  <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> ) ]
    1314 </pre><p id="rfc.section.3.4.p.3">When the no-cache directive is present in a request message, a cache <em class="bcp14">SHOULD</em> forward the request toward the origin server even if it has a stored copy of what is being requested. This pragma directive
    1315          has the same semantics as the no-cache request directive (see <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;3.2.1</a>) and is defined here for backward compatibility with HTTP/1.0. A client <em class="bcp14">SHOULD</em> include both header fields when a no-cache request is sent to a server not known to be HTTP/1.1 compliant. A cache <em class="bcp14">SHOULD</em> treat "Pragma: no-cache" as if the client had sent "Cache-Control: no-cache".
    1316       </p>
    1317       <div class="note" id="rfc.section.3.4.p.4">
    1318          <p> <b>Note:</b> Because the meaning of "Pragma: no-cache" as a header field is not actually specified, it does not provide a reliable replacement
    1319             for "Cache-Control: no-cache" in a response.
     1317</pre><p id="rfc.section.3.4.p.4">When the Cache-Control header is not present in a request, the no-cache request pragma-directive <em class="bcp14">MUST</em> have the same effect on caches as if "Cache-Control: no-cache" were present (see <a href="#cache-request-directive" title="Request Cache-Control Directives">Section&nbsp;3.2.1</a>).
     1318      </p>
     1319      <p id="rfc.section.3.4.p.5">When sending a no-cache request, a client <em class="bcp14">SHOULD</em> include both pragma and cache-control directives unless Cache-Control: no-cache is purposefully omitted to target other Cache-Control
     1320         response directives at HTTP/1.1 caches. For example:
     1321      </p>
     1322      <div id="rfc.figure.u.16"></div> <pre class="text">GET / HTTP/1.1
     1323Host: www.example.com
     1324Cache-Control: max-age=30
     1325Pragma: no-cache
     1326</pre> <p id="rfc.section.3.4.p.7">will constrain HTTP/1.1 caches to serve a response no older than 30 seconds, while precluding implementations that do not
     1327         understand Cache-Control from serving a cached response.
     1328      </p>
     1329      <div class="note" id="rfc.section.3.4.p.8">
     1330         <p>Note: Because the meaning of "Pragma: no-cache" in responses is not specified, it does not provide a reliable replacement
     1331            for "Cache-Control: no-cache" in them.
    13201332         </p>
    13211333      </div>
    1322       <p id="rfc.section.3.4.p.5">This mechanism is deprecated; no new Pragma directives will be defined in HTTP.</p>
    13231334      <div id="rfc.iref.v.2"></div>
    13241335      <div id="rfc.iref.h.6"></div>
    13311342         the representation.
    13321343      </p>
    1333       <div id="rfc.figure.u.16"></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>
     1344      <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.11"></span>  <a href="#header.vary" class="smpl">Vary</a> = "*" / 1#<a href="#abnf.dependencies" class="smpl">field-name</a>
    13341345</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>
    13351346      <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
    13581369         be applied to response messages.
    13591370      </p>
    1360       <div id="rfc.figure.u.17"></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>
     1371      <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.12"></span><span id="rfc.iref.g.13"></span><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span>  <a href="#header.warning" class="smpl">Warning</a>       = 1#<a href="#header.warning" class="smpl">warning-value</a>
    13621373  <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>
    17091720      </p>
    17101721      <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a>&nbsp;<a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1>
    1711       <div id="rfc.figure.u.18"></div> <pre class="inline"><a href="#header.age" class="smpl">Age</a> = delta-seconds
     1722      <div id="rfc.figure.u.19"></div> <pre class="inline"><a href="#header.age" class="smpl">Age</a> = delta-seconds
    17131724<a href="#header.cache-control" class="smpl">Cache-Control</a> = *( "," OWS ) cache-directive *( OWS "," [ OWS
    17641775<a href="#header.warning" class="smpl">warning-value</a> = warn-code SP warn-agent SP warn-text [ SP warn-date
    17651776 ]
    1766 </pre> <div id="rfc.figure.u.19"></div>
     1777</pre> <div id="rfc.figure.u.20"></div>
    17671778      <p>ABNF diagnostics:</p><pre class="inline">; Age defined but not used
    17681779; Cache-Control defined but not used
    19491960      </ul>
    19501961      <h2 id="rfc.section.C.16"><a href="#rfc.section.C.16">C.16</a>&nbsp;<a id="changes.since.14" href="#changes.since.14">Since draft-ietf-httpbis-p6-cache-14</a></h2>
    1951       <p id="rfc.section.C.16.p.1">None yet.</p>
     1962      <p id="rfc.section.C.16.p.1">Closed issues: </p>
     1963      <ul>
     1964         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/292">http://tools.ietf.org/wg/httpbis/trac/ticket/292</a>&gt;: "Pragma"
     1965         </li>
     1966      </ul>
    19521967      <h1 id="rfc.index"><a href="#rfc.index">Index</a></h1>
    19531968      <p class="noprint"><a href="#rfc.index.A">A</a> <a href="#rfc.index.C">C</a> <a href="#rfc.index.E">E</a> <a href="#rfc.index.F">F</a> <a href="#rfc.index.G">G</a> <a href="#rfc.index.H">H</a> <a href="#rfc.index.M">M</a> <a href="#rfc.index.N">N</a> <a href="#rfc.index.O">O</a> <a href="#rfc.index.P">P</a> <a href="#rfc.index.R">R</a> <a href="#rfc.index.S">S</a> <a href="#rfc.index.V">V</a> <a href="#rfc.index.W">W</a>
Note: See TracChangeset for help on using the changeset viewer.