Changeset 364 for draft-ietf-httpbis/latest
- Timestamp:
- 13/11/08 18:17:06 (14 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p6-cache.html
r345 r364 485 485 <tr> 486 486 <td class="header left"></td> 487 <td class="header right">November 1 1, 2008</td>487 <td class="header right">November 13, 2008</td> 488 488 </tr> 489 489 </table> … … 717 717 </p> 718 718 <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a> <a id="notation" href="#notation">Notational Conventions and Generic Grammar</a></h1> 719 <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="A ugmented BNF">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.1"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see <<a href="http://ietf.org/wg/httpbis/trac/ticket/36">http://ietf.org/wg/httpbis/trac/ticket/36</a>>.]</span>719 <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="ABNF Extensions">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.1"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see <<a href="http://ietf.org/wg/httpbis/trac/ticket/36">http://ietf.org/wg/httpbis/trac/ticket/36</a>>.]</span> 720 720 </p> 721 721 <div id="rfc.figure.u.1"></div><pre class="inline"> <a href="#notation" class="smpl">DIGIT</a> = <DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> … … 724 724 </pre><div id="rfc.figure.u.2"></div><pre class="inline"> <a href="#notation" class="smpl">quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.6"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 725 725 <a href="#notation" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1.7"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 726 <a href="#notation" class="smpl">BWS</a> = <BWS, defined in <a href="#Part1" id="rfc.xref.Part1.8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 727 <a href="#notation" class="smpl">OWS</a> = <OWS, defined in <a href="#Part1" id="rfc.xref.Part1.9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 728 <a href="#notation" class="smpl">RWS</a> = <RWS, defined in <a href="#Part1" id="rfc.xref.Part1.10"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>> 726 729 </pre><div id="abnf.dependencies"> 727 730 <p id="rfc.section.2.p.4"> The ABNF rules below are defined in other parts:</p> 728 731 </div> 729 <div id="rfc.figure.u.3"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">field-name</a> = <field-name, defined in <a href="#Part1" id="rfc.xref.Part1. 8"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#message.headers" title="Message Headers">Section 4.2</a>>730 <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1. 9"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>>731 <a href="#abnf.dependencies" class="smpl">port</a> = <port, defined in <a href="#Part1" id="rfc.xref.Part1.1 0"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>>732 <a href="#abnf.dependencies" class="smpl">pseudonym</a> = <pseudonym, defined in <a href="#Part1" id="rfc.xref.Part1.1 1"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.via" title="Via">Section 8.9</a>>733 <a href="#abnf.dependencies" class="smpl">uri-host</a> = <uri-host, defined in <a href="#Part1" id="rfc.xref.Part1.1 2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>>732 <div id="rfc.figure.u.3"></div><pre class="inline"> <a href="#abnf.dependencies" class="smpl">field-name</a> = <field-name, defined in <a href="#Part1" id="rfc.xref.Part1.11"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#message.headers" title="Message Headers">Section 4.2</a>> 733 <a href="#abnf.dependencies" class="smpl">HTTP-date</a> = <HTTP-date, defined in <a href="#Part1" id="rfc.xref.Part1.12"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a>> 734 <a href="#abnf.dependencies" class="smpl">port</a> = <port, defined in <a href="#Part1" id="rfc.xref.Part1.13"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>> 735 <a href="#abnf.dependencies" class="smpl">pseudonym</a> = <pseudonym, defined in <a href="#Part1" id="rfc.xref.Part1.14"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#header.via" title="Via">Section 8.9</a>> 736 <a href="#abnf.dependencies" class="smpl">uri-host</a> = <uri-host, defined in <a href="#Part1" id="rfc.xref.Part1.15"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#general.syntax" title="General Syntax">Section 3.2.1</a>> 734 737 </pre><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="caching.overview" href="#caching.overview">Overview</a></h1> 735 738 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="cache.correctness" href="#cache.correctness">Cache Correctness</a></h2> … … 872 875 </p> 873 876 <p id="rfc.section.4.3.p.3">HTTP/1.1 requires origin servers to send a Date header, if possible, with every response, giving the time at which the response 874 was generated (see <a href="p1-messaging.html#header.date" title="Date">Section 8.3</a> of <a href="#Part1" id="rfc.xref.Part1.1 3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>). We use the term "date_value" to denote the value of the Date header, in a form appropriate for arithmetic operations.877 was generated (see <a href="p1-messaging.html#header.date" title="Date">Section 8.3</a> of <a href="#Part1" id="rfc.xref.Part1.16"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>). We use the term "date_value" to denote the value of the Date header, in a form appropriate for arithmetic operations. 875 878 </p> 876 879 <p id="rfc.section.4.3.p.4">HTTP/1.1 uses the Age response-header to convey the estimated age of the response message when obtained from a cache. The … … 1044 1047 </ul> 1045 1048 <p id="rfc.section.7.1.p.3">All other headers defined by HTTP/1.1 are end-to-end headers.</p> 1046 <p id="rfc.section.7.1.p.4">Other hop-by-hop headers <em class="bcp14">MUST</em> be listed in a Connection header (<a href="p1-messaging.html#header.connection" title="Connection">Section 8.1</a> of <a href="#Part1" id="rfc.xref.Part1.1 4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>).1049 <p id="rfc.section.7.1.p.4">Other hop-by-hop headers <em class="bcp14">MUST</em> be listed in a Connection header (<a href="p1-messaging.html#header.connection" title="Connection">Section 8.1</a> of <a href="#Part1" id="rfc.xref.Part1.17"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>). 1047 1050 </p> 1048 1051 <h2 id="rfc.section.7.2"><a href="#rfc.section.7.2">7.2</a> <a id="non-modifiable.headers" href="#non-modifiable.headers">Non-modifiable Headers</a></h2> … … 1079 1082 </dd> 1080 1083 </dl> 1081 <p id="rfc.section.7.2.p.7">The Content-Length field of a request or response is added or deleted according to the rules in <a href="p1-messaging.html#message.length" title="Message Length">Section 4.4</a> of <a href="#Part1" id="rfc.xref.Part1.1 5"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>. A transparent proxy <em class="bcp14">MUST</em> preserve the entity-length (<a href="p3-payload.html#entity.length" title="Entity Length">Section 4.2.2</a> of <a href="#Part3" id="rfc.xref.Part3.1"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>) of the entity-body, although it <em class="bcp14">MAY</em> change the transfer-length (<a href="p1-messaging.html#message.length" title="Message Length">Section 4.4</a> of <a href="#Part1" id="rfc.xref.Part1.16"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>).1084 <p id="rfc.section.7.2.p.7">The Content-Length field of a request or response is added or deleted according to the rules in <a href="p1-messaging.html#message.length" title="Message Length">Section 4.4</a> of <a href="#Part1" id="rfc.xref.Part1.18"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>. A transparent proxy <em class="bcp14">MUST</em> preserve the entity-length (<a href="p3-payload.html#entity.length" title="Entity Length">Section 4.2.2</a> of <a href="#Part3" id="rfc.xref.Part3.1"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>) of the entity-body, although it <em class="bcp14">MAY</em> change the transfer-length (<a href="p1-messaging.html#message.length" title="Message Length">Section 4.4</a> of <a href="#Part1" id="rfc.xref.Part1.19"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>). 1082 1085 </p> 1083 1086 <h2 id="rfc.section.7.3"><a href="#rfc.section.7.3">7.3</a> <a id="combining.headers" href="#combining.headers">Combining Headers</a></h2> … … 1127 1130 request can be transformed to the selecting request-headers in the second request by adding or removing linear white space 1128 1131 (LWS) at places where this is allowed by the corresponding BNF, and/or combining multiple message-header fields with the same 1129 field name following the rules about message headers in <a href="p1-messaging.html#message.headers" title="Message Headers">Section 4.2</a> of <a href="#Part1" id="rfc.xref.Part1. 17"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>.1132 field name following the rules about message headers in <a href="p1-messaging.html#message.headers" title="Message Headers">Section 4.2</a> of <a href="#Part1" id="rfc.xref.Part1.20"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>. 1130 1133 </p> 1131 1134 <p id="rfc.section.8.p.5">A Vary header field-value of "*" always fails to match and subsequent requests on that resource can only be properly interpreted … … 1238 1241 <div id="rfc.iref.h.2"></div> 1239 1242 <h2 id="rfc.section.16.1"><a href="#rfc.section.16.1">16.1</a> <a id="header.age" href="#header.age">Age</a></h2> 1240 <p id="rfc.section.16.1.p.1">The Age response-header fieldconveys the sender's estimate of the amount of time since the response (or its revalidation)1243 <p id="rfc.section.16.1.p.1">The response-header field "Age" conveys the sender's estimate of the amount of time since the response (or its revalidation) 1241 1244 was generated at the origin server. A cached response is "fresh" if its age does not exceed its freshness lifetime. Age values 1242 1245 are calculated as specified in <a href="#age.calculations" title="Age Calculations">Section 4.3</a>. 1243 1246 </p> 1244 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> <a href="#header.age" class="smpl">Age</a> = "Age" ":" <a href="#header.age" class="smpl">age-value</a>1245 <a href="#header.age" class="smpl"> age-value</a> = <a href="#rule.delta-seconds" class="smpl">delta-seconds</a>1247 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.1"></span><span id="rfc.iref.g.2"></span> <a href="#header.age" class="smpl">Age</a> = "Age" <a href="#notation" class="smpl">BWS</a> ":" <a href="#notation" class="smpl">OWS</a> <a href="#header.age" class="smpl">Age-v</a> 1248 <a href="#header.age" class="smpl">Age-v</a> = <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> 1246 1249 </pre><div id="rule.delta-seconds"> 1247 1250 <p id="rfc.section.16.1.p.3"> Age values are non-negative decimal integers, representing time in seconds.</p> … … 1254 1257 <div id="rfc.iref.h.3"></div> 1255 1258 <h2 id="rfc.section.16.2"><a href="#rfc.section.16.2">16.2</a> <a id="header.cache-control" href="#header.cache-control">Cache-Control</a></h2> 1256 <p id="rfc.section.16.2.p.1">The Cache-Control general-header fieldis used to specify directives that <em class="bcp14">MUST</em> be obeyed by all caching mechanisms along the request/response chain. The directives specify behavior intended to prevent1259 <p id="rfc.section.16.2.p.1">The general-header field "Cache-Control" is used to specify directives that <em class="bcp14">MUST</em> be obeyed by all caching mechanisms along the request/response chain. The directives specify behavior intended to prevent 1257 1260 caches from adversely interfering with the request or response. These directives typically override the default caching algorithms. 1258 1261 Cache directives are unidirectional in that the presence of a directive in a request does not imply that the same directive … … 1267 1270 a specific cache. 1268 1271 </p> 1269 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span> <a href="#header.cache-control" class="smpl">Cache-Control</a> = "Cache-Control" ":" 1#<a href="#header.cache-control" class="smpl">cache-directive</a> 1272 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.4"></span><span id="rfc.iref.g.5"></span><span id="rfc.iref.g.6"></span><span id="rfc.iref.g.7"></span><span id="rfc.iref.g.8"></span><span id="rfc.iref.g.9"></span> <a href="#header.cache-control" class="smpl">Cache-Control</a> = "Cache-Control" <a href="#notation" class="smpl">BWS</a> ":" <a href="#notation" class="smpl">OWS</a> <a href="#header.cache-control" class="smpl">Cache-Control-v</a> 1273 <a href="#header.cache-control" class="smpl">Cache-Control-v</a> = 1#<a href="#header.cache-control" class="smpl">cache-directive</a> 1270 1274 1271 1275 <a href="#header.cache-control" class="smpl">cache-directive</a> = <a href="#header.cache-control" class="smpl">cache-request-directive</a> … … 1569 1573 that time. 1570 1574 </p> 1571 <p id="rfc.section.16.3.p.3">The format is an absolute date and time as defined by HTTP-date in <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a> of <a href="#Part1" id="rfc.xref.Part1.18"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 1572 </p> 1573 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.9"></span> <a href="#header.expires" class="smpl">Expires</a> = "Expires" ":" <a href="#abnf.dependencies" class="smpl">HTTP-date</a> 1575 <p id="rfc.section.16.3.p.3">The format is an absolute date and time as defined by HTTP-date in <a href="p1-messaging.html#full.date" title="Full Date">Section 3.3.1</a> of <a href="#Part1" id="rfc.xref.Part1.21"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 1576 </p> 1577 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.10"></span><span id="rfc.iref.g.11"></span> <a href="#header.expires" class="smpl">Expires</a> = "Expires" <a href="#notation" class="smpl">BWS</a> ":" <a href="#notation" class="smpl">OWS</a> <a href="#header.expires" class="smpl">Expires-v</a> 1578 <a href="#header.expires" class="smpl">Expires-v</a> = <a href="#abnf.dependencies" class="smpl">HTTP-date</a> 1574 1579 </pre><p id="rfc.section.16.3.p.5">An example of its use is</p> 1575 <div id="rfc.figure.u.17"></div><pre class="text"> 1580 <div id="rfc.figure.u.17"></div><pre class="text"> Expires: Thu, 01 Dec 1994 16:00:00 GMT 1576 1581 </pre><p id="rfc.section.16.3.p.7"> </p> 1577 1582 <dl class="empty"> … … 1594 1599 <div id="rfc.iref.h.5"></div> 1595 1600 <h2 id="rfc.section.16.4"><a href="#rfc.section.16.4">16.4</a> <a id="header.pragma" href="#header.pragma">Pragma</a></h2> 1596 <p id="rfc.section.16.4.p.1">The Pragma general-header field is used to include implementation-specific directives that might apply to any recipient along 1597 the request/response chain. All pragma directives specify optional behavior from the viewpoint of the protocol; however, some 1598 systems <em class="bcp14">MAY</em> require that behavior be consistent with the directives. 1599 </p> 1600 <div id="rfc.figure.u.18"></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> <a href="#header.pragma" class="smpl">Pragma</a> = "Pragma" ":" 1#<a href="#header.pragma" class="smpl">pragma-directive</a> 1601 <p id="rfc.section.16.4.p.1">The general-header field "Pragma" is used to include implementation-specific directives that might apply to any recipient 1602 along the request/response chain. All pragma directives specify optional behavior from the viewpoint of the protocol; however, 1603 some systems <em class="bcp14">MAY</em> require that behavior be consistent with the directives. 1604 </p> 1605 <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> <a href="#header.pragma" class="smpl">Pragma</a> = "Pragma" <a href="#notation" class="smpl">BWS</a> ":" <a href="#notation" class="smpl">OWS</a> <a href="#header.pragma" class="smpl">Pragma-v</a> 1606 <a href="#header.pragma" class="smpl">Pragma-v</a> = 1#<a href="#header.pragma" class="smpl">pragma-directive</a> 1601 1607 <a href="#header.pragma" class="smpl">pragma-directive</a> = "no-cache" / <a href="#header.pragma" class="smpl">extension-pragma</a> 1602 1608 <a href="#header.pragma" class="smpl">extension-pragma</a> = <a href="#notation" class="smpl">token</a> [ "=" ( <a href="#notation" class="smpl">token</a> / <a href="#notation" class="smpl">quoted-string</a> ) ] … … 1619 1625 <div id="rfc.iref.h.6"></div> 1620 1626 <h2 id="rfc.section.16.5"><a href="#rfc.section.16.5">16.5</a> <a id="header.vary" href="#header.vary">Vary</a></h2> 1621 <p id="rfc.section.16.5.p.1">The Varyresponse-header field's value indicates the set of request-header fields that fully determines, while the response1627 <p id="rfc.section.16.5.p.1">The "Vary" response-header field's value indicates the set of request-header fields that fully determines, while the response 1622 1628 is fresh, whether a cache is permitted to use the response to reply to a subsequent request without revalidation. For uncacheable 1623 1629 or stale responses, the Vary field value advises the user agent about the criteria that were used to select the representation. … … 1625 1631 response is the appropriate representation. See <a href="#caching.negotiated.responses" title="Caching Negotiated Responses">Section 8</a> for use of the Vary header field by caches. 1626 1632 </p> 1627 <div id="rfc.figure.u.19"></div><pre class="inline"><span id="rfc.iref.g.13"></span> <a href="#header.vary" class="smpl">Vary</a> = "Vary" ":" ( "*" / 1#<a href="#abnf.dependencies" class="smpl">field-name</a> ) 1633 <div id="rfc.figure.u.19"></div><pre class="inline"><span id="rfc.iref.g.16"></span><span id="rfc.iref.g.17"></span> <a href="#header.vary" class="smpl">Vary</a> = "Vary" <a href="#notation" class="smpl">BWS</a> ":" <a href="#notation" class="smpl">OWS</a> <a href="#header.vary" class="smpl">Vary-v</a> 1634 <a href="#header.vary" class="smpl">Vary-v</a> = "*" / 1#<a href="#abnf.dependencies" class="smpl">field-name</a> 1628 1635 </pre><p id="rfc.section.16.5.p.3">An HTTP/1.1 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 1629 1636 to properly interpret future requests on that resource and informs the user agent about the presence of negotiation on that … … 1645 1652 <div id="rfc.iref.h.7"></div> 1646 1653 <h2 id="rfc.section.16.6"><a href="#rfc.section.16.6">16.6</a> <a id="header.warning" href="#header.warning">Warning</a></h2> 1647 <p id="rfc.section.16.6.p.1">The Warning general-header field is used to carry additional information about the status or transformation of a message which1648 might not be reflected in the message. This information is typically used to warn about a possible lack of semantic transparency1649 from caching operations or transformations applied to the entity body of the message.1654 <p id="rfc.section.16.6.p.1">The general-header field "Warning" is used to carry additional information about the status or transformation of a message 1655 which might not be reflected in the message. This information is typically used to warn about a possible lack of semantic 1656 transparency from caching operations or transformations applied to the entity body of the message. 1650 1657 </p> 1651 1658 <p id="rfc.section.16.6.p.2">Warning headers are sent with responses using:</p> 1652 <div id="rfc.figure.u.20"></div><pre class="inline"><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><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span> <a href="#header.warning" class="smpl">Warning</a> = "Warning" ":" 1#<a href="#header.warning" class="smpl">warning-value</a> 1659 <div id="rfc.figure.u.20"></div><pre class="inline"><span id="rfc.iref.g.18"></span><span id="rfc.iref.g.19"></span><span id="rfc.iref.g.20"></span><span id="rfc.iref.g.21"></span><span id="rfc.iref.g.22"></span><span id="rfc.iref.g.23"></span><span id="rfc.iref.g.24"></span> <a href="#header.warning" class="smpl">Warning</a> = "Warning" <a href="#notation" class="smpl">BWS</a> ":" <a href="#notation" class="smpl">OWS</a> <a href="#header.warning" class="smpl">Warning-v</a> 1660 <a href="#header.warning" class="smpl">Warning-v</a> = 1#<a href="#header.warning" class="smpl">warning-value</a> 1653 1661 1654 1662 <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> … … 1900 1908 <p id="rfc.section.A.1.p.2">Transfer-coding and message lengths all interact in ways that required fixing exactly when chunked encoding is used (to allow 1901 1909 for transfer encoding that may not be self delimiting); it was important to straighten out exactly how message lengths are 1902 computed. (<a href="#non-modifiable.headers" title="Non-modifiable Headers">Section 7.2</a>, see also <a href="#Part1" id="rfc.xref.Part1. 19"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="#Part3" id="rfc.xref.Part3.3"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a> and <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>)1910 computed. (<a href="#non-modifiable.headers" title="Non-modifiable Headers">Section 7.2</a>, see also <a href="#Part1" id="rfc.xref.Part1.22"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="#Part3" id="rfc.xref.Part3.3"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a> and <a href="#Part5" id="rfc.xref.Part5.3"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a>) 1903 1911 </p> 1904 1912 <p id="rfc.section.A.1.p.3">Proxies should be able to add Content-Length when appropriate. (<a href="#non-modifiable.headers" title="Non-modifiable Headers">Section 7.2</a>) … … 1977 1985 <ul> 1978 1986 <li>Use "/" instead of "|" for alternatives.</li> 1987 <li>Introduce new ABNF rules for "bad" whitespace ("BWS"), optional whitespace ("OWS") and required whitespace ("RWS").</li> 1988 <li>Rewrite ABNFs to spell out whitespace rules, factor out header value format definitions.</li> 1979 1989 </ul> 1980 1990 <h1><a id="rfc.copyright" href="#rfc.copyright">Full Copyright Statement</a></h1> … … 2049 2059 <ul class="ind"> 2050 2060 <li class="indline1"><tt>Age</tt> <a class="iref" href="#rfc.iref.g.1"><b>16.1</b></a></li> 2051 <li class="indline1"><tt> age-value</tt> <a class="iref" href="#rfc.iref.g.2"><b>16.1</b></a></li>2061 <li class="indline1"><tt>Age-v</tt> <a class="iref" href="#rfc.iref.g.2"><b>16.1</b></a></li> 2052 2062 <li class="indline1"><tt>Cache-Control</tt> <a class="iref" href="#rfc.iref.g.4"><b>16.2</b></a></li> 2053 <li class="indline1"><tt>cache-directive</tt> <a class="iref" href="#rfc.iref.g.5"><b>16.2</b></a></li> 2054 <li class="indline1"><tt>cache-extension</tt> <a class="iref" href="#rfc.iref.g.8"><b>16.2</b></a></li> 2055 <li class="indline1"><tt>cache-request-directive</tt> <a class="iref" href="#rfc.iref.g.6"><b>16.2</b></a></li> 2056 <li class="indline1"><tt>cache-response-directive</tt> <a class="iref" href="#rfc.iref.g.7"><b>16.2</b></a></li> 2063 <li class="indline1"><tt>Cache-Control-v</tt> <a class="iref" href="#rfc.iref.g.5"><b>16.2</b></a></li> 2064 <li class="indline1"><tt>cache-directive</tt> <a class="iref" href="#rfc.iref.g.6"><b>16.2</b></a></li> 2065 <li class="indline1"><tt>cache-extension</tt> <a class="iref" href="#rfc.iref.g.9"><b>16.2</b></a></li> 2066 <li class="indline1"><tt>cache-request-directive</tt> <a class="iref" href="#rfc.iref.g.7"><b>16.2</b></a></li> 2067 <li class="indline1"><tt>cache-response-directive</tt> <a class="iref" href="#rfc.iref.g.8"><b>16.2</b></a></li> 2057 2068 <li class="indline1"><tt>delta-seconds</tt> <a class="iref" href="#rfc.iref.g.3"><b>16.1</b></a></li> 2058 <li class="indline1"><tt>Expires</tt> <a class="iref" href="#rfc.iref.g.9"><b>16.3</b></a></li> 2059 <li class="indline1"><tt>extension-pragma</tt> <a class="iref" href="#rfc.iref.g.12"><b>16.4</b></a></li> 2060 <li class="indline1"><tt>Pragma</tt> <a class="iref" href="#rfc.iref.g.10"><b>16.4</b></a></li> 2061 <li class="indline1"><tt>pragma-directive</tt> <a class="iref" href="#rfc.iref.g.11"><b>16.4</b></a></li> 2062 <li class="indline1"><tt>Vary</tt> <a class="iref" href="#rfc.iref.g.13"><b>16.5</b></a></li> 2063 <li class="indline1"><tt>warn-agent</tt> <a class="iref" href="#rfc.iref.g.17"><b>16.6</b></a></li> 2064 <li class="indline1"><tt>warn-code</tt> <a class="iref" href="#rfc.iref.g.16"><b>16.6</b></a></li> 2065 <li class="indline1"><tt>warn-date</tt> <a class="iref" href="#rfc.iref.g.19"><b>16.6</b></a></li> 2066 <li class="indline1"><tt>warn-text</tt> <a class="iref" href="#rfc.iref.g.18"><b>16.6</b></a></li> 2067 <li class="indline1"><tt>Warning</tt> <a class="iref" href="#rfc.iref.g.14"><b>16.6</b></a></li> 2068 <li class="indline1"><tt>warning-value</tt> <a class="iref" href="#rfc.iref.g.15"><b>16.6</b></a></li> 2069 <li class="indline1"><tt>Expires</tt> <a class="iref" href="#rfc.iref.g.10"><b>16.3</b></a></li> 2070 <li class="indline1"><tt>Expires-v</tt> <a class="iref" href="#rfc.iref.g.11"><b>16.3</b></a></li> 2071 <li class="indline1"><tt>extension-pragma</tt> <a class="iref" href="#rfc.iref.g.15"><b>16.4</b></a></li> 2072 <li class="indline1"><tt>Pragma</tt> <a class="iref" href="#rfc.iref.g.12"><b>16.4</b></a></li> 2073 <li class="indline1"><tt>pragma-directive</tt> <a class="iref" href="#rfc.iref.g.14"><b>16.4</b></a></li> 2074 <li class="indline1"><tt>Pragma-v</tt> <a class="iref" href="#rfc.iref.g.13"><b>16.4</b></a></li> 2075 <li class="indline1"><tt>Vary</tt> <a class="iref" href="#rfc.iref.g.16"><b>16.5</b></a></li> 2076 <li class="indline1"><tt>Vary-v</tt> <a class="iref" href="#rfc.iref.g.17"><b>16.5</b></a></li> 2077 <li class="indline1"><tt>warn-agent</tt> <a class="iref" href="#rfc.iref.g.22"><b>16.6</b></a></li> 2078 <li class="indline1"><tt>warn-code</tt> <a class="iref" href="#rfc.iref.g.21"><b>16.6</b></a></li> 2079 <li class="indline1"><tt>warn-date</tt> <a class="iref" href="#rfc.iref.g.24"><b>16.6</b></a></li> 2080 <li class="indline1"><tt>warn-text</tt> <a class="iref" href="#rfc.iref.g.23"><b>16.6</b></a></li> 2081 <li class="indline1"><tt>Warning</tt> <a class="iref" href="#rfc.iref.g.18"><b>16.6</b></a></li> 2082 <li class="indline1"><tt>Warning-v</tt> <a class="iref" href="#rfc.iref.g.19"><b>16.6</b></a></li> 2083 <li class="indline1"><tt>warning-value</tt> <a class="iref" href="#rfc.iref.g.20"><b>16.6</b></a></li> 2069 2084 </ul> 2070 2085 </li> … … 2139 2154 </li> 2140 2155 <li class="indline0"><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul class="ind"> 2141 <li class="indline1"><em>Part1</em> <a class="iref" href="#rfc.xref.Part1.1">2</a>, <a class="iref" href="#rfc.xref.Part1.2">2</a>, <a class="iref" href="#rfc.xref.Part1.3">2</a>, <a class="iref" href="#rfc.xref.Part1.4">2</a>, <a class="iref" href="#rfc.xref.Part1.5">2</a>, <a class="iref" href="#rfc.xref.Part1.6">2</a>, <a class="iref" href="#rfc.xref.Part1.7">2</a>, <a class="iref" href="#rfc.xref.Part1.8">2</a>, <a class="iref" href="#rfc.xref.Part1.9">2</a>, <a class="iref" href="#rfc.xref.Part1.10">2</a>, <a class="iref" href="#rfc.xref.Part1.11">2</a>, <a class="iref" href="#rfc.xref.Part1.12">2</a>, <a class="iref" href="#rfc.xref.Part1.13"> 4.3</a>, <a class="iref" href="#rfc.xref.Part1.14">7.1</a>, <a class="iref" href="#rfc.xref.Part1.15">7.2</a>, <a class="iref" href="#rfc.xref.Part1.16">7.2</a>, <a class="iref" href="#rfc.xref.Part1.17">8</a>, <a class="iref" href="#rfc.xref.Part1.18">16.3</a>, <a class="iref" href="#Part1"><b>20.1</b></a>, <a class="iref" href="#rfc.xref.Part1.19">A.1</a><ul class="ind">2156 <li class="indline1"><em>Part1</em> <a class="iref" href="#rfc.xref.Part1.1">2</a>, <a class="iref" href="#rfc.xref.Part1.2">2</a>, <a class="iref" href="#rfc.xref.Part1.3">2</a>, <a class="iref" href="#rfc.xref.Part1.4">2</a>, <a class="iref" href="#rfc.xref.Part1.5">2</a>, <a class="iref" href="#rfc.xref.Part1.6">2</a>, <a class="iref" href="#rfc.xref.Part1.7">2</a>, <a class="iref" href="#rfc.xref.Part1.8">2</a>, <a class="iref" href="#rfc.xref.Part1.9">2</a>, <a class="iref" href="#rfc.xref.Part1.10">2</a>, <a class="iref" href="#rfc.xref.Part1.11">2</a>, <a class="iref" href="#rfc.xref.Part1.12">2</a>, <a class="iref" href="#rfc.xref.Part1.13">2</a>, <a class="iref" href="#rfc.xref.Part1.14">2</a>, <a class="iref" href="#rfc.xref.Part1.15">2</a>, <a class="iref" href="#rfc.xref.Part1.16">4.3</a>, <a class="iref" href="#rfc.xref.Part1.17">7.1</a>, <a class="iref" href="#rfc.xref.Part1.18">7.2</a>, <a class="iref" href="#rfc.xref.Part1.19">7.2</a>, <a class="iref" href="#rfc.xref.Part1.20">8</a>, <a class="iref" href="#rfc.xref.Part1.21">16.3</a>, <a class="iref" href="#Part1"><b>20.1</b></a>, <a class="iref" href="#rfc.xref.Part1.22">A.1</a><ul class="ind"> 2142 2157 <li class="indline1"><em>Section 2.1</em> <a class="iref" href="#rfc.xref.Part1.1">2</a></li> 2143 <li class="indline1"><em>Section 2.2</em> <a class="iref" href="#rfc.xref.Part1.2">2</a>, <a class="iref" href="#rfc.xref.Part1.3">2</a>, <a class="iref" href="#rfc.xref.Part1.4">2</a>, <a class="iref" href="#rfc.xref.Part1.5">2</a>, <a class="iref" href="#rfc.xref.Part1.6">2</a>, <a class="iref" href="#rfc.xref.Part1.7">2</a> </li>2144 <li class="indline1"><em>Section 3.2.1</em> <a class="iref" href="#rfc.xref.Part1.1 0">2</a>, <a class="iref" href="#rfc.xref.Part1.12">2</a></li>2145 <li class="indline1"><em>Section 3.3.1</em> <a class="iref" href="#rfc.xref.Part1. 9">2</a>, <a class="iref" href="#rfc.xref.Part1.18">16.3</a></li>2146 <li class="indline1"><em>Section 4.2</em> <a class="iref" href="#rfc.xref.Part1. 8">2</a>, <a class="iref" href="#rfc.xref.Part1.17">8</a></li>2147 <li class="indline1"><em>Section 4.4</em> <a class="iref" href="#rfc.xref.Part1.1 5">7.2</a>, <a class="iref" href="#rfc.xref.Part1.16">7.2</a></li>2148 <li class="indline1"><em>Section 8.1</em> <a class="iref" href="#rfc.xref.Part1.1 4">7.1</a></li>2149 <li class="indline1"><em>Section 8.3</em> <a class="iref" href="#rfc.xref.Part1.1 3">4.3</a></li>2150 <li class="indline1"><em>Section 8.9</em> <a class="iref" href="#rfc.xref.Part1.1 1">2</a></li>2158 <li class="indline1"><em>Section 2.2</em> <a class="iref" href="#rfc.xref.Part1.2">2</a>, <a class="iref" href="#rfc.xref.Part1.3">2</a>, <a class="iref" href="#rfc.xref.Part1.4">2</a>, <a class="iref" href="#rfc.xref.Part1.5">2</a>, <a class="iref" href="#rfc.xref.Part1.6">2</a>, <a class="iref" href="#rfc.xref.Part1.7">2</a>, <a class="iref" href="#rfc.xref.Part1.8">2</a>, <a class="iref" href="#rfc.xref.Part1.9">2</a>, <a class="iref" href="#rfc.xref.Part1.10">2</a></li> 2159 <li class="indline1"><em>Section 3.2.1</em> <a class="iref" href="#rfc.xref.Part1.13">2</a>, <a class="iref" href="#rfc.xref.Part1.15">2</a></li> 2160 <li class="indline1"><em>Section 3.3.1</em> <a class="iref" href="#rfc.xref.Part1.12">2</a>, <a class="iref" href="#rfc.xref.Part1.21">16.3</a></li> 2161 <li class="indline1"><em>Section 4.2</em> <a class="iref" href="#rfc.xref.Part1.11">2</a>, <a class="iref" href="#rfc.xref.Part1.20">8</a></li> 2162 <li class="indline1"><em>Section 4.4</em> <a class="iref" href="#rfc.xref.Part1.18">7.2</a>, <a class="iref" href="#rfc.xref.Part1.19">7.2</a></li> 2163 <li class="indline1"><em>Section 8.1</em> <a class="iref" href="#rfc.xref.Part1.17">7.1</a></li> 2164 <li class="indline1"><em>Section 8.3</em> <a class="iref" href="#rfc.xref.Part1.16">4.3</a></li> 2165 <li class="indline1"><em>Section 8.9</em> <a class="iref" href="#rfc.xref.Part1.14">2</a></li> 2151 2166 </ul> 2152 2167 </li> -
draft-ietf-httpbis/latest/p6-cache.xml
r345 r364 431 431 <x:anchor-alias value="SP"/> 432 432 <x:anchor-alias value="token"/> 433 <x:anchor-alias value="BWS"/> 434 <x:anchor-alias value="OWS"/> 435 <x:anchor-alias value="RWS"/> 433 436 <t> 434 437 This specification uses the ABNF syntax defined in ¬ation-abnf; and … … 445 448 <x:ref>quoted-string</x:ref> = <quoted-string, defined in &basic-rules;> 446 449 <x:ref>token</x:ref> = <token, defined in &basic-rules;> 450 <x:ref>BWS</x:ref> = <BWS, defined in &basic-rules;> 451 <x:ref>OWS</x:ref> = <OWS, defined in &basic-rules;> 452 <x:ref>RWS</x:ref> = <RWS, defined in &basic-rules;> 447 453 </artwork></figure> 448 454 <t anchor="abnf.dependencies"> … … 1501 1507 <iref primary="true" item="Headers" subitem="Age" x:for-anchor=""/> 1502 1508 <x:anchor-alias value="Age"/> 1509 <x:anchor-alias value="Age-v"/> 1503 1510 <x:anchor-alias value="age-value"/> 1504 1511 <t> 1505 The Age response-header fieldconveys the sender's estimate of the1512 The response-header field "Age" conveys the sender's estimate of the 1506 1513 amount of time since the response (or its revalidation) was 1507 1514 generated at the origin server. A cached response is "fresh" if … … 1509 1516 calculated as specified in <xref target="age.calculations"/>. 1510 1517 </t> 1511 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Age"/><iref primary="true" item="Grammar" subitem=" age-value"/>1512 <x:ref>Age</x:ref> = "Age" ":" <x:ref>age-value</x:ref>1513 <x:ref> age-value</x:ref> = <x:ref>delta-seconds</x:ref>1518 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Age"/><iref primary="true" item="Grammar" subitem="Age-v"/> 1519 <x:ref>Age</x:ref> = "Age" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Age-v</x:ref> 1520 <x:ref>Age-v</x:ref> = <x:ref>delta-seconds</x:ref> 1514 1521 </artwork></figure> 1515 1522 <t anchor="rule.delta-seconds"> … … 1536 1543 <iref primary="true" item="Headers" subitem="Cache-Control" x:for-anchor=""/> 1537 1544 <x:anchor-alias value="Cache-Control"/> 1545 <x:anchor-alias value="Cache-Control-v"/> 1538 1546 <x:anchor-alias value="cache-directive"/> 1539 1547 <x:anchor-alias value="cache-extension"/> … … 1541 1549 <x:anchor-alias value="cache-response-directive"/> 1542 1550 <t> 1543 The Cache-Control general-header fieldis used to specify directives1551 The general-header field "Cache-Control" is used to specify directives 1544 1552 that &MUST; be obeyed by all caching mechanisms along the 1545 1553 request/response chain. The directives specify behavior intended to … … 1561 1569 for a specific cache. 1562 1570 </t> 1563 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Cache-Control"/><iref primary="true" item="Grammar" subitem="cache-directive"/><iref primary="true" item="Grammar" subitem="cache-request-directive"/><iref primary="true" item="Grammar" subitem="cache-response-directive"/><iref primary="true" item="Grammar" subitem="cache-extension"/> 1564 <x:ref>Cache-Control</x:ref> = "Cache-Control" ":" 1#<x:ref>cache-directive</x:ref> 1571 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Cache-Control"/><iref primary="true" item="Grammar" subitem="Cache-Control-v"/><iref primary="true" item="Grammar" subitem="cache-directive"/><iref primary="true" item="Grammar" subitem="cache-request-directive"/><iref primary="true" item="Grammar" subitem="cache-response-directive"/><iref primary="true" item="Grammar" subitem="cache-extension"/> 1572 <x:ref>Cache-Control</x:ref> = "Cache-Control" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Cache-Control-v</x:ref> 1573 <x:ref>Cache-Control-v</x:ref> = 1#<x:ref>cache-directive</x:ref> 1565 1574 1566 1575 <x:ref>cache-directive</x:ref> = <x:ref>cache-request-directive</x:ref> … … 2085 2094 <iref primary="true" item="Headers" subitem="Expires" x:for-anchor=""/> 2086 2095 <x:anchor-alias value="Expires"/> 2096 <x:anchor-alias value="Expires-v"/> 2087 2097 <t> 2088 2098 The Expires entity-header field gives the date/time after which the … … 2102 2112 &full-date;; it &MUST; be sent in rfc1123-date format. 2103 2113 </t> 2104 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Expires"/> 2105 <x:ref>Expires</x:ref> = "Expires" ":" <x:ref>HTTP-date</x:ref> 2114 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Expires"/><iref primary="true" item="Grammar" subitem="Expires-v"/> 2115 <x:ref>Expires</x:ref> = "Expires" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Expires-v</x:ref> 2116 <x:ref>Expires-v</x:ref> = <x:ref>HTTP-date</x:ref> 2106 2117 </artwork></figure> 2107 2118 <t> … … 2109 2120 </t> 2110 2121 <figure><artwork type="example"> 2111 2122 Expires: Thu, 01 Dec 1994 16:00:00 GMT 2112 2123 </artwork></figure> 2113 2124 <t> … … 2147 2158 <x:anchor-alias value="extension-pragma"/> 2148 2159 <x:anchor-alias value="Pragma"/> 2160 <x:anchor-alias value="Pragma-v"/> 2149 2161 <x:anchor-alias value="pragma-directive"/> 2150 2162 <t> 2151 The Pragma general-header fieldis used to include implementation-specific2163 The general-header field "Pragma" is used to include implementation-specific 2152 2164 directives that might apply to any recipient along the 2153 2165 request/response chain. All pragma directives specify optional … … 2155 2167 &MAY; require that behavior be consistent with the directives. 2156 2168 </t> 2157 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Pragma"/><iref primary="true" item="Grammar" subitem="pragma-directive"/><iref primary="true" item="Grammar" subitem="extension-pragma"/> 2158 <x:ref>Pragma</x:ref> = "Pragma" ":" 1#<x:ref>pragma-directive</x:ref> 2169 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Pragma"/><iref primary="true" item="Grammar" subitem="Pragma-v"/><iref primary="true" item="Grammar" subitem="pragma-directive"/><iref primary="true" item="Grammar" subitem="extension-pragma"/> 2170 <x:ref>Pragma</x:ref> = "Pragma" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Pragma-v</x:ref> 2171 <x:ref>Pragma-v</x:ref> = 1#<x:ref>pragma-directive</x:ref> 2159 2172 <x:ref>pragma-directive</x:ref> = "no-cache" / <x:ref>extension-pragma</x:ref> 2160 2173 <x:ref>extension-pragma</x:ref> = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> ) ] … … 2193 2206 <iref primary="true" item="Headers" subitem="Vary" x:for-anchor=""/> 2194 2207 <x:anchor-alias value="Vary"/> 2195 <t> 2196 The Vary response-header field's value indicates the set of request-header 2208 <x:anchor-alias value="Vary-v"/> 2209 <t> 2210 The "Vary" response-header field's value indicates the set of request-header 2197 2211 fields that fully determines, while the response is fresh, whether a cache 2198 2212 is permitted to use the response to reply to a subsequent request … … 2204 2218 <xref target="caching.negotiated.responses"/> for use of the Vary header field by caches. 2205 2219 </t> 2206 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Vary"/> 2207 <x:ref>Vary</x:ref> = "Vary" ":" ( "*" / 1#<x:ref>field-name</x:ref> ) 2220 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Vary"/><iref primary="true" item="Grammar" subitem="Vary-v"/> 2221 <x:ref>Vary</x:ref> = "Vary" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Vary-v</x:ref> 2222 <x:ref>Vary-v</x:ref> = "*" / 1#<x:ref>field-name</x:ref> 2208 2223 </artwork></figure> 2209 2224 <t> … … 2245 2260 <iref primary="true" item="Headers" subitem="Warning" x:for-anchor=""/> 2246 2261 <x:anchor-alias value="Warning"/> 2262 <x:anchor-alias value="Warning-v"/> 2247 2263 <x:anchor-alias value="warning-value"/> 2248 2264 <x:anchor-alias value="warn-agent"/> … … 2251 2267 <x:anchor-alias value="warn-text"/> 2252 2268 <t> 2253 The Warning general-header fieldis used to carry additional2269 The general-header field "Warning" is used to carry additional 2254 2270 information about the status or transformation of a message which 2255 2271 might not be reflected in the message. This information is typically … … 2261 2277 Warning headers are sent with responses using: 2262 2278 </t> 2263 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Warning"/><iref primary="true" item="Grammar" subitem="warning-value"/><iref primary="true" item="Grammar" subitem="warn-code"/><iref primary="true" item="Grammar" subitem="warn-agent"/><iref primary="true" item="Grammar" subitem="warn-text"/><iref primary="true" item="Grammar" subitem="warn-date"/> 2264 <x:ref>Warning</x:ref> = "Warning" ":" 1#<x:ref>warning-value</x:ref> 2279 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Warning"/><iref primary="true" item="Grammar" subitem="Warning-v"/><iref primary="true" item="Grammar" subitem="warning-value"/><iref primary="true" item="Grammar" subitem="warn-code"/><iref primary="true" item="Grammar" subitem="warn-agent"/><iref primary="true" item="Grammar" subitem="warn-text"/><iref primary="true" item="Grammar" subitem="warn-date"/> 2280 <x:ref>Warning</x:ref> = "Warning" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Warning-v</x:ref> 2281 <x:ref>Warning-v</x:ref> = 1#<x:ref>warning-value</x:ref> 2265 2282 2266 2283 <x:ref>warning-value</x:ref> = <x:ref>warn-code</x:ref> <x:ref>SP</x:ref> <x:ref>warn-agent</x:ref> <x:ref>SP</x:ref> <x:ref>warn-text</x:ref> … … 3033 3050 Use "/" instead of "|" for alternatives. 3034 3051 </t> 3052 <t> 3053 Introduce new ABNF rules for "bad" whitespace ("BWS"), optional 3054 whitespace ("OWS") and required whitespace ("RWS"). 3055 </t> 3056 <t> 3057 Rewrite ABNFs to spell out whitespace rules, factor out 3058 header value format definitions. 3059 </t> 3035 3060 </list> 3036 3061 </t>
Note: See TracChangeset
for help on using the changeset viewer.