Changeset 2384
- Timestamp:
- 13/09/13 11:47:00 (9 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/extract-warn-code-defs.xslt
r1897 r2384 16 16 <ttcol>Short Description</ttcol> 17 17 <ttcol>Reference</ttcol> 18 <xsl:apply-templates select="//section[iref[contains(@item,' (warn 19 <xsl:sort select="iref[contains(@item,' (warn 18 <xsl:apply-templates select="//section[iref[contains(@item,' (warn-code)') and @primary='true']]"> 19 <xsl:sort select="iref[contains(@item,' (warn-code)') and @primary='true']/@item"/> 20 20 </xsl:apply-templates> 21 21 </texttable> … … 76 76 77 77 <xsl:template match="section"> 78 <xsl:variable name="t" select="iref[contains(@item,'(warn code)')]/@item"/> 79 <xsl:variable name="text" select="substring-before($t,' (warn code)')"/> 78 <xsl:variable name="c" select="iref[contains(@item,'(warn-code)')]/@item"/> 79 <xsl:variable name="code" select="substring-before($c,' (warn-code)')"/> 80 <xsl:variable name="t" select="iref[contains(@item,'(warn-text)')]/@item"/> 81 <xsl:variable name="text" select="substring-before($t,' (warn-text)')"/> 80 82 <xsl:variable name="redirects-to-other-part" xmlns:p2="urn:ietf:id:draft-ietf-httpbis-p2-semantics#" select="rdf:Description/p2:redirects-to"/> 81 83 82 84 <xsl:if test="not($redirects-to-other-part)"> 83 85 <xsl:text> </xsl:text> 84 <c><xsl:value-of select=" substring-before($text,' ')"/></c>85 <c><xsl:value-of select=" substring($text,2+string-length(substring-before($text,' ')))"/></c>86 <c><xsl:value-of select="$code"/></c> 87 <c><xsl:value-of select="$text"/></c> 86 88 <c><xref target="{@anchor}"/></c> 87 89 </xsl:if> -
draft-ietf-httpbis/latest/p6-cache.html
r2383 r2384 638 638 <li><a href="#rfc.section.5.4">5.4</a> <a href="#header.pragma">Pragma</a></li> 639 639 <li><a href="#rfc.section.5.5">5.5</a> <a href="#header.warning">Warning</a><ul> 640 <li><a href="#rfc.section.5.5.1">5.5.1</a> <a href="#warn.110">110 Response is Stale</a></li> 641 <li><a href="#rfc.section.5.5.2">5.5.2</a> <a href="#warn.111">111 Revalidation Failed</a></li> 642 <li><a href="#rfc.section.5.5.3">5.5.3</a> <a href="#warn.112">112 Disconnected Operation</a></li> 643 <li><a href="#rfc.section.5.5.4">5.5.4</a> <a href="#warn.113">113 Heuristic Expiration</a></li> 644 <li><a href="#rfc.section.5.5.5">5.5.5</a> <a href="#warn.199">199 Miscellaneous Warning</a></li> 645 <li><a href="#rfc.section.5.5.6">5.5.6</a> <a href="#warn.214">214 Transformation Applied</a></li> 646 <li><a href="#rfc.section.5.5.7">5.5.7</a> <a href="#warn.299">299 Miscellaneous Persistent Warning</a></li> 647 <li><a href="#rfc.section.5.5.8">5.5.8</a> <a href="#warn.code.extensions">Warn Code Extensions</a></li> 640 <li><a href="#rfc.section.5.5.1">5.5.1</a> <a href="#warn.110">Warning: 110 means "Response is Stale"</a></li> 641 <li><a href="#rfc.section.5.5.2">5.5.2</a> <a href="#warn.111">Warning: 111 means "Revalidation Failed"</a></li> 642 <li><a href="#rfc.section.5.5.3">5.5.3</a> <a href="#warn.112">Warning: 112 means "Disconnected Operation"</a></li> 643 <li><a href="#rfc.section.5.5.4">5.5.4</a> <a href="#warn.113">Warning: 113 means "Heuristic Expiration"</a></li> 644 <li><a href="#rfc.section.5.5.5">5.5.5</a> <a href="#warn.199">Warning: 199 means "Miscellaneous Warning"</a></li> 645 <li><a href="#rfc.section.5.5.6">5.5.6</a> <a href="#warn.214">Warning: 214 means "Transformation Applied"</a></li> 646 <li><a href="#rfc.section.5.5.7">5.5.7</a> <a href="#warn.299">Warning: 299 means "Miscellaneous Persistent Warning"</a></li> 648 647 </ul> 649 648 </li> … … 955 954 time. A typical setting of this fraction might be 10%. 956 955 </p> 957 <p id="rfc.section.4.2.2.p.4">When a heuristic is used to calculate freshness lifetime, a cache <em class="bcp14">SHOULD</em> attach a <a href="#header.warning" class="smpl">Warning</a> header field with a 113 warn-code tothe response if its current_age is more than 24 hours and such a warning is not already956 <p id="rfc.section.4.2.2.p.4">When a heuristic is used to calculate freshness lifetime, a cache <em class="bcp14">SHOULD</em> generate a <a href="#header.warning" class="smpl">Warning</a> header field with a 113 warn-code in the response if its current_age is more than 24 hours and such a warning is not already 958 957 present. 959 958 </p> … … 1031 1030 or doing so is explicitly allowed (e.g., by the max-stale request directive; see <a href="#cache-request-directive" title="Request Cache-Control Directives">Section 5.2.1</a>). 1032 1031 </p> 1033 <p id="rfc.section.4.2.4.p.4">A cache <em class="bcp14">SHOULD</em> append a <a href="#header.warning" class="smpl">Warning</a> header field with the 110 warn-code (see <a href="#header.warning" id="rfc.xref.header.warning.2" title="Warning">Section 5.5</a>) to stale responses. Likewise, a cache <em class="bcp14">SHOULD</em> add the 112 warn-code to stale responses if the cache is disconnected. 1034 </p> 1035 <div id="rfc.iref.f.3"></div> 1036 <p id="rfc.section.4.2.4.p.5">Note that if a cache receives a <dfn>first-hand</dfn> response (one where the freshness model is not in use; i.e., its age is 0, whether it is an entire response, or a <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a> response) that it would normally forward to the requesting client, and the received response is no longer fresh, the cache <em class="bcp14">MAY</em> forward it to the requesting client without adding a new <a href="#header.warning" class="smpl">Warning</a> (but without removing any existing Warning header fields). A cache ought not attempt to validate a response simply because 1037 that response became stale in transit. 1032 <p id="rfc.section.4.2.4.p.4">A cache <em class="bcp14">SHOULD</em> generate a <a href="#header.warning" class="smpl">Warning</a> header field with the 110 warn-code (see <a href="#header.warning" id="rfc.xref.header.warning.2" title="Warning">Section 5.5</a>) in stale responses. Likewise, a cache <em class="bcp14">SHOULD</em> generate a 112 warn-code in stale responses if the cache is disconnected. 1033 </p> 1034 <p id="rfc.section.4.2.4.p.5">A cache <em class="bcp14">SHOULD NOT</em> generate a new <a href="#header.warning" class="smpl">Warning</a> header field when forwarding a response that does not have an <a href="#header.age" class="smpl">Age</a> header field, even if the response is already stale. A cache need not validate a response that merely became stale in transit. 1038 1035 </p> 1039 1036 <h2 id="rfc.section.4.3"><a href="#rfc.section.4.3">4.3</a> <a id="validation.model" href="#validation.model">Validation</a></h2> … … 1177 1174 </p> 1178 1175 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.2"></span> <a href="#header.age" class="smpl">Age</a> = <a href="#delta-seconds" class="smpl">delta-seconds</a> 1179 </pre><p id="rfc.section.5.1.p.3">Age field-values are non-negative integers, representing time in seconds (see <a href="#delta-seconds" title="Delta Seconds">Section 1.2.1</a>). 1180 </p> 1181 <p id="rfc.section.5.1.p.4">The presence of an Age header field in a response implies that a response is not first-hand. However, the converse is not 1182 true, since HTTP/1.0 caches might not implement the Age header field. 1176 </pre><p id="rfc.section.5.1.p.3">The Age field-value is a non-negative integer, representing time in seconds (see <a href="#delta-seconds" title="Delta Seconds">Section 1.2.1</a>). 1177 </p> 1178 <p id="rfc.section.5.1.p.4">The presence of an Age header field implies that the response was not generated or validated by the origin server for this 1179 request. However, lack of an Age header field does not imply the origin was contacted, since the response might have been 1180 received from an HTTP/1.0 cache that does not implement Age. 1183 1181 </p> 1184 1182 <div id="rfc.iref.c.5"></div> … … 1453 1451 <h2 id="rfc.section.5.5"><a href="#rfc.section.5.5">5.5</a> <a id="header.warning" href="#header.warning">Warning</a></h2> 1454 1452 <p id="rfc.section.5.5.p.1">The "Warning" header field is used to carry additional information about the status or transformation of a message that might 1455 not be reflected in the message. This information is typically used to warn about possible incorrectness introduced by caching1456 operations or transformations applied to the payload of the message.1453 not be reflected in the status code. This information is typically used to warn about possible incorrectness introduced by 1454 caching operations or transformations applied to the payload of the message. 1457 1455 </p> 1458 1456 <p id="rfc.section.5.5.p.2">Warnings can be used for other purposes, both cache-related and otherwise. The use of a warning, rather than an error status … … 1473 1471 <a href="#header.warning" class="smpl">warn-text</a> = <a href="#imported.abnf" class="smpl">quoted-string</a> 1474 1472 <a href="#header.warning" class="smpl">warn-date</a> = <a href="#imported.abnf" class="smpl">DQUOTE</a> <a href="#imported.abnf" class="smpl">HTTP-date</a> <a href="#imported.abnf" class="smpl">DQUOTE</a> 1475 </pre><p id="rfc.section.5.5.p.5">Multiple warnings can be attached to a response (either by the origin server or by a cache), including multiple warnings with 1476 the same code number, only differing in warn-text. 1477 </p> 1478 <p id="rfc.section.5.5.p.6">When this occurs, the user agent <em class="bcp14">SHOULD</em> inform the user of as many of them as possible, in the order that they appear in the response. 1479 </p> 1480 <p id="rfc.section.5.5.p.7">Systems that generate multiple Warning header fields are encouraged to order them with this user agent behavior in mind. New 1481 Warning header fields are added after any existing Warning header fields. 1482 </p> 1483 <p id="rfc.section.5.5.p.8">Warnings are assigned three digit warn-codes. The first digit indicates whether the Warning is required to be deleted from 1473 </pre><p id="rfc.section.5.5.p.5">Multiple warnings can be generated in a response (either by the origin server or by a cache), including multiple warnings 1474 with the same warn-code number that only differ in warn-text. 1475 </p> 1476 <p id="rfc.section.5.5.p.6">A user agent that receives one or more Warning header fields <em class="bcp14">SHOULD</em> inform the user of as many of them as possible, in the order that they appear in the response. Senders that generate multiple 1477 Warning header fields are encouraged to order them with this user agent behavior in mind. A sender that generates new Warning 1478 header fields <em class="bcp14">MUST</em> append them after any existing Warning header fields. 1479 </p> 1480 <p id="rfc.section.5.5.p.7">Warnings are assigned three digit warn-codes. The first digit indicates whether the Warning is required to be deleted from 1484 1481 a stored response after validation: 1485 1482 </p> 1486 1483 <ul> 1487 <li>1xx Warnings describe the freshness or validation status of the response, and so <em class="bcp14">MUST</em> be deleted by a cache after validation. They can only be generated by a cache when validating a cached entry, and <em class="bcp14">MUST NOT</em> be generated in any other situation.1488 </li> 1489 <li>2xx Warnings describe some aspect of the representation that is not rectified by a validation (for example, a lossy compression1484 <li>1xx warn-codes describe the freshness or validation status of the response, and so <em class="bcp14">MUST</em> be deleted by a cache after validation. They can only be generated by a cache when validating a cached entry, and <em class="bcp14">MUST NOT</em> be generated in any other situation. 1485 </li> 1486 <li>2xx warn-codes describe some aspect of the representation that is not rectified by a validation (for example, a lossy compression 1490 1487 of the representation) and <em class="bcp14">MUST NOT</em> be deleted by a cache after validation, unless a full response is sent, in which case they <em class="bcp14">MUST</em> be. 1491 1488 </li> 1492 1489 </ul> 1493 <p id="rfc.section.5.5.p.9">If an implementation sends a message with one or more Warning header fields to a receiver whose version is HTTP/1.0 or lower, 1494 then the sender <em class="bcp14">MUST</em> include in each warning-value a warn-date that matches the <a href="p2-semantics.html#header.date" class="smpl">Date</a> header field in the message. 1495 </p> 1496 <p id="rfc.section.5.5.p.10">If a system receives a message with a warning-value that includes a warn-date, and that warn-date is different from the <a href="p2-semantics.html#header.date" class="smpl">Date</a> value in the response, then that warning-value <em class="bcp14">MUST</em> be deleted from the message before storing, forwarding, or using it (preventing the consequences of naive caching of Warning 1497 header fields). If all of the warning-values are deleted for this reason, the Warning header field <em class="bcp14">MUST</em> be deleted as well. 1498 </p> 1499 <p id="rfc.section.5.5.p.11">The following warn-codes are defined by this specification, each with a recommended warn-text in English, and a description 1500 of its meaning. 1490 <p id="rfc.section.5.5.p.8">If a sender generates one or more Warning header fields in a message to be sent to a recipient known to implement only HTTP/1.0, 1491 the sender <em class="bcp14">MUST</em> include in each generated warning-value a warn-date that matches the <a href="p2-semantics.html#header.date" class="smpl">Date</a> header field in the message. 1492 </p> 1493 <p id="rfc.section.5.5.p.9">If a recipient that uses, evaluates, or displays Warning header fields receives a warn-date that is different from the <a href="p2-semantics.html#header.date" class="smpl">Date</a> value in the same message, the recipient <em class="bcp14">MUST</em> exclude the warning-value containing that warn-date before storing, forwarding, or using the message. This allows recipients 1494 to exclude warning-values that were improperly retained after a cache validation. If all of the warning-values are excluded, 1495 the recipient <em class="bcp14">MUST</em> exclude the Warning header field as well. 1496 </p> 1497 <p id="rfc.section.5.5.p.10">The following warn-codes are defined by this specification, each with a recommended warn-text in English, and a description 1498 of its meaning. The procedure for defining additional warn codes is described in <a href="#warn.code.registry.procedure" title="Procedure">Section 7.2.1</a>. 1499 </p> 1500 <div id="rfc.iref.49"></div> 1501 <div id="rfc.iref.r.1"></div> 1502 <h3 id="rfc.section.5.5.1"><a href="#rfc.section.5.5.1">5.5.1</a> <a id="warn.110" href="#warn.110">Warning: 110 means "Response is Stale"</a></h3> 1503 <p id="rfc.section.5.5.1.p.1">A cache <em class="bcp14">SHOULD</em> generate this whenever the sent response is stale. 1501 1504 </p> 1502 1505 <div id="rfc.iref.50"></div> 1503 <h3 id="rfc.section.5.5.1"><a href="#rfc.section.5.5.1">5.5.1</a> <a id="warn.110" href="#warn.110">110 Response is Stale</a></h3> 1504 <p id="rfc.section.5.5.1.p.1">A cache <em class="bcp14">SHOULD</em> generate this whenever the sent response is stale. 1505 </p> 1506 <div id="rfc.iref.50"></div> 1507 <h3 id="rfc.section.5.5.2"><a href="#rfc.section.5.5.2">5.5.2</a> <a id="warn.111" href="#warn.111">111 Revalidation Failed</a></h3> 1506 <div id="rfc.iref.r.2"></div> 1507 <h3 id="rfc.section.5.5.2"><a href="#rfc.section.5.5.2">5.5.2</a> <a id="warn.111" href="#warn.111">Warning: 111 means "Revalidation Failed"</a></h3> 1508 1508 <p id="rfc.section.5.5.2.p.1">A cache <em class="bcp14">SHOULD</em> generate this when sending a stale response because an attempt to validate the response failed, due to an inability to reach 1509 1509 the server. 1510 1510 </p> 1511 <div id="rfc.iref.50"></div> 1512 <h3 id="rfc.section.5.5.3"><a href="#rfc.section.5.5.3">5.5.3</a> <a id="warn.112" href="#warn.112">112 Disconnected Operation</a></h3> 1511 <div id="rfc.iref.51"></div> 1512 <div id="rfc.iref.d.1"></div> 1513 <h3 id="rfc.section.5.5.3"><a href="#rfc.section.5.5.3">5.5.3</a> <a id="warn.112" href="#warn.112">Warning: 112 means "Disconnected Operation"</a></h3> 1513 1514 <p id="rfc.section.5.5.3.p.1">A cache <em class="bcp14">SHOULD</em> generate this if it is intentionally disconnected from the rest of the network for a period of time. 1514 1515 </p> 1515 <div id="rfc.iref.50"></div> 1516 <h3 id="rfc.section.5.5.4"><a href="#rfc.section.5.5.4">5.5.4</a> <a id="warn.113" href="#warn.113">113 Heuristic Expiration</a></h3> 1516 <div id="rfc.iref.52"></div> 1517 <div id="rfc.iref.h.2"></div> 1518 <h3 id="rfc.section.5.5.4"><a href="#rfc.section.5.5.4">5.5.4</a> <a id="warn.113" href="#warn.113">Warning: 113 means "Heuristic Expiration"</a></h3> 1517 1519 <p id="rfc.section.5.5.4.p.1">A cache <em class="bcp14">SHOULD</em> generate this if it heuristically chose a freshness lifetime greater than 24 hours and the response's age is greater than 1518 1520 24 hours. 1519 1521 </p> 1520 <div id="rfc.iref.50"></div> 1521 <h3 id="rfc.section.5.5.5"><a href="#rfc.section.5.5.5">5.5.5</a> <a id="warn.199" href="#warn.199">199 Miscellaneous Warning</a></h3> 1522 <div id="rfc.iref.53"></div> 1523 <div id="rfc.iref.m.6"></div> 1524 <h3 id="rfc.section.5.5.5"><a href="#rfc.section.5.5.5">5.5.5</a> <a id="warn.199" href="#warn.199">Warning: 199 means "Miscellaneous Warning"</a></h3> 1522 1525 <p id="rfc.section.5.5.5.p.1">The warning text can include arbitrary information to be presented to a human user, or logged. A system receiving this warning <em class="bcp14">MUST NOT</em> take any automated action, besides presenting the warning to the user. 1523 1526 </p> 1524 <div id="rfc.iref.50"></div> 1525 <h3 id="rfc.section.5.5.6"><a href="#rfc.section.5.5.6">5.5.6</a> <a id="warn.214" href="#warn.214">214 Transformation Applied</a></h3> 1527 <div id="rfc.iref.54"></div> 1528 <div id="rfc.iref.t.1"></div> 1529 <h3 id="rfc.section.5.5.6"><a href="#rfc.section.5.5.6">5.5.6</a> <a id="warn.214" href="#warn.214">Warning: 214 means "Transformation Applied"</a></h3> 1526 1530 <p id="rfc.section.5.5.6.p.1"><em class="bcp14">MUST</em> be added by a proxy if it applies any transformation to the representation, such as changing the content-coding, media-type, 1527 1531 or modifying the representation data, unless this Warning code already appears in the response. 1528 1532 </p> 1529 <div id="rfc.iref.50"></div> 1530 <h3 id="rfc.section.5.5.7"><a href="#rfc.section.5.5.7">5.5.7</a> <a id="warn.299" href="#warn.299">299 Miscellaneous Persistent Warning</a></h3> 1533 <div id="rfc.iref.55"></div> 1534 <div id="rfc.iref.m.7"></div> 1535 <h3 id="rfc.section.5.5.7"><a href="#rfc.section.5.5.7">5.5.7</a> <a id="warn.299" href="#warn.299">Warning: 299 means "Miscellaneous Persistent Warning"</a></h3> 1531 1536 <p id="rfc.section.5.5.7.p.1">The warning text can include arbitrary information to be presented to a human user, or logged. A system receiving this warning <em class="bcp14">MUST NOT</em> take any automated action. 1532 </p>1533 <h3 id="rfc.section.5.5.8"><a href="#rfc.section.5.5.8">5.5.8</a> <a id="warn.code.extensions" href="#warn.code.extensions">Warn Code Extensions</a></h3>1534 <p id="rfc.section.5.5.8.p.1">Extension warn codes can be defined; see <a href="#warn.code.registry.procedure" title="Procedure">Section 7.2.1</a> for details.1535 1537 </p> 1536 1538 <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="history.lists" href="#history.lists">History Lists</a></h1> … … 1682 1684 <td class="left">110</td> 1683 1685 <td class="left">Response is Stale</td> 1684 <td class="left"><a href="#warn.110" id="rfc.xref.warn.110.1" title=" 110 Response is Stale">Section 5.5.1</a>1686 <td class="left"><a href="#warn.110" id="rfc.xref.warn.110.1" title="Warning: 110 means "Response is Stale"">Section 5.5.1</a> 1685 1687 </td> 1686 1688 </tr> … … 1688 1690 <td class="left">111</td> 1689 1691 <td class="left">Revalidation Failed</td> 1690 <td class="left"><a href="#warn.111" id="rfc.xref.warn.111.1" title=" 111 Revalidation Failed">Section 5.5.2</a>1692 <td class="left"><a href="#warn.111" id="rfc.xref.warn.111.1" title="Warning: 111 means "Revalidation Failed"">Section 5.5.2</a> 1691 1693 </td> 1692 1694 </tr> … … 1694 1696 <td class="left">112</td> 1695 1697 <td class="left">Disconnected Operation</td> 1696 <td class="left"><a href="#warn.112" id="rfc.xref.warn.112.1" title=" 112 Disconnected Operation">Section 5.5.3</a>1698 <td class="left"><a href="#warn.112" id="rfc.xref.warn.112.1" title="Warning: 112 means "Disconnected Operation"">Section 5.5.3</a> 1697 1699 </td> 1698 1700 </tr> … … 1700 1702 <td class="left">113</td> 1701 1703 <td class="left">Heuristic Expiration</td> 1702 <td class="left"><a href="#warn.113" id="rfc.xref.warn.113.1" title=" 113 Heuristic Expiration">Section 5.5.4</a>1704 <td class="left"><a href="#warn.113" id="rfc.xref.warn.113.1" title="Warning: 113 means "Heuristic Expiration"">Section 5.5.4</a> 1703 1705 </td> 1704 1706 </tr> … … 1706 1708 <td class="left">199</td> 1707 1709 <td class="left">Miscellaneous Warning</td> 1708 <td class="left"><a href="#warn.199" id="rfc.xref.warn.199.1" title=" 199 Miscellaneous Warning">Section 5.5.5</a>1710 <td class="left"><a href="#warn.199" id="rfc.xref.warn.199.1" title="Warning: 199 means "Miscellaneous Warning"">Section 5.5.5</a> 1709 1711 </td> 1710 1712 </tr> … … 1712 1714 <td class="left">214</td> 1713 1715 <td class="left">Transformation Applied</td> 1714 <td class="left"><a href="#warn.214" id="rfc.xref.warn.214.1" title=" 214 Transformation Applied">Section 5.5.6</a>1716 <td class="left"><a href="#warn.214" id="rfc.xref.warn.214.1" title="Warning: 214 means "Transformation Applied"">Section 5.5.6</a> 1715 1717 </td> 1716 1718 </tr> … … 1718 1720 <td class="left">299</td> 1719 1721 <td class="left">Miscellaneous Persistent Warning</td> 1720 <td class="left"><a href="#warn.299" id="rfc.xref.warn.299.1" title=" 299 Miscellaneous Persistent Warning">Section 5.5.7</a>1722 <td class="left"><a href="#warn.299" id="rfc.xref.warn.299.1" title="Warning: 299 means "Miscellaneous Persistent Warning"">Section 5.5.7</a> 1721 1723 </td> 1722 1724 </tr> … … 1993 1995 <a href="#header.warning" class="smpl">warn-date</a> = DQUOTE HTTP-date DQUOTE 1994 1996 <a href="#header.warning" class="smpl">warn-text</a> = quoted-string 1995 <a href="#header.warning" class="smpl">warning-value</a> = warn-code SP warn-agent SP warn-text SP warn-date1997 <a href="#header.warning" class="smpl">warning-value</a> = warn-code SP warn-agent SP warn-text [ SP warn-date ] 1996 1998 </pre><h1 id="rfc.section.D"><a href="#rfc.section.D">D.</a> <a id="change.log" href="#change.log">Change Log (to be removed by RFC Editor before publication)</a></h1> 1997 1999 <p id="rfc.section.D.p.1">Changes up to the first Working Group Last Call draft are summarized in <<a href="http://trac.tools.ietf.org/html/draft-ietf-httpbis-p6-cache-19#appendix-C">http://trac.tools.ietf.org/html/draft-ietf-httpbis-p6-cache-19#appendix-C</a>>. … … 2058 2060 <p id="rfc.section.D.5.p.1">None yet.</p> 2059 2061 <h1 id="rfc.index"><a href="#rfc.index">Index</a></h1> 2060 <p class="noprint"><a href="#rfc.index.1">1</a> <a href="#rfc.index.2">2</a> <a href="#rfc.index.A">A</a> <a href="#rfc.index.B">B</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>2062 <p class="noprint"><a href="#rfc.index.1">1</a> <a href="#rfc.index.2">2</a> <a href="#rfc.index.A">A</a> <a href="#rfc.index.B">B</a> <a href="#rfc.index.C">C</a> <a href="#rfc.index.D">D</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.T">T</a> <a href="#rfc.index.V">V</a> <a href="#rfc.index.W">W</a> 2061 2063 </p> 2062 2064 <div class="print2col"> 2063 2065 <ul class="ind"> 2064 2066 <li><a id="rfc.index.1" href="#rfc.index.1"><b>1</b></a><ul> 2065 <li>110 Response is Stale (warn code) <a href="#rfc.iref.50"><b>5.5.1</b></a>, <a href="#rfc.xref.warn.110.1">7.2.2</a></li>2066 <li>111 Revalidation Failed (warncode) <a href="#rfc.iref.50"><b>5.5.2</b></a>, <a href="#rfc.xref.warn.111.1">7.2.2</a></li>2067 <li>112 Disconnected Operation (warn code) <a href="#rfc.iref.50"><b>5.5.3</b></a>, <a href="#rfc.xref.warn.112.1">7.2.2</a></li>2068 <li>113 Heuristic Expiration (warn code) <a href="#rfc.iref.50"><b>5.5.4</b></a>, <a href="#rfc.xref.warn.113.1">7.2.2</a></li>2069 <li>199 Miscellaneous Warning (warn code) <a href="#rfc.iref.50"><b>5.5.5</b></a>, <a href="#rfc.xref.warn.199.1">7.2.2</a></li>2067 <li>110 (warn-code) <a href="#rfc.iref.49"><b>5.5.1</b></a>, <a href="#rfc.xref.warn.110.1">7.2.2</a></li> 2068 <li>111 (warn-code) <a href="#rfc.iref.50"><b>5.5.2</b></a>, <a href="#rfc.xref.warn.111.1">7.2.2</a></li> 2069 <li>112 (warn-code) <a href="#rfc.iref.51"><b>5.5.3</b></a>, <a href="#rfc.xref.warn.112.1">7.2.2</a></li> 2070 <li>113 (warn-code) <a href="#rfc.iref.52"><b>5.5.4</b></a>, <a href="#rfc.xref.warn.113.1">7.2.2</a></li> 2071 <li>199 (warn-code) <a href="#rfc.iref.53"><b>5.5.5</b></a>, <a href="#rfc.xref.warn.199.1">7.2.2</a></li> 2070 2072 </ul> 2071 2073 </li> 2072 2074 <li><a id="rfc.index.2" href="#rfc.index.2"><b>2</b></a><ul> 2073 <li>214 Transformation Applied (warn code) <a href="#rfc.iref.50"><b>5.5.6</b></a>, <a href="#rfc.xref.warn.214.1">7.2.2</a></li>2074 <li>299 Miscellaneous Persistent Warning (warn code) <a href="#rfc.iref.50"><b>5.5.7</b></a>, <a href="#rfc.xref.warn.299.1">7.2.2</a></li>2075 <li>214 (warn-code) <a href="#rfc.iref.54"><b>5.5.6</b></a>, <a href="#rfc.xref.warn.214.1">7.2.2</a></li> 2076 <li>299 (warn-code) <a href="#rfc.iref.55"><b>5.5.7</b></a>, <a href="#rfc.xref.warn.299.1">7.2.2</a></li> 2075 2077 </ul> 2076 2078 </li> … … 2091 2093 </ul> 2092 2094 </li> 2095 <li><a id="rfc.index.D" href="#rfc.index.D"><b>D</b></a><ul> 2096 <li>Disconnected Operation (warn-text) <a href="#rfc.iref.d.1"><b>5.5.3</b></a>, <a href="#rfc.xref.warn.112.1">7.2.2</a></li> 2097 </ul> 2098 </li> 2093 2099 <li><a id="rfc.index.E" href="#rfc.index.E"><b>E</b></a><ul> 2094 2100 <li>Expires header field <a href="#rfc.xref.header.expires.1">3</a>, <a href="#rfc.xref.header.expires.2">4.2</a>, <a href="#rfc.xref.header.expires.3">4.2.1</a>, <a href="#rfc.iref.e.2"><b>5.3</b></a>, <a href="#rfc.xref.header.expires.4">7.3</a>, <a href="#rfc.xref.header.expires.5">A</a></li> … … 2097 2103 </li> 2098 2104 <li><a id="rfc.index.F" href="#rfc.index.F"><b>F</b></a><ul> 2099 <li>first-hand <a href="#rfc.iref.f.3">4.2.4</a></li>2100 2105 <li>fresh <a href="#rfc.iref.f.1">4.2</a></li> 2101 2106 <li>freshness lifetime <a href="#rfc.iref.f.2">4.2</a></li> … … 2124 2129 </li> 2125 2130 <li><a id="rfc.index.H" href="#rfc.index.H"><b>H</b></a><ul> 2131 <li>Heuristic Expiration (warn-text) <a href="#rfc.iref.h.2"><b>5.5.4</b></a>, <a href="#rfc.xref.warn.113.1">7.2.2</a></li> 2126 2132 <li>heuristic expiration time <a href="#rfc.iref.h.1">4.2</a></li> 2127 2133 </ul> … … 2131 2137 <li>max-stale (cache directive) <a href="#rfc.iref.m.2"><b>5.2.1.2</b></a></li> 2132 2138 <li>min-fresh (cache directive) <a href="#rfc.iref.m.3"><b>5.2.1.3</b></a></li> 2139 <li>Miscellaneous Persistent Warning (warn-text) <a href="#rfc.iref.m.7"><b>5.5.7</b></a>, <a href="#rfc.xref.warn.299.1">7.2.2</a></li> 2140 <li>Miscellaneous Warning (warn-text) <a href="#rfc.iref.m.6"><b>5.5.5</b></a>, <a href="#rfc.xref.warn.199.1">7.2.2</a></li> 2133 2141 <li>must-revalidate (cache directive) <a href="#rfc.iref.m.4"><b>5.2.2.1</b></a></li> 2134 2142 </ul> … … 2195 2203 </li> 2196 2204 <li><a id="rfc.index.R" href="#rfc.index.R"><b>R</b></a><ul> 2205 <li>Response is Stale (warn-text) <a href="#rfc.iref.r.1"><b>5.5.1</b></a>, <a href="#rfc.xref.warn.110.1">7.2.2</a></li> 2206 <li>Revalidation Failed (warn-text) <a href="#rfc.iref.r.2"><b>5.5.2</b></a>, <a href="#rfc.xref.warn.111.1">7.2.2</a></li> 2197 2207 <li><em>RFC1305</em> <a href="#rfc.xref.RFC1305.1">4.2.3</a>, <a href="#RFC1305"><b>10.2</b></a></li> 2198 2208 <li><em>RFC2119</em> <a href="#rfc.xref.RFC2119.1">1.1</a>, <a href="#RFC2119"><b>10.1</b></a></li> … … 2224 2234 </ul> 2225 2235 </li> 2236 <li><a id="rfc.index.T" href="#rfc.index.T"><b>T</b></a><ul> 2237 <li>Transformation Applied (warn-text) <a href="#rfc.iref.t.1"><b>5.5.6</b></a>, <a href="#rfc.xref.warn.214.1">7.2.2</a></li> 2238 </ul> 2239 </li> 2226 2240 <li><a id="rfc.index.V" href="#rfc.index.V"><b>V</b></a><ul> 2227 2241 <li>validator <a href="#rfc.iref.v.1">4.3.1</a></li> -
draft-ietf-httpbis/latest/p6-cache.xml
r2383 r2384 20 20 <!ENTITY conformance "<xref target='Part1' x:rel='#conformance' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 21 21 <!ENTITY notation "<xref target='Part1' x:rel='#notation' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 22 <!ENTITY abnf-extension "<xref target='Part1' x:rel='#abnf.extension' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">22 <!ENTITY abnf-extension "<xref target='Part1' x:rel='#abnf.extension' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 23 23 <!ENTITY acks "<xref target='Part1' x:rel='#acks' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 24 24 <!ENTITY whitespace "<xref target='Part1' x:rel='#whitespace' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 674 674 <t> 675 675 When a heuristic is used to calculate freshness lifetime, a cache &SHOULD; 676 attach a <x:ref>Warning</x:ref> header field with a 113 warn-code tothe676 generate a <x:ref>Warning</x:ref> header field with a 113 warn-code in the 677 677 response if its current_age is more than 24 hours and such a warning is not 678 678 already present. … … 815 815 </t> 816 816 <t> 817 A cache &SHOULD; append a <x:ref>Warning</x:ref> header field with the 110 818 warn-code (see <xref target="header.warning"/>) to stale responses. 819 Likewise, a cache &SHOULD; add the 112 warn-code to stale responses if the 820 cache is disconnected. 821 </t> 822 <iref item="first-hand" /> 823 <t> 824 Note that if a cache receives a <x:dfn>first-hand</x:dfn> response (one 825 where the freshness model is not in use; i.e., its age is 0, whether it is 826 an entire response, or a <x:ref>304 (Not Modified)</x:ref> response) that 827 it would normally forward to the requesting client, and the received 828 response is no longer fresh, the cache &MAY; forward it to the requesting 829 client without adding a new <x:ref>Warning</x:ref> (but without removing 830 any existing Warning header fields). A cache ought not attempt to validate 831 a response simply because that response became stale in transit. 817 A cache &SHOULD; generate a <x:ref>Warning</x:ref> header field with the 818 110 warn-code (see <xref target="header.warning"/>) in stale responses. 819 Likewise, a cache &SHOULD; generate a 112 warn-code in stale responses 820 if the cache is disconnected. 821 </t> 822 <t> 823 A cache &SHOULD-NOT; generate a new <x:ref>Warning</x:ref> header field 824 when forwarding a response that does not have an <x:ref>Age</x:ref> header 825 field, even if the response is already stale. A cache need not validate 826 a response that merely became stale in transit. 832 827 </t> 833 828 </section> … … 1164 1159 </artwork></figure> 1165 1160 <t> 1166 Age field-values are non-negative integers, representing time in seconds 1167 (see <xref target="delta-seconds"/>). 1168 </t> 1169 <t> 1170 The presence of an Age header field in a response implies that a response 1171 is not first-hand. However, the converse is not true, since HTTP/1.0 caches 1172 might not implement the Age header field. 1161 The Age field-value is a non-negative integer, representing time in seconds 1162 (see <xref target="delta-seconds"/>). 1163 </t> 1164 <t> 1165 The presence of an Age header field implies that the response was not 1166 generated or validated by the origin server for this request. However, 1167 lack of an Age header field does not imply the origin was contacted, since 1168 the response might have been received from an HTTP/1.0 cache that does not 1169 implement Age. 1173 1170 </t> 1174 1171 </section> … … 1736 1733 The "Warning" header field is used to carry additional information 1737 1734 about the status or transformation of a message that might not be reflected 1738 in the message. This information is typically used to warn about possible1735 in the status code. This information is typically used to warn about possible 1739 1736 incorrectness introduced by caching operations or transformations applied 1740 1737 to the payload of the message. … … 1764 1761 </artwork></figure> 1765 1762 <t> 1766 Multiple warnings can be attached to a response (either by the origin 1767 server or by a cache), including multiple warnings with the same code 1768 number, only differing in warn-text. 1769 </t> 1770 <t> 1771 When this occurs, the user agent &SHOULD; inform the user of as many of 1772 them as possible, in the order that they appear in the response. 1773 </t> 1774 <t> 1775 Systems that generate multiple Warning header fields are encouraged to 1776 order them with this user agent behavior in mind. New Warning header fields 1777 are added after any existing Warning header fields. 1763 Multiple warnings can be generated in a response (either by the origin 1764 server or by a cache), including multiple warnings with the same warn-code 1765 number that only differ in warn-text. 1766 </t> 1767 <t> 1768 A user agent that receives one or more Warning header fields &SHOULD; 1769 inform the user of as many of them as possible, in the order that they 1770 appear in the response. Senders that generate multiple Warning header 1771 fields are encouraged to order them with this user agent behavior in mind. 1772 A sender that generates new Warning header fields &MUST; append them after 1773 any existing Warning header fields. 1778 1774 </t> 1779 1775 <t> … … 1782 1778 validation: 1783 1779 <list style="symbols"> 1784 <t>1xx Warnings describe the freshness or validation status of the1780 <t>1xx warn-codes describe the freshness or validation status of the 1785 1781 response, and so &MUST; be deleted by a cache after validation. They can 1786 1782 only be generated by a cache when validating a cached entry, and 1787 1783 &MUST-NOT; be generated in any other situation.</t> 1788 <t>2xx Warnings describe some aspect of the representation that is not1784 <t>2xx warn-codes describe some aspect of the representation that is not 1789 1785 rectified by a validation (for example, a lossy compression of the 1790 1786 representation) and &MUST-NOT; be deleted by a cache after validation, … … 1793 1789 </t> 1794 1790 <t> 1795 If a n implementation sends a message with one or more Warning header fields1796 to a receiver whose version is HTTP/1.0 or lower, thenthe sender &MUST;1797 include in each warning-value a warn-date that matches the1791 If a sender generates one or more Warning header fields in a message to be 1792 sent to a recipient known to implement only HTTP/1.0, the sender &MUST; 1793 include in each generated warning-value a warn-date that matches the 1798 1794 <x:ref>Date</x:ref> header field in the message. 1799 1795 </t> 1800 1796 <t> 1801 If a system receives a message with a warning-value that includes a 1802 warn-date, and that warn-date is different from the <x:ref>Date</x:ref> 1803 value in the response, then that warning-value &MUST; be deleted from the 1804 message before storing, forwarding, or using it (preventing the 1805 consequences of naive caching of Warning header fields). If all of the 1806 warning-values are deleted for this reason, the Warning header field &MUST; 1807 be deleted as well. 1797 If a recipient that uses, evaluates, or displays Warning header fields 1798 receives a warn-date that is different from the <x:ref>Date</x:ref> value 1799 in the same message, the recipient &MUST; exclude the warning-value 1800 containing that warn-date before storing, forwarding, or using the message. 1801 This allows recipients to exclude warning-values that were improperly 1802 retained after a cache validation. 1803 If all of the warning-values are excluded, the recipient &MUST; exclude 1804 the Warning header field as well. 1808 1805 </t> 1809 1806 <t> 1810 1807 The following warn-codes are defined by this specification, each with a 1811 1808 recommended warn-text in English, and a description of its meaning. 1812 </t> 1813 1814 <section title="110 Response is Stale" anchor="warn.110"> 1815 <iref primary="true" item="110 Response is Stale (warn code)" x:for-anchor=""/> 1809 The procedure for defining additional warn codes is described in 1810 <xref target="warn.code.registry.procedure"/>. 1811 </t> 1812 1813 <section title='Warning: 110 means "Response is Stale"' anchor="warn.110"> 1814 <iref primary="true" item="110 (warn-code)" x:for-anchor=""/> 1815 <iref primary="true" item="Response is Stale (warn-text)" x:for-anchor=""/> 1816 1816 <t> 1817 1817 A cache &SHOULD; generate this whenever the sent response is stale. … … 1819 1819 </section> 1820 1820 1821 <section title="111 Revalidation Failed" anchor="warn.111"> 1822 <iref primary="true" item="111 Revalidation Failed (warn code)" x:for-anchor=""/> 1821 <section title='Warning: 111 means "Revalidation Failed"' anchor="warn.111"> 1822 <iref primary="true" item="111 (warn-code)" x:for-anchor=""/> 1823 <iref primary="true" item="Revalidation Failed (warn-text)" x:for-anchor=""/> 1823 1824 <t> 1824 1825 A cache &SHOULD; generate this when sending a stale response because an … … 1828 1829 </section> 1829 1830 1830 <section title="112 Disconnected Operation" anchor="warn.112"> 1831 <iref primary="true" item="112 Disconnected Operation (warn code)" x:for-anchor=""/> 1831 <section title='Warning: 112 means "Disconnected Operation"' anchor="warn.112"> 1832 <iref primary="true" item="112 (warn-code)" x:for-anchor=""/> 1833 <iref primary="true" item="Disconnected Operation (warn-text)" x:for-anchor=""/> 1832 1834 <t> 1833 1835 A cache &SHOULD; generate this if it is intentionally disconnected from … … 1836 1838 </section> 1837 1839 1838 <section title="113 Heuristic Expiration" anchor="warn.113"> 1839 <iref primary="true" item="113 Heuristic Expiration (warn code)" x:for-anchor=""/> 1840 <section title='Warning: 113 means "Heuristic Expiration"' anchor="warn.113"> 1841 <iref primary="true" item="113 (warn-code)" x:for-anchor=""/> 1842 <iref primary="true" item="Heuristic Expiration (warn-text)" x:for-anchor=""/> 1840 1843 <t> 1841 1844 A cache &SHOULD; generate this if it heuristically chose a freshness … … 1845 1848 </section> 1846 1849 1847 <section title="199 Miscellaneous Warning" anchor="warn.199"> 1848 <iref primary="true" item="199 Miscellaneous Warning (warn code)" x:for-anchor=""/> 1850 <section title='Warning: 199 means "Miscellaneous Warning"' anchor="warn.199"> 1851 <iref primary="true" item="199 (warn-code)" x:for-anchor=""/> 1852 <iref primary="true" item="Miscellaneous Warning (warn-text)" x:for-anchor=""/> 1849 1853 <t> 1850 1854 The warning text can include arbitrary information to be presented to … … 1854 1858 </section> 1855 1859 1856 <section title="214 Transformation Applied" anchor="warn.214"> 1857 <iref primary="true" item="214 Transformation Applied (warn code)" x:for-anchor=""/> 1860 <section title='Warning: 214 means "Transformation Applied"' anchor="warn.214"> 1861 <iref primary="true" item="214 (warn-code)" x:for-anchor=""/> 1862 <iref primary="true" item="Transformation Applied (warn-text)" x:for-anchor=""/> 1858 1863 <t> 1859 1864 &MUST; be added by a proxy if it applies any transformation to the … … 1864 1869 </section> 1865 1870 1866 <section title="299 Miscellaneous Persistent Warning" anchor="warn.299"> 1867 <iref primary="true" item="299 Miscellaneous Persistent Warning (warn code)" x:for-anchor=""/> 1871 <section title='Warning: 299 means "Miscellaneous Persistent Warning"' anchor="warn.299"> 1872 <iref primary="true" item="299 (warn-code)" x:for-anchor=""/> 1873 <iref primary="true" item="Miscellaneous Persistent Warning (warn-text)" x:for-anchor=""/> 1868 1874 <t> 1869 1875 The warning text can include arbitrary information to be presented to 1870 1876 a human user, or logged. A system receiving this warning &MUST-NOT; take 1871 1877 any automated action. 1872 </t>1873 </section>1874 1875 <section title="Warn Code Extensions" anchor="warn.code.extensions">1876 <t>1877 Extension warn codes can be defined; see <xref target="warn.code.registry.procedure"/>1878 for details.1879 1878 </t> 1880 1879 </section> … … 2660 2659 <x:ref>warn-date</x:ref> = DQUOTE HTTP-date DQUOTE 2661 2660 <x:ref>warn-text</x:ref> = quoted-string 2662 <x:ref>warning-value</x:ref> = warn-code SP warn-agent SP warn-text SP warn-date2661 <x:ref>warning-value</x:ref> = warn-code SP warn-agent SP warn-text [ SP warn-date ] 2663 2662 </artwork> 2664 2663 </figure>
Note: See TracChangeset
for help on using the changeset viewer.