Changeset 1809
- Timestamp:
- 16/07/12 16:42:58 (10 years ago)
- Location:
- draft-ietf-httpbis
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/20
-
Property
svn:mergeinfo
set to
/draft-ietf-httpbis/latest merged eligible
-
Property
svn:mergeinfo
set to
-
draft-ietf-httpbis/20/draft-ietf-httpbis-p5-range-20.txt
r1807 r1809 18 18 The Hypertext Transfer Protocol (HTTP) is an application-level 19 19 protocol for distributed, collaborative, hypertext information 20 systems. HTTP has been in use by the World Wide Web global 21 information initiative since 1990. This document is Part 5 of the 22 seven-part specification that defines the protocol referred to as 23 "HTTP/1.1" and, taken together, obsoletes RFC 2616. 24 25 Part 5 defines range requests and the rules for constructing and 26 combining responses to those requests. 20 systems. This document defines range requests and the rules for 21 constructing and combining responses to those requests. 27 22 28 23 Editorial Note (To be removed by RFC Editor) … … 50 45 51 46 Internet-Drafts are draft documents valid for a maximum of six months 52 53 54 55 Fielding, et al. Expires January 17, 2013 [Page 1]56 57 58 Internet-Draft HTTP/1.1, Part 5 July 201259 60 61 47 and may be updated, replaced, or obsoleted by other documents at any 62 48 time. It is inappropriate to use Internet-Drafts as reference … … 64 50 65 51 This Internet-Draft will expire on January 17, 2013. 52 53 54 55 Fielding, et al. Expires January 17, 2013 [Page 1] 56 57 58 Internet-Draft HTTP/1.1, Part 5 July 2012 59 66 60 67 61 Copyright Notice … … 91 85 it for publication as an RFC or to translate it into languages other 92 86 than English. 87 88 89 90 91 92 93 93 94 94 -
draft-ietf-httpbis/20/draft-ietf-httpbis-p5-range-20.xml
r1807 r1809 75 75 <t> 76 76 The Hypertext Transfer Protocol (HTTP) is an application-level protocol for 77 distributed, collaborative, hypertext information systems. HTTP has been in 78 use by the World Wide Web global information initiative since 1990. This 79 document is Part 5 of the seven-part specification that defines the protocol 80 referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. 81 </t> 82 <t> 83 Part 5 defines range requests and the rules for constructing and 84 combining responses to those requests. 77 distributed, collaborative, hypertext information systems. This document 78 defines range requests and the rules for constructing and combining 79 responses to those requests. 85 80 </t> 86 81 </abstract> -
draft-ietf-httpbis/20/draft-ietf-httpbis-p6-cache-20.txt
r1807 r1809 20 20 The Hypertext Transfer Protocol (HTTP) is an application-level 21 21 protocol for distributed, collaborative, hypertext information 22 systems. HTTP has been in use by the World Wide Web global 23 information initiative since 1990. This document is Part 6 of the 24 seven-part specification that defines the protocol referred to as 25 "HTTP/1.1" and, taken together, obsoletes RFC 2616. 26 27 Part 6 defines requirements on HTTP caches and the associated header 28 fields that control cache behavior or indicate cacheable response 29 messages. 22 systems. This document defines requirements on HTTP caches and the 23 associated header fields that control cache behavior or indicate 24 cacheable response messages. 30 25 31 26 Editorial Note (To be removed by RFC Editor) … … 50 45 Task Force (IETF). Note that other groups may also distribute 51 46 working documents as Internet-Drafts. The list of current Internet- 52 53 54 55 Fielding, et al. Expires January 17, 2013 [Page 1]56 57 58 Internet-Draft HTTP/1.1, Part 6 July 201259 60 61 47 Drafts is at http://datatracker.ietf.org/drafts/current/. 62 48 … … 64 50 and may be updated, replaced, or obsoleted by other documents at any 65 51 time. It is inappropriate to use Internet-Drafts as reference 52 53 54 55 Fielding, et al. Expires January 17, 2013 [Page 1] 56 57 58 Internet-Draft HTTP/1.1, Part 6 July 2012 59 60 66 61 material or to cite them other than as "work in progress." 67 62 … … 107 102 3.1. Storing Incomplete Responses . . . . . . . . . . . . . . . 9 108 103 3.2. Storing Responses to Authenticated Requests . . . . . . . 9 109 110 111 112 Fielding, et al. Expires January 17, 2013 [Page 2]113 114 115 Internet-Draft HTTP/1.1, Part 6 July 2012116 117 118 104 4. Constructing Responses from Caches . . . . . . . . . . . . . . 10 119 105 4.1. Freshness Model . . . . . . . . . . . . . . . . . . . . . 11 … … 121 107 4.1.2. Calculating Heuristic Freshness . . . . . . . . . . . 12 122 108 4.1.3. Calculating Age . . . . . . . . . . . . . . . . . . . 13 109 110 111 112 Fielding, et al. Expires January 17, 2013 [Page 2] 113 114 115 Internet-Draft HTTP/1.1, Part 6 July 2012 116 117 123 118 4.1.4. Serving Stale Responses . . . . . . . . . . . . . . . 15 124 119 4.2. Validation Model . . . . . . . . . . . . . . . . . . . . . 16 … … 167 162 168 163 164 165 166 167 168 169 169 Fielding, et al. Expires January 17, 2013 [Page 3] 170 170 -
draft-ietf-httpbis/20/draft-ietf-httpbis-p6-cache-20.xml
r1807 r1809 83 83 <t> 84 84 The Hypertext Transfer Protocol (HTTP) is an application-level protocol for 85 distributed, collaborative, hypertext information systems. HTTP has been in 86 use by the World Wide Web global information initiative since 1990. This 87 document is Part 6 of the seven-part specification that defines the protocol 88 referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. 89 </t> 90 <t> 91 Part 6 defines requirements on HTTP caches and the associated header fields 85 distributed, collaborative, hypertext information systems. This document 86 defines requirements on HTTP caches and the associated header fields 92 87 that control cache behavior or indicate cacheable response messages. 93 88 </t> -
draft-ietf-httpbis/20/draft-ietf-httpbis-p7-auth-20.txt
r1807 r1809 18 18 The Hypertext Transfer Protocol (HTTP) is an application-level 19 19 protocol for distributed, collaborative, hypermedia information 20 systems. HTTP has been in use by the World Wide Web global 21 information initiative since 1990. This document is Part 7 of the 22 seven-part specification that defines the protocol referred to as 23 "HTTP/1.1" and, taken together, obsoletes RFC 2616. 24 25 Part 7 defines the HTTP Authentication framework. 20 systems. This document defines the HTTP Authentication framework. 26 21 27 22 Editorial Note (To be removed by RFC Editor) … … 50 45 Internet-Drafts are draft documents valid for a maximum of six months 51 46 and may be updated, replaced, or obsoleted by other documents at any 52 53 54 55 Fielding, et al. Expires January 17, 2013 [Page 1]56 57 58 Internet-Draft HTTP/1.1, Part 7 July 201259 60 61 47 time. It is inappropriate to use Internet-Drafts as reference 62 48 material or to cite them other than as "work in progress." 63 49 64 50 This Internet-Draft will expire on January 17, 2013. 51 52 53 54 55 Fielding, et al. Expires January 17, 2013 [Page 1] 56 57 58 Internet-Draft HTTP/1.1, Part 7 July 2012 59 65 60 66 61 Copyright Notice … … 90 85 it for publication as an RFC or to translate it into languages other 91 86 than English. 87 88 89 90 91 92 92 93 93 -
draft-ietf-httpbis/20/draft-ietf-httpbis-p7-auth-20.xml
r1807 r1809 74 74 <t> 75 75 The Hypertext Transfer Protocol (HTTP) is an application-level protocol for 76 distributed, collaborative, hypermedia information systems. HTTP has been in 77 use by the World Wide Web global information initiative since 1990. This 78 document is Part 7 of the seven-part specification that defines the protocol 79 referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. 80 </t> 81 <t> 82 Part 7 defines the HTTP Authentication framework. 76 distributed, collaborative, hypermedia information systems. This document 77 defines the HTTP Authentication framework. 83 78 </t> 84 79 </abstract> -
draft-ietf-httpbis/20/p5-range.html
r1807 r1809 495 495 <meta name="dct.issued" scheme="ISO8601" content="2012-07-16"> 496 496 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 497 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 5 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 5defines range requests and the rules for constructing and combining responses to those requests.">498 <meta name="description" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 5 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 5defines range requests and the rules for constructing and combining responses to those requests.">497 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines range requests and the rules for constructing and combining responses to those requests."> 498 <meta name="description" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines range requests and the rules for constructing and combining responses to those requests."> 499 499 </head> 500 500 <body onload="init();"> … … 535 535 <h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1> 536 536 <p>The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information 537 systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 5 of the 538 seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. 539 </p> 540 <p>Part 5 defines range requests and the rules for constructing and combining responses to those requests.</p> 537 systems. This document defines range requests and the rules for constructing and combining responses to those requests. 538 </p> 541 539 <h1 id="rfc.note.1"><a href="#rfc.note.1">Editorial Note (To be removed by RFC Editor)</a></h1> 542 540 <p>Discussion of this draft takes place on the HTTPBIS working group mailing list (ietf-http-wg@w3.org), which is archived at <<a href="http://lists.w3.org/Archives/Public/ietf-http-wg/">http://lists.w3.org/Archives/Public/ietf-http-wg/</a>>. -
draft-ietf-httpbis/20/p5-range.xml
r1807 r1809 101 101 <t> 102 102 The Hypertext Transfer Protocol (HTTP) is an application-level protocol for 103 distributed, collaborative, hypertext information systems. HTTP has been in 104 use by the World Wide Web global information initiative since 1990. This 105 document is Part 5 of the seven-part specification that defines the protocol 106 referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. 107 </t> 108 <t> 109 Part 5 defines range requests and the rules for constructing and 110 combining responses to those requests. 103 distributed, collaborative, hypertext information systems. This document 104 defines range requests and the rules for constructing and combining 105 responses to those requests. 111 106 </t> 112 107 </abstract> -
draft-ietf-httpbis/20/p6-cache.html
r1807 r1809 501 501 <meta name="dct.issued" scheme="ISO8601" content="2012-07-16"> 502 502 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 503 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 6 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 6defines requirements on HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.">504 <meta name="description" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 6 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 6defines requirements on HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.">503 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines requirements on HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages."> 504 <meta name="description" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines requirements on HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages."> 505 505 </head> 506 506 <body onload="init();"> … … 549 549 <h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1> 550 550 <p>The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information 551 systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 6 of the 552 seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. 553 </p> 554 <p>Part 6 defines requirements on HTTP caches and the associated header fields that control cache behavior or indicate cacheable 555 response messages. 551 systems. This document defines requirements on HTTP caches and the associated header fields that control cache behavior or 552 indicate cacheable response messages. 556 553 </p> 557 554 <h1 id="rfc.note.1"><a href="#rfc.note.1">Editorial Note (To be removed by RFC Editor)</a></h1> -
draft-ietf-httpbis/20/p6-cache.xml
r1807 r1809 122 122 <t> 123 123 The Hypertext Transfer Protocol (HTTP) is an application-level protocol for 124 distributed, collaborative, hypertext information systems. HTTP has been in 125 use by the World Wide Web global information initiative since 1990. This 126 document is Part 6 of the seven-part specification that defines the protocol 127 referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. 128 </t> 129 <t> 130 Part 6 defines requirements on HTTP caches and the associated header fields 124 distributed, collaborative, hypertext information systems. This document 125 defines requirements on HTTP caches and the associated header fields 131 126 that control cache behavior or indicate cacheable response messages. 132 127 </t> -
draft-ietf-httpbis/20/p7-auth.html
r1807 r1809 492 492 <meta name="dct.issued" scheme="ISO8601" content="2012-07-16"> 493 493 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 494 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 7 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 7defines the HTTP Authentication framework.">495 <meta name="description" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 7 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 7defines the HTTP Authentication framework.">494 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. This document defines the HTTP Authentication framework."> 495 <meta name="description" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. This document defines the HTTP Authentication framework."> 496 496 </head> 497 497 <body onload="init();"> … … 533 533 <h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1> 534 534 <p>The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information 535 systems. HTTP has been in use by the World Wide Web global information initiative since 1990. This document is Part 7 of the 536 seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. 537 </p> 538 <p>Part 7 defines the HTTP Authentication framework.</p> 535 systems. This document defines the HTTP Authentication framework. 536 </p> 539 537 <h1 id="rfc.note.1"><a href="#rfc.note.1">Editorial Note (To be removed by RFC Editor)</a></h1> 540 538 <p>Discussion of this draft takes place on the HTTPBIS working group mailing list (ietf-http-wg@w3.org), which is archived at <<a href="http://lists.w3.org/Archives/Public/ietf-http-wg/">http://lists.w3.org/Archives/Public/ietf-http-wg/</a>>. -
draft-ietf-httpbis/20/p7-auth.xml
r1807 r1809 100 100 <t> 101 101 The Hypertext Transfer Protocol (HTTP) is an application-level protocol for 102 distributed, collaborative, hypermedia information systems. HTTP has been in 103 use by the World Wide Web global information initiative since 1990. This 104 document is Part 7 of the seven-part specification that defines the protocol 105 referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. 106 </t> 107 <t> 108 Part 7 defines the HTTP Authentication framework. 102 distributed, collaborative, hypermedia information systems. This document 103 defines the HTTP Authentication framework. 109 104 </t> 110 105 </abstract> -
draft-ietf-httpbis/diffs/draft-ietf-httpbis-p5-range-20-from-19.diff.html
r1807 r1809 56 56 <tr><td class="lineno" valign="top"></td><td class="left"> The Hypertext Transfer Protocol (HTTP) is an application-level</td><td> </td><td class="right"> The Hypertext Transfer Protocol (HTTP) is an application-level</td><td class="lineno" valign="top"></td></tr> 57 57 <tr><td class="lineno" valign="top"></td><td class="left"> protocol for distributed, collaborative, hypertext information</td><td> </td><td class="right"> protocol for distributed, collaborative, hypertext information</td><td class="lineno" valign="top"></td></tr> 58 <tr><td class="lineno" valign="top"></td><td class="left"> systems. HTTP has been in use by the World Wide Web global</td><td> </td><td class="right"> systems. HTTP has been in use by the World Wide Web global</td><td class="lineno" valign="top"></td></tr>59 <tr><td class="lineno" valign="top"></td><td class="left"> information initiative since 1990. This document is Part 5 of the</td><td> </td><td class="right"> information initiative since 1990. This document is Part 5 of the</td><td class="lineno" valign="top"></td></tr>60 <tr><td class="lineno" valign="top"></td><td class="left"> seven-part specification that defines the protocol referred to as</td><td> </td><td class="right"> seven-part specification that defines the protocol referred to as</td><td class="lineno" valign="top"></td></tr>61 <tr><td class="lineno" valign="top"></td><td class="left"> "HTTP/1.1" and, taken together, obsoletes RFC 2616.</td><td> </td><td class="right"> "HTTP/1.1" and, taken together, obsoletes RFC 2616.</td><td class="lineno" valign="top"></td></tr>62 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>63 58 <tr><td><a name="diff0004" /></td></tr> 64 <tr><td class="lineno" valign="top"></td><td class="lblock"> Part 5 defines <span class="delete">range-specific</span> requests and the rules for constructing</td><td> </td><td class="rblock"> Part 5 defines <span class="insert">range</span> requests and the rules for constructing and</td><td class="lineno" valign="top"></td></tr> 65 <tr><td class="lineno" valign="top"></td><td class="lblock"> and combining responses to those requests.</td><td> </td><td class="rblock"> combining responses to those requests.</td><td class="lineno" valign="top"></td></tr> 59 <tr><td class="lineno" valign="top"></td><td class="lblock"> systems. <span class="delete">HTTP has been in use by the World Wide Web global</span></td><td> </td><td class="rblock"> systems. This document defines <span class="insert">range</span> requests and the rules for</td><td class="lineno" valign="top"></td></tr> 60 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> information initiative since 1990.</span> This document <span class="delete">is Part 5 of the</span></td><td> </td><td class="rblock"> constructing and combining responses to those requests.</td><td class="lineno" valign="top"></td></tr> 61 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> seven-part specification that</span> defines <span class="delete">the protocol referred to as</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 62 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> "HTTP/1.1" and, taken together, obsoletes RFC 2616.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 63 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 64 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Part 5 defines range-specific</span> requests and the rules for constructing</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 65 <tr><td class="lineno" valign="top"></td><td class="lblock"> and combining responses to those requests.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 66 66 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 67 67 <tr><td class="lineno" valign="top"></td><td class="left">Editorial Note (To be removed by RFC Editor)</td><td> </td><td class="right">Editorial Note (To be removed by RFC Editor)</td><td class="lineno" valign="top"></td></tr> … … 766 766 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 767 767 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Closed issues:</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 768 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 769 <tr><td><a name="diff0046" /></td></tr> 770 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">o <http://tools.ietf.org/wg/httpbis/trac/ticket/18>: "Cache</span></td><td> </td><td class="rblock"><span class="insert">Appendix E. Change Log (to</span> be <span class="insert">removed by RFC Editor before publication)</span></td><td class="lineno" valign="top"></td></tr> 768 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 769 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> o <http://tools.ietf.org/wg/httpbis/trac/ticket/18>: "Cache</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 771 770 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> validators in 206 responses"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 772 771 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> (<http://purl.org/NET/http-errata#ifrange206>)</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 852 851 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> o Fixed discrepancy in the If-Range definition about allowed</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 853 852 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> validators.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 854 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 855 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> o <http://tools.ietf.org/wg/httpbis/trac/ticket/150>: "multipart/</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 853 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 854 <tr><td><a name="diff0046" /></td></tr> 855 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">o <http://tools.ietf.org/wg/httpbis/trac/ticket/150>: "multipart/</span></td><td> </td><td class="rblock"><span class="insert">Appendix E. Change Log (to</span> be <span class="insert">removed by RFC Editor before publication)</span></td><td class="lineno" valign="top"></td></tr> 856 856 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> byteranges for custom range units"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 857 857 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1052 1052 <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr> 1053 1053 <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 61 change blocks. </a></th></tr> 1054 <tr class="stats"><td></td><th><i>3 16lines changed or deleted</i></th><th><i> </i></th><th><i>150 lines changed or added</i></th><td></td></tr>1054 <tr class="stats"><td></td><th><i>321 lines changed or deleted</i></th><th><i> </i></th><th><i>150 lines changed or added</i></th><td></td></tr> 1055 1055 <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.38. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr> 1056 1056 </table> -
draft-ietf-httpbis/diffs/draft-ietf-httpbis-p6-cache-20-from-19.diff.html
r1807 r1809 58 58 <tr><td class="lineno" valign="top"></td><td class="left"> The Hypertext Transfer Protocol (HTTP) is an application-level</td><td> </td><td class="right"> The Hypertext Transfer Protocol (HTTP) is an application-level</td><td class="lineno" valign="top"></td></tr> 59 59 <tr><td class="lineno" valign="top"></td><td class="left"> protocol for distributed, collaborative, hypertext information</td><td> </td><td class="right"> protocol for distributed, collaborative, hypertext information</td><td class="lineno" valign="top"></td></tr> 60 <tr><td class="lineno" valign="top"></td><td class="left"> systems. HTTP has been in use by the World Wide Web global</td><td> </td><td class="right"> systems. HTTP has been in use by the World Wide Web global</td><td class="lineno" valign="top"></td></tr> 61 <tr><td class="lineno" valign="top"></td><td class="left"> information initiative since 1990. This document is Part 6 of the</td><td> </td><td class="right"> information initiative since 1990. This document is Part 6 of the</td><td class="lineno" valign="top"></td></tr> 62 <tr><td class="lineno" valign="top"></td><td class="left"> seven-part specification that defines the protocol referred to as</td><td> </td><td class="right"> seven-part specification that defines the protocol referred to as</td><td class="lineno" valign="top"></td></tr> 63 <tr><td class="lineno" valign="top"></td><td class="left"> "HTTP/1.1" and, taken together, obsoletes RFC 2616.</td><td> </td><td class="right"> "HTTP/1.1" and, taken together, obsoletes RFC 2616.</td><td class="lineno" valign="top"></td></tr> 64 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 65 <tr><td class="lineno" valign="top"></td><td class="left"> Part 6 defines requirements on HTTP caches and the associated header</td><td> </td><td class="right"> Part 6 defines requirements on HTTP caches and the associated header</td><td class="lineno" valign="top"></td></tr> 66 <tr><td class="lineno" valign="top"></td><td class="left"> fields that control cache behavior or indicate cacheable response</td><td> </td><td class="right"> fields that control cache behavior or indicate cacheable response</td><td class="lineno" valign="top"></td></tr> 67 <tr><td class="lineno" valign="top"></td><td class="left"> messages.</td><td> </td><td class="right"> messages.</td><td class="lineno" valign="top"></td></tr> 60 <tr><td><a name="diff0004" /></td></tr> 61 <tr><td class="lineno" valign="top"></td><td class="lblock"> systems. <span class="delete">HTTP has been in use by the World Wide Web global</span></td><td> </td><td class="rblock"> systems. This document defines requirements on HTTP caches and the</td><td class="lineno" valign="top"></td></tr> 62 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> information initiative since 1990.</span> This document <span class="delete">is Part 6 of the</span></td><td> </td><td class="rblock"> associated header fields that control cache behavior or indicate</td><td class="lineno" valign="top"></td></tr> 63 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> seven-part specification that defines the protocol referred to as</span></td><td> </td><td class="rblock"> cacheable response messages.</td><td class="lineno" valign="top"></td></tr> 64 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> "HTTP/1.1" and, taken together, obsoletes RFC 2616.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 65 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 66 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Part 6</span> defines requirements on HTTP caches and the associated header</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 67 <tr><td class="lineno" valign="top"></td><td class="lblock"> fields that control cache behavior or indicate cacheable response</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 68 <tr><td class="lineno" valign="top"></td><td class="lblock"> messages.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 68 69 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 69 70 <tr><td class="lineno" valign="top"></td><td class="left">Editorial Note (To be removed by RFC Editor)</td><td> </td><td class="right">Editorial Note (To be removed by RFC Editor)</td><td class="lineno" valign="top"></td></tr> 70 71 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 71 <tr><td><a name="diff000 4" /></td></tr>72 <tr><td><a name="diff0005" /></td></tr> 72 73 <tr><td class="lineno" valign="top"></td><td class="lblock"> Discussion of this draft <span class="delete">should take</span> place on the HTTPBIS working</td><td> </td><td class="rblock"> Discussion of this draft <span class="insert">takes</span> place on the HTTPBIS working group</td><td class="lineno" valign="top"></td></tr> 73 74 <tr><td class="lineno" valign="top"></td><td class="lblock"> group mailing list (ietf-http-wg@w3.org), which is archived at</td><td> </td><td class="rblock"> mailing list (ietf-http-wg@w3.org), which is archived at</td><td class="lineno" valign="top"></td></tr> … … 79 80 <tr><td class="lineno" valign="top"></td><td class="left"> <http://tools.ietf.org/wg/httpbis/>.</td><td> </td><td class="right"> <http://tools.ietf.org/wg/httpbis/>.</td><td class="lineno" valign="top"></td></tr> 80 81 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 81 <tr><td><a name="diff000 5" /></td></tr>82 <tr><td><a name="diff0006" /></td></tr> 82 83 <tr><td class="lineno" valign="top"></td><td class="lblock"> The changes in this draft are summarized in Appendix <span class="delete">C.20</span>.</td><td> </td><td class="rblock"> The changes in this draft are summarized in Appendix <span class="insert">D.1</span>.</td><td class="lineno" valign="top"></td></tr> 83 84 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 97 98 <tr><td class="lineno" valign="top"></td><td class="left"> material or to cite them other than as "work in progress."</td><td> </td><td class="right"> material or to cite them other than as "work in progress."</td><td class="lineno" valign="top"></td></tr> 98 99 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 99 <tr><td><a name="diff000 6" /></td></tr>100 <tr><td><a name="diff0007" /></td></tr> 100 101 <tr><td class="lineno" valign="top"></td><td class="lblock"> This Internet-Draft will expire on <span class="delete">September 13, 2012</span>.</td><td> </td><td class="rblock"> This Internet-Draft will expire on <span class="insert">January 17, 2013</span>.</td><td class="lineno" valign="top"></td></tr> 101 102 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 110 111 <tr><td class="lineno" valign="top"></td><td class="left"> publication of this document. Please review these documents</td><td> </td><td class="right"> publication of this document. Please review these documents</td><td class="lineno" valign="top"></td></tr> 111 112 <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> 112 <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 2, line 42</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 2, line 42</em></th><td></td></tr>113 <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 2, line 42</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 2, line 37</em></th><td></td></tr> 113 114 <tr><td class="lineno" valign="top"></td><td class="left"> modifications of such material outside the IETF Standards Process.</td><td> </td><td class="right"> modifications of such material outside the IETF Standards Process.</td><td class="lineno" valign="top"></td></tr> 114 115 <tr><td class="lineno" valign="top"></td><td class="left"> Without obtaining an adequate license from the person(s) controlling</td><td> </td><td class="right"> Without obtaining an adequate license from the person(s) controlling</td><td class="lineno" valign="top"></td></tr> … … 121 122 <tr><td class="lineno" valign="top"></td><td class="left">Table of Contents</td><td> </td><td class="right">Table of Contents</td><td class="lineno" valign="top"></td></tr> 122 123 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 123 <tr><td><a name="diff000 7" /></td></tr>124 <tr><td><a name="diff0008" /></td></tr> 124 125 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">5</span></td><td> </td><td class="rblock"> 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> 125 126 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.1. Purpose . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">5</span></td><td> </td><td class="rblock"> 1.1. Purpose . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> … … 127 128 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.3. Conformance and Error Handling . . . . . . . . . . . . . . <span class="delete">7</span></td><td> </td><td class="rblock"> 1.3. Conformance and Error Handling . . . . . . . . . . . . . . <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> 128 129 <tr><td class="lineno" valign="top"></td><td class="left"> 1.4. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 7</td><td> </td><td class="right"> 1.4. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 7</td><td class="lineno" valign="top"></td></tr> 129 <tr><td><a name="diff000 8" /></td></tr>130 <tr><td><a name="diff0009" /></td></tr> 130 131 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.4.1. <span class="delete">Core Rules . .</span> . . . . . . . . . . . . . . . . . . . . <span class="delete">8</span></td><td> </td><td class="rblock"> 1.4.1. <span class="insert">Delta Seconds</span> . . . . . . . . . . . . . . . . . . . . <span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> 131 132 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 1.4.2. ABNF Rules defined in other Parts</span> of <span class="delete">the</span></td><td> </td><td class="rblock"><span class="insert"> 2. Overview</span> of <span class="insert">Cache Operation</span> . . . . . . . . . . . . . . . . . <span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> … … 133 134 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 1.5. Delta Seconds . .</span> . . . . . . . . . . . . . . . . . . . . 8</td><td> </td><td class="rblock"> <span class="insert">3.1. Storing Incomplete Responses</span> . . . . . . . . . . . . . . . <span class="insert">9</span></td><td class="lineno" valign="top"></td></tr> 134 135 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2. Cache Operation . . . . .</span> . . . . . . . . . . . . . . . . . . <span class="delete">8</span></td><td> </td><td class="rblock"><span class="insert"> 3.2. Storing Responses to Authenticated Requests</span> . . . . . . . <span class="insert">9</span></td><td class="lineno" valign="top"></td></tr> 135 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.1. Response Cacheability</span> . . . . . . . . . . . . . . . . . . <span class="delete">9</span></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>136 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.2. Constructing Responses from Caches</span> . . . . . . . . . . . . <span class="delete">10</span></td><td> </td><td class="rblock"><span class="insert"> 4. Constructing Responses from Caches</span> . . . . . . . . . . . . . . <span class="insert">10</span></td><td class="lineno" valign="top"></td></tr>137 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.3. Freshness Model</span> . . . . . . . . . . . . . . . . . . . . . 12</td><td> </td><td class="rblock"><span class="insert"> 4.1. Freshness Model</span> . . . . . . . . . . . . . . . . . . . . . <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr>138 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.3.1.</span> Calculating Freshness <span class="delete">Lifetime</span> . . . . . . . . . . . <span class="delete">. 13</span></td><td> </td><td class="rblock"> <span class="insert"> 4.1.1. Calculating Freshness Lifetime</span> . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr>139 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.3.2.</span> Calculating Age . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock"> <span class="insert">4.1.2.</span> Calculating <span class="insert">Heuristic</span> Freshness . . . . . . . . . . . <span class="insert">12</span></td><td class="lineno" valign="top"></td></tr>140 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.3.3.</span> Serving Stale Responses . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock"><span class="insert"> 4.1. 3.</span> Calculating Age . . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno" valign="top"></td></tr>141 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.4.</span> Validation Model . . . . . . . . . . . . . . . . . . . . . 16</td><td> </td><td class="rblock"><span class="insert"> 4.1.4.</span> Serving Stale Responses . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr>142 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.4.1.</span> Freshening Responses with 304 Not Modified . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock"> <span class="insert"> 4.2.</span> Validation Model . . . . . . . . . . . . . . . . . . . . . 16</td><td class="lineno" valign="top"></td></tr>143 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.5. Updating Caches with HEAD</span> Responses . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock"> <span class="insert">4.2.1.</span> Freshening Responses with 304 Not Modified . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr>144 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.6. Request Methods that Invalidate</span> . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock"><span class="insert"> 4. 3. Using Negotiated</span> Responses . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>145 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.7. Shared Caching of Authenticated Responses</span> . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock"><span class="insert"> 4.4. Combining Partial Content</span> . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>146 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.8. Caching Negotiated</span> Responses . . . . . . . . . . . . . <span class="delete">. .</span> 19</td><td> </td><td class="rblock"> <span class="insert"> 5. Updating Caches with HEAD</span> Responses . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr>147 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.9. Combining Partial Content .</span> . . . . . . . . . . . . . . . <span class="delete">20</span></td><td> </td><td class="rblock"> <span class="insert">6. Request Methods that Invalidate</span> . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>148 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.</span> Header Field Definitions . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock"><span class="insert"> 7.</span> Header Field Definitions. . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>149 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.1.</span> Age . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock"><span class="insert"> 7. 1.</span> Age . . . . .. . . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>150 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.2.</span> Cache-Control . . . . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock"><span class="insert"> 7.2.</span> Cache-Control . . . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>151 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.2.1.</span> Request Cache-Control Directives . . . . . . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock"><span class="insert"> 7.2. 1.</span> Request Cache-Control Directives . . . . . . . . . . . <span class="insert">21</span></td><td class="lineno" valign="top"></td></tr>152 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.2.2.</span> Response Cache-Control Directives . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock"><span class="insert"> 7.2. 2.</span> Response Cache-Control Directives . . . . . . . . . . <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr>153 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.2.3.</span> Cache Control Extensions . . . . . . . . . . . . . . . 26</td><td> </td><td class="rblock"> <span class="insert"> 7.2.3.</span> Cache Control Extensions . . . . . . . . . . . . . . . 26</td><td class="lineno" valign="top"></td></tr>154 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.3.</span> Expires . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">27</span></td><td> </td><td class="rblock"> <span class="insert">7.3.</span> Expires . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>155 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.4.</span> Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . 28</td><td> </td><td class="rblock"> <span class="insert"> 7.4.</span> Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . 28</td><td class="lineno" valign="top"></td></tr>156 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.5.</span> Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . 29</td><td> </td><td class="rblock"> <span class="insert">7. 5.</span> Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . 29</td><td class="lineno" valign="top"></td></tr>157 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.</span> Warning . . . . . . . . . . . . . . . . . . . . . . . . . 30</td><td> </td><td class="rblock"> <span class="insert">7.6.</span> Warning . . . . . . . . . . . . . . . . . . . . . . . . . 30</td><td class="lineno" valign="top"></td></tr>158 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.1.</span> 110 Response is Stale . . . . . . . . . . . . . . . . 31</td><td> </td><td class="rblock"> <span class="insert">7.6. 1.</span> 110 Response is Stale . . . . . . . . . . . . . . . . 31</td><td class="lineno" valign="top"></td></tr>159 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.2.</span> 111 Revalidation Failed . . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock"> <span class="insert">7.6.2.</span> 111 Revalidation Failed .. . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>160 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.6.3.</span> 112 Disconnected Operation . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock"><span class="insert"> 7.6. 3.</span> 112 Disconnected Operation . . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>161 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.6.4.</span> 113 Heuristic Expiration . . . . . . . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert"> 7.6.4.</span> 113 Heuristic Expiration .. . . . . . . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr>162 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.5.</span> 199 Miscellaneous Warning . . . . . . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert">7.6. 5.</span> 199 Miscellaneous Warning. . . . . . . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr>163 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.6.</span> 214 Transformation Applied . . . . . . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert">7.6. 6.</span> 214 Transformation Applied . . . . .. . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr>164 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.7.</span> 299 Miscellaneous Persistent Warning . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert">7.6. 7.</span> 299 Miscellaneous Persistent Warning. . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr>165 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.8.</span> Warn Code Extensions . . . . . . . . . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert">7.6.8.</span> Warn Code Extensions . . . . . . . . . . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr>166 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">4.</span> History Lists . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock"> <span class="insert">8.</span> History Lists . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr>167 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 5.</span> IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33</td><td> </td><td class="rblock"> <span class="insert"> 9.</span> IANA Considerations . . . .. . . . . . . . . . . . . . . . . 33</td><td class="lineno" valign="top"></td></tr>168 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">5.1.</span> Cache Directive Registry . . . . . . . . . . . . . . . . . 33</td><td> </td><td class="rblock"> <span class="insert">9. 1.</span> Cache Directive Registry . . . . . . . . . . . . . . . . . 33</td><td class="lineno" valign="top"></td></tr>169 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">5.2.</span> Warn Code Registry . . . . . . . . . . . . . . . . . . . . <span class="delete">33</span></td><td> </td><td class="rblock"> <span class="insert">9.2.</span> Warn Code Registry . . . . . . . . . . . . . . . . . . . . <span class="insert">34</span></td><td class="lineno" valign="top"></td></tr>170 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 5.3.</span> Header Field Registration . . . . . . . . . . . . . . . . 34</td><td> </td><td class="rblock"> <span class="insert"> 9.3.</span> Header Field Registration . . . . . . . . . . . . . . . . 34</td><td class="lineno" valign="top"></td></tr>171 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">6.</span> Security Considerations . . . . . . . . . . . . . . . . . . . <span class="delete">34</span></td><td> </td><td class="rblock"> <span class="insert">10.</span> Security Considerations. . . . . . . . . . . . . . . . . . . <span class="insert">35</span></td><td class="lineno" valign="top"></td></tr>172 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 7.</span> Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">34</span></td><td> </td><td class="rblock"><span class="insert"> 1 1.</span> Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">35</span></td><td class="lineno" valign="top"></td></tr>173 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 8.</span> References . . . . . . . . . . . . . . . . . . . . . . . . . . 35</td><td> </td><td class="rblock"> <span class="insert"> 12.</span> References . . . . . . .. . . . . . . . . . . . . . . . . . . 35</td><td class="lineno" valign="top"></td></tr>174 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">8.1.</span> Normative References . . . . . . . . . . . . . . . . . . . 35</td><td> </td><td class="rblock"> <span class="insert">12. 1.</span> Normative References . . . . . . . . . . . . . . . . . . . 35</td><td class="lineno" valign="top"></td></tr>175 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">8.2.</span> Informative References . . . . . . . . . . . . . . . . . . <span class="delete">35</span></td><td> </td><td class="rblock"> <span class="insert">12.2.</span> Informative References . . . . . . . . . . . . . . . . . . <span class="insert">36</span></td><td class="lineno" valign="top"></td></tr>136 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.1. Response Cacheability</span> . . . . . . . . . . . . . . . . . . <span class="delete">9</span></td><td> </td><td class="rblock"><span class="insert"> 4. Constructing Responses from Caches</span> . . . . . . . . . . . . . . <span class="insert">10</span></td><td class="lineno" valign="top"></td></tr> 137 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.2. Constructing Responses from Caches</span> . . . . . . . . . . . . <span class="delete">10</span></td><td> </td><td class="rblock"><span class="insert"> 4.1. Freshness Model</span> . . . . . . . . . . . . . . . . . . . . . <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> 138 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.3. Freshness Model</span> . . . . . . . . . . . . . . . . . . . . . 12</td><td> </td><td class="rblock"><span class="insert"> 4.1.1. Calculating Freshness Lifetime</span> . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr> 139 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.3.1.</span> Calculating Freshness <span class="delete">Lifetime</span> . . . . . . . . . . . <span class="delete">. 13</span></td><td> </td><td class="rblock"> <span class="insert">4.1.2.</span> Calculating <span class="insert">Heuristic</span> Freshness . . . . . . . . . . . <span class="insert">12</span></td><td class="lineno" valign="top"></td></tr> 140 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.3.2.</span> Calculating Age . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock"><span class="insert"> 4.1.3.</span> Calculating Age . . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno" valign="top"></td></tr> 141 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.3.3.</span> Serving Stale Responses . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock"><span class="insert"> 4.1.4.</span> Serving Stale Responses . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr> 142 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.4.</span> Validation Model . . . . . . . . . . . . . . . . . . . . . 16</td><td> </td><td class="rblock"><span class="insert"> 4.2.</span> Validation Model . . . . . . . . . . . . . . . . . . . . . 16</td><td class="lineno" valign="top"></td></tr> 143 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.4.1.</span> Freshening Responses with 304 Not Modified . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock"> <span class="insert">4.2.1.</span> Freshening Responses with 304 Not Modified . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr> 144 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.5. Updating Caches with HEAD</span> Responses . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock"><span class="insert"> 4.3. Using Negotiated</span> Responses . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr> 145 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.6. Request Methods that Invalidate</span> . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock"><span class="insert"> 4.4. Combining Partial Content</span> . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr> 146 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.7. Shared Caching of Authenticated Responses</span> . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock"><span class="insert"> 5. Updating Caches with HEAD</span> Responses . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr> 147 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 2.8. Caching Negotiated</span> Responses . . . . . . . . . . . . . <span class="delete">. .</span> 19</td><td> </td><td class="rblock"> <span class="insert">6. Request Methods that Invalidate</span> . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr> 148 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.9. Combining Partial Content .</span> . . . . . . . . . . . . . . . <span class="delete">20</span></td><td> </td><td class="rblock"><span class="insert"> 7.</span> Header Field Definitions . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> 149 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.</span> Header Field Definitions . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock"><span class="insert"> 7.1.</span> Age . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> 150 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.1.</span> Age . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock"><span class="insert"> 7.2.</span> Cache-Control . . . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> 151 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.2.</span> Cache-Control . . . . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock"><span class="insert"> 7.2.1.</span> Request Cache-Control Directives . . . . . . . . . . . <span class="insert">21</span></td><td class="lineno" valign="top"></td></tr> 152 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.2.1.</span> Request Cache-Control Directives . . . . . . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock"><span class="insert"> 7.2.2.</span> Response Cache-Control Directives . . . . . . . . . . <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr> 153 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.2.2.</span> Response Cache-Control Directives . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock"><span class="insert"> 7.2.3.</span> Cache Control Extensions . . . . . . . . . . . . . . . 26</td><td class="lineno" valign="top"></td></tr> 154 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.2.3.</span> Cache Control Extensions . . . . . . . . . . . . . . . 26</td><td> </td><td class="rblock"> <span class="insert">7.3.</span> Expires . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr> 155 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.3.</span> Expires . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">27</span></td><td> </td><td class="rblock"><span class="insert"> 7.4.</span> Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . 28</td><td class="lineno" valign="top"></td></tr> 156 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.4.</span> Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . 28</td><td> </td><td class="rblock"> <span class="insert">7.5.</span> Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . 29</td><td class="lineno" valign="top"></td></tr> 157 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.5.</span> Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . 29</td><td> </td><td class="rblock"> <span class="insert">7.6.</span> Warning . . . . . . . . . . . . . . . . . . . . . . . . . 30</td><td class="lineno" valign="top"></td></tr> 158 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.</span> Warning . . . . . . . . . . . . . . . . . . . . . . . . . 30</td><td> </td><td class="rblock"> <span class="insert">7.6.1.</span> 110 Response is Stale . . . . . . . . . . . . . . . . 31</td><td class="lineno" valign="top"></td></tr> 159 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.1.</span> 110 Response is Stale . . . . . . . . . . . . . . . . 31</td><td> </td><td class="rblock"> <span class="insert">7.6.2.</span> 111 Revalidation Failed . . . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr> 160 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.2.</span> 111 Revalidation Failed . . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock"><span class="insert"> 7.6.3.</span> 112 Disconnected Operation . . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr> 161 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.6.3.</span> 112 Disconnected Operation . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock"><span class="insert"> 7.6.4.</span> 113 Heuristic Expiration . . . . . . . . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr> 162 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 3.6.4.</span> 113 Heuristic Expiration . . . . . . . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert">7.6.5.</span> 199 Miscellaneous Warning . . . . . . . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr> 163 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.5.</span> 199 Miscellaneous Warning . . . . . . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert">7.6.6.</span> 214 Transformation Applied . . . . . . . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr> 164 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.6.</span> 214 Transformation Applied . . . . . . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert">7.6.7.</span> 299 Miscellaneous Persistent Warning . . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr> 165 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.7.</span> 299 Miscellaneous Persistent Warning . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert">7.6.8.</span> Warn Code Extensions . . . . . . . . . . . . . . . . . 32</td><td class="lineno" valign="top"></td></tr> 166 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6.8.</span> Warn Code Extensions . . . . . . . . . . . . . . . . . 32</td><td> </td><td class="rblock"> <span class="insert">8.</span> History Lists . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr> 167 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">4.</span> History Lists . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock"><span class="insert"> 9.</span> IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33</td><td class="lineno" valign="top"></td></tr> 168 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 5.</span> IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33</td><td> </td><td class="rblock"> <span class="insert">9.1.</span> Cache Directive Registry . . . . . . . . . . . . . . . . . 33</td><td class="lineno" valign="top"></td></tr> 169 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">5.1.</span> Cache Directive Registry . . . . . . . . . . . . . . . . . 33</td><td> </td><td class="rblock"> <span class="insert">9.2.</span> Warn Code Registry . . . . . . . . . . . . . . . . . . . . <span class="insert">34</span></td><td class="lineno" valign="top"></td></tr> 170 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">5.2.</span> Warn Code Registry . . . . . . . . . . . . . . . . . . . . <span class="delete">33</span></td><td> </td><td class="rblock"><span class="insert"> 9.3.</span> Header Field Registration . . . . . . . . . . . . . . . . 34</td><td class="lineno" valign="top"></td></tr> 171 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 5.3.</span> Header Field Registration . . . . . . . . . . . . . . . . 34</td><td> </td><td class="rblock"> <span class="insert">10.</span> Security Considerations . . . . . . . . . . . . . . . . . . . <span class="insert">35</span></td><td class="lineno" valign="top"></td></tr> 172 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">6.</span> Security Considerations . . . . . . . . . . . . . . . . . . . <span class="delete">34</span></td><td> </td><td class="rblock"><span class="insert"> 11.</span> Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">35</span></td><td class="lineno" valign="top"></td></tr> 173 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 7.</span> Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">34</span></td><td> </td><td class="rblock"><span class="insert"> 12.</span> References . . . . . . . . . . . . . . . . . . . . . . . . . . 35</td><td class="lineno" valign="top"></td></tr> 174 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 8.</span> References . . . . . . . . . . . . . . . . . . . . . . . . . . 35</td><td> </td><td class="rblock"> <span class="insert">12.1.</span> Normative References . . . . . . . . . . . . . . . . . . . 35</td><td class="lineno" valign="top"></td></tr> 175 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">8.1.</span> Normative References . . . . . . . . . . . . . . . . . . . 35</td><td> </td><td class="rblock"> <span class="insert">12.2.</span> Informative References . . . . . . . . . . . . . . . . . . <span class="insert">36</span></td><td class="lineno" valign="top"></td></tr> 176 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">8.2.</span> Informative References . . . . . . . . . . . . . . . . . . <span class="delete">35</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 176 177 <tr><td class="lineno" valign="top"></td><td class="left"> Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 36</td><td> </td><td class="right"> Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 36</td><td class="lineno" valign="top"></td></tr> 177 <tr><td><a name="diff00 09" /></td></tr>178 <tr><td><a name="diff0010" /></td></tr> 178 179 <tr><td class="lineno" valign="top"></td><td class="lblock"> Appendix B. <span class="delete">Collected</span> ABNF . . . . . . . . . . . . . . . . . . . <span class="delete">36</span></td><td> </td><td class="rblock"> Appendix B. <span class="insert">Imported</span> ABNF . . . . . . . . . . . . . . . . . . . . 37</td><td class="lineno" valign="top"></td></tr> 179 180 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Appendix C. Change Log (to be removed by RFC Editor before</span></td><td> </td><td class="rblock"> <span class="insert">Appendix C. Collected ABNF</span> . . . . . . . . . . . . . . . . . . . 38</td><td class="lineno" valign="top"></td></tr> … … 220 221 <tr><td class="lineno" valign="top"></td><td class="left"> performance by reusing a prior response message to satisfy a current</td><td> </td><td class="right"> performance by reusing a prior response message to satisfy a current</td><td class="lineno" valign="top"></td></tr> 221 222 <tr><td class="lineno" valign="top"></td><td class="left"> request. A stored response is considered "fresh", as defined in</td><td> </td><td class="right"> request. A stored response is considered "fresh", as defined in</td><td class="lineno" valign="top"></td></tr> 222 <tr><td><a name="diff001 0" /></td></tr>223 <tr><td><a name="diff0011" /></td></tr> 223 224 <tr><td class="lineno" valign="top"></td><td class="lblock"> Section <span class="delete">2.3</span>, if the response can be reused without "validation"</td><td> </td><td class="rblock"> Section <span class="insert">4.1</span>, if the response can be reused without "validation"</td><td class="lineno" valign="top"></td></tr> 224 225 <tr><td class="lineno" valign="top"></td><td class="left"> (checking with the origin server to see if the cached response</td><td> </td><td class="right"> (checking with the origin server to see if the cached response</td><td class="lineno" valign="top"></td></tr> … … 226 227 <tr><td class="lineno" valign="top"></td><td class="left"> therefore reduce both latency and network transfers each time it is</td><td> </td><td class="right"> therefore reduce both latency and network transfers each time it is</td><td class="lineno" valign="top"></td></tr> 227 228 <tr><td class="lineno" valign="top"></td><td class="left"> reused. When a cached response is not fresh, it might still be</td><td> </td><td class="right"> reused. When a cached response is not fresh, it might still be</td><td class="lineno" valign="top"></td></tr> 228 <tr><td><a name="diff001 1" /></td></tr>229 <tr><td><a name="diff0012" /></td></tr> 229 230 <tr><td class="lineno" valign="top"></td><td class="lblock"> reusable if it can be freshened by validation (Section <span class="delete">2.4</span>) or if the</td><td> </td><td class="rblock"> reusable if it can be freshened by validation (Section <span class="insert">4.2</span>) or if the</td><td class="lineno" valign="top"></td></tr> 230 231 <tr><td class="lineno" valign="top"></td><td class="left"> origin is unavailable.</td><td> </td><td class="right"> origin is unavailable.</td><td class="lineno" valign="top"></td></tr> … … 250 251 <tr><td class="lineno" valign="top"></td><td class="left"> document are to be interpreted as described in [RFC2119].</td><td> </td><td class="right"> document are to be interpreted as described in [RFC2119].</td><td class="lineno" valign="top"></td></tr> 251 252 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 252 <tr><td><a name="diff001 2" /></td></tr>253 <tr><td><a name="diff0013" /></td></tr> 253 254 <tr><td class="lineno" valign="top"></td><td class="lblock"> This <span class="delete">document defines</span> conformance criteria <span class="delete">for several roles</span> in HTTP</td><td> </td><td class="rblock"> This <span class="insert">specification targets</span> conformance criteria <span class="insert">according to the role</span></td><td class="lineno" valign="top"></td></tr> 254 255 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">communication, including Senders, Recipients, Clients, Servers, User-</span></td><td> </td><td class="rblock"><span class="insert"> of a participant</span> in HTTP <span class="insert">communication. Hence, HTTP requirements are</span></td><td class="lineno" valign="top"></td></tr> … … 263 264 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 264 265 <tr><td class="lineno" valign="top"></td><td class="left"> An implementation is considered conformant if it complies with all of</td><td> </td><td class="right"> An implementation is considered conformant if it complies with all of</td><td class="lineno" valign="top"></td></tr> 265 <tr><td><a name="diff001 3" /></td></tr>266 <tr><td><a name="diff0014" /></td></tr> 266 267 <tr><td class="lineno" valign="top"></td><td class="lblock"> the requirements associated with <span class="delete">its role(s).</span> Note that SHOULD-level</td><td> </td><td class="rblock"> the requirements associated with <span class="insert">the roles it partakes in HTTP.</span> Note</td><td class="lineno" valign="top"></td></tr> 267 268 <tr><td class="lineno" valign="top"></td><td class="lblock"> requirements are relevant here, unless one of the documented</td><td> </td><td class="rblock"> that SHOULD-level requirements are relevant here, unless one of the</td><td class="lineno" valign="top"></td></tr> … … 270 271 <tr><td class="lineno" valign="top"></td><td class="left"> This document also uses ABNF to define valid protocol elements</td><td> </td><td class="right"> This document also uses ABNF to define valid protocol elements</td><td class="lineno" valign="top"></td></tr> 271 272 <tr><td class="lineno" valign="top"></td><td class="left"> (Section 1.4). In addition to the prose requirements placed upon</td><td> </td><td class="right"> (Section 1.4). In addition to the prose requirements placed upon</td><td class="lineno" valign="top"></td></tr> 272 <tr><td><a name="diff001 4" /></td></tr>273 <tr><td><a name="diff0015" /></td></tr> 273 274 <tr><td class="lineno" valign="top"></td><td class="lblock"> them, <span class="delete">Senders</span> MUST NOT generate protocol elements that are <span class="delete">invalid.</span></td><td> </td><td class="rblock"> them, <span class="insert">senders</span> MUST NOT generate protocol elements that <span class="insert">do not match</span></td><td class="lineno" valign="top"></td></tr> 274 275 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> the grammar defined by the ABNF rules for those protocol elements</span></td><td class="lineno" valign="top"></td></tr> … … 278 279 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> only those rules not applicable to the recipient's role.</span></td><td class="lineno" valign="top"></td></tr> 279 280 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 280 <tr><td><a name="diff001 5" /></td></tr>281 <tr><td><a name="diff0016" /></td></tr> 281 282 <tr><td class="lineno" valign="top"></td><td class="lblock"> Unless noted otherwise, <span class="delete">Recipients</span> MAY <span class="delete">take steps</span> to recover a usable</td><td> </td><td class="rblock"> Unless noted otherwise, <span class="insert">a recipient</span> MAY <span class="insert">attempt</span> to recover a usable</td><td class="lineno" valign="top"></td></tr> 282 283 <tr><td class="lineno" valign="top"></td><td class="lblock"> protocol element from an invalid construct. <span class="delete">However,</span> HTTP does not</td><td> </td><td class="rblock"> protocol element from an invalid construct. HTTP does not define</td><td class="lineno" valign="top"></td></tr> … … 293 294 <tr><td class="lineno" valign="top"></td><td class="left"> This specification uses the Augmented Backus-Naur Form (ABNF)</td><td> </td><td class="right"> This specification uses the Augmented Backus-Naur Form (ABNF)</td><td class="lineno" valign="top"></td></tr> 294 295 <tr><td class="lineno" valign="top"></td><td class="left"> notation of [RFC5234] with the list rule extension defined in Section</td><td> </td><td class="right"> notation of [RFC5234] with the list rule extension defined in Section</td><td class="lineno" valign="top"></td></tr> 295 <tr><td><a name="diff001 6" /></td></tr>296 <tr><td><a name="diff0017" /></td></tr> 296 297 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.2 of [Part1]. Appendix B shows the collected ABNF with the list</td><td> </td><td class="rblock"> 1.2 of [Part1]. Appendix B <span class="insert">describes rules imported from other</span></td><td class="lineno" valign="top"></td></tr> 297 298 <tr><td class="lineno" valign="top"></td><td class="lblock"> rule expanded.</td><td> </td><td class="rblock"><span class="insert"> documents. Appendix C</span> shows the collected ABNF with the list rule</td><td class="lineno" valign="top"></td></tr> … … 322 323 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> uri-host = <uri-host, defined in [Part1], Section 2.7></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 323 324 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 324 <tr><td><a name="diff001 7" /></td></tr>325 <tr><td><a name="diff0018" /></td></tr> 325 326 <tr><td class="lineno" valign="top"></td><td class="lblock">1.<span class="delete">5</span>. Delta Seconds</td><td> </td><td class="rblock">1.<span class="insert">4.1</span>. Delta Seconds</td><td class="lineno" valign="top"></td></tr> 326 327 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 337 338 <tr><td class="lineno" valign="top"></td><td class="left"> send delta-seconds with a value greater than 2147483648.</td><td> </td><td class="right"> send delta-seconds with a value greater than 2147483648.</td><td class="lineno" valign="top"></td></tr> 338 339 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 339 <tr><td><a name="diff001 8" /></td></tr>340 <tr><td><a name="diff0019" /></td></tr> 340 341 <tr><td class="lineno" valign="top"></td><td class="lblock">2. Cache Operation</td><td> </td><td class="rblock">2. <span class="insert">Overview of </span>Cache Operation</td><td class="lineno" valign="top"></td></tr> 341 342 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 354 355 <tr><td class="lineno" valign="top"></td><td class="left"> retrieval request: i.e., a 200 (OK) response containing a</td><td> </td><td class="right"> retrieval request: i.e., a 200 (OK) response containing a</td><td class="lineno" valign="top"></td></tr> 355 356 <tr><td class="lineno" valign="top"></td><td class="left"> representation of the resource identified by the request target.</td><td> </td><td class="right"> representation of the resource identified by the request target.</td><td class="lineno" valign="top"></td></tr> 356 <tr><td><a name="diff00 19" /></td></tr>357 <tr><td><a name="diff0020" /></td></tr> 357 358 <tr><td class="lineno" valign="top"></td><td class="lblock"> However, it is also possible to cache negative results (e.g., 404 <span class="delete">not</span></td><td> </td><td class="rblock"> However, it is also possible to cache negative results (e.g., 404</td><td class="lineno" valign="top"></td></tr> 358 359 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> found),</span> incomplete results (e.g., 206 <span class="delete">partial content),</span> and responses</td><td> </td><td class="rblock"> <span class="insert">(Not Found),</span> incomplete results (e.g., 206 <span class="insert">(Partial Content)),</span> and</td><td class="lineno" valign="top"></td></tr> … … 362 363 <tr><td class="lineno" valign="top"></td><td class="left"> The default cache key consists of the request method and target URI.</td><td> </td><td class="right"> The default cache key consists of the request method and target URI.</td><td class="lineno" valign="top"></td></tr> 363 364 <tr><td class="lineno" valign="top"></td><td class="left"> However, since HTTP caches in common use today are typically limited</td><td> </td><td class="right"> However, since HTTP caches in common use today are typically limited</td><td class="lineno" valign="top"></td></tr> 364 <tr><td><a name="diff002 0" /></td></tr>365 <tr><td><a name="diff0021" /></td></tr> 365 366 <tr><td class="lineno" valign="top"></td><td class="lblock"> to caching responses to GET, m<span class="delete">ost</span> implementations simply decline</td><td> </td><td class="rblock"> to caching responses to GET, m<span class="insert">any</span> implementations simply decline</td><td class="lineno" valign="top"></td></tr> 366 367 <tr><td class="lineno" valign="top"></td><td class="left"> other methods and use only the URI as the key.</td><td> </td><td class="right"> other methods and use only the URI as the key.</td><td class="lineno" valign="top"></td></tr> … … 369 370 <tr><td class="lineno" valign="top"></td><td class="left"> entry might consist of multiple stored responses, each differentiated</td><td> </td><td class="right"> entry might consist of multiple stored responses, each differentiated</td><td class="lineno" valign="top"></td></tr> 370 371 <tr><td class="lineno" valign="top"></td><td class="left"> by a secondary key for the values of the original request's selecting</td><td> </td><td class="right"> by a secondary key for the values of the original request's selecting</td><td class="lineno" valign="top"></td></tr> 371 <tr><td><a name="diff002 1" /></td></tr>372 <tr><td><a name="diff0022" /></td></tr> 372 373 <tr><td class="lineno" valign="top"></td><td class="lblock"> header fields (Section <span class="delete">2.8</span>).</td><td> </td><td class="rblock"> header fields (Section <span class="insert">4.3</span>).</td><td class="lineno" valign="top"></td></tr> 373 374 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 374 <tr><td><a name="diff002 2" /></td></tr>375 <tr><td><a name="diff0023" /></td></tr> 375 376 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.1. Response Cacheability</span></td><td> </td><td class="rblock"><span class="insert">3. Storing Responses in Caches</span></td><td class="lineno" valign="top"></td></tr> 376 377 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 382 383 <tr><td class="lineno" valign="top"></td><td class="left"> o the response status code is understood by the cache, and</td><td> </td><td class="right"> o the response status code is understood by the cache, and</td><td class="lineno" valign="top"></td></tr> 383 384 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 384 <tr><td><a name="diff002 3" /></td></tr>385 <tr><td><a name="diff0024" /></td></tr> 385 386 <tr><td class="lineno" valign="top"></td><td class="lblock"> o the "no-store" cache directive (see Section <span class="delete">3</span>.2) does not appear</td><td> </td><td class="rblock"> o the "no-store" cache directive (see Section <span class="insert">7</span>.2) does not appear</td><td class="lineno" valign="top"></td></tr> 386 387 <tr><td class="lineno" valign="top"></td><td class="left"> in request or response header fields, and</td><td> </td><td class="right"> in request or response header fields, and</td><td class="lineno" valign="top"></td></tr> 387 388 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 388 <tr><td><a name="diff002 4" /></td></tr>389 <tr><td><a name="diff0025" /></td></tr> 389 390 <tr><td class="lineno" valign="top"></td><td class="lblock"> o the "private" cache response directive (see Section <span class="delete">3</span>.2.2) does</td><td> </td><td class="rblock"> o the "private" cache response directive (see Section <span class="insert">7.2</span>.2.2) does</td><td class="lineno" valign="top"></td></tr> 390 391 <tr><td class="lineno" valign="top"></td><td class="left"> not appear in the response, if the cache is shared, and</td><td> </td><td class="right"> not appear in the response, if the cache is shared, and</td><td class="lineno" valign="top"></td></tr> 391 392 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 392 <tr><td><a name="diff002 5" /></td></tr>393 <tr><td><a name="diff0026" /></td></tr> 393 394 <tr><td class="lineno" valign="top"></td><td class="lblock"> o the <span class="delete">"Authorization"</span> header field (see Section 4.1 of [Part7]) does</td><td> </td><td class="rblock"> o the <span class="insert">Authorization</span> header field (see Section 4.1 of [Part7]) does</td><td class="lineno" valign="top"></td></tr> 394 395 <tr><td class="lineno" valign="top"></td><td class="left"> not appear in the request, if the cache is shared, unless the</td><td> </td><td class="right"> not appear in the request, if the cache is shared, unless the</td><td class="lineno" valign="top"></td></tr> 395 <tr><td><a name="diff002 6" /></td></tr>396 <tr><td><a name="diff0027" /></td></tr> 396 397 <tr><td class="lineno" valign="top"></td><td class="lblock"> response explicitly allows it (see Section <span class="delete">2.7</span>), and</td><td> </td><td class="rblock"> response explicitly allows it (see Section <span class="insert">3.2</span>), and</td><td class="lineno" valign="top"></td></tr> 397 398 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 398 399 <tr><td class="lineno" valign="top"></td><td class="left"> o the response either:</td><td> </td><td class="right"> o the response either:</td><td class="lineno" valign="top"></td></tr> 399 400 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 400 <tr><td><a name="diff002 7" /></td></tr>401 <tr><td><a name="diff0028" /></td></tr> 401 402 <tr><td class="lineno" valign="top"></td><td class="lblock"> * contains an Expires header field (see Section <span class="delete">3</span>.3), or</td><td> </td><td class="rblock"> * contains an Expires header field (see Section <span class="insert">7</span>.3), or</td><td class="lineno" valign="top"></td></tr> 402 403 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 403 404 <tr><td class="lineno" valign="top"></td><td class="left"> * contains a max-age response cache directive (see</td><td> </td><td class="right"> * contains a max-age response cache directive (see</td><td class="lineno" valign="top"></td></tr> 404 <tr><td><a name="diff002 8" /></td></tr>405 <tr><td><a name="diff0029" /></td></tr> 405 406 <tr><td class="lineno" valign="top"></td><td class="lblock"> Section <span class="delete">3.2.2</span>), or</td><td> </td><td class="rblock"> Section <span class="insert">7.2.2.7</span>), or</td><td class="lineno" valign="top"></td></tr> 406 407 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 408 409 <tr><td class="lineno" valign="top"></td><td class="left"> shared, or</td><td> </td><td class="right"> shared, or</td><td class="lineno" valign="top"></td></tr> 409 410 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 410 <tr><td><a name="diff00 29" /></td></tr>411 <tr><td><a name="diff0030" /></td></tr> 411 412 <tr><td class="lineno" valign="top"></td><td class="lblock"> * contains a Cache Control Extension (see Section <span class="delete">3</span>.2.3) that</td><td> </td><td class="rblock"> * contains a Cache Control Extension (see Section <span class="insert">7</span>.2.3) that</td><td class="lineno" valign="top"></td></tr> 412 413 <tr><td class="lineno" valign="top"></td><td class="left"> allows it to be cached, or</td><td> </td><td class="right"> allows it to be cached, or</td><td class="lineno" valign="top"></td></tr> 413 414 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 414 415 <tr><td class="lineno" valign="top"></td><td class="left"> * has a status code that can be served with heuristic freshness</td><td> </td><td class="right"> * has a status code that can be served with heuristic freshness</td><td class="lineno" valign="top"></td></tr> 415 <tr><td><a name="diff003 0" /></td></tr>416 <tr><td><a name="diff0031" /></td></tr> 416 417 <tr><td class="lineno" valign="top"></td><td class="lblock"> (see Section <span class="delete">2.3.1.1</span>).</td><td> </td><td class="rblock"> (see Section <span class="insert">4.1.2</span>).</td><td class="lineno" valign="top"></td></tr> 417 418 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 418 419 <tr><td class="lineno" valign="top"></td><td class="left"> Note that any of the requirements listed above can be overridden by a</td><td> </td><td class="right"> Note that any of the requirements listed above can be overridden by a</td><td class="lineno" valign="top"></td></tr> 419 <tr><td><a name="diff003 1" /></td></tr>420 <tr><td><a name="diff0032" /></td></tr> 420 421 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-control extension; see Section <span class="delete">3</span>.2.3.</td><td> </td><td class="rblock"> cache-control extension; see Section <span class="insert">7</span>.2.3.</td><td class="lineno" valign="top"></td></tr> 421 422 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 424 425 <tr><td class="lineno" valign="top"></td><td class="left"> specific behavior.</td><td> </td><td class="right"> specific behavior.</td><td class="lineno" valign="top"></td></tr> 425 426 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 426 <tr><td><a name="diff003 2" /></td></tr>427 <tr><td><a name="diff0033" /></td></tr> 427 428 <tr><td class="lineno" valign="top"></td><td class="lblock"> Note that, in normal operation, m<span class="delete">ost</span> caches will not store a response</td><td> </td><td class="rblock"> Note that, in normal operation, m<span class="insert">any</span> caches will not store a response</td><td class="lineno" valign="top"></td></tr> 428 429 <tr><td class="lineno" valign="top"></td><td class="left"> that has neither a cache validator nor an explicit expiration time,</td><td> </td><td class="right"> that has neither a cache validator nor an explicit expiration time,</td><td class="lineno" valign="top"></td></tr> … … 430 431 <tr><td class="lineno" valign="top"></td><td class="left"> are not prohibited from storing such responses.</td><td> </td><td class="right"> are not prohibited from storing such responses.</td><td class="lineno" valign="top"></td></tr> 431 432 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 432 <tr><td><a name="diff003 3" /></td></tr>433 <tr><td><a name="diff0034" /></td></tr> 433 434 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">3.1. Storing Incomplete Responses</span></td><td class="lineno" valign="top"></td></tr> 434 435 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr> … … 447 448 <tr><td class="lineno" valign="top"></td><td class="left"> A cache MAY complete a stored incomplete response by making a</td><td> </td><td class="right"> A cache MAY complete a stored incomplete response by making a</td><td class="lineno" valign="top"></td></tr> 448 449 <tr><td class="lineno" valign="top"></td><td class="left"> subsequent range request ([Part5]) and combining the successful</td><td> </td><td class="right"> subsequent range request ([Part5]) and combining the successful</td><td class="lineno" valign="top"></td></tr> 449 <tr><td><a name="diff003 4" /></td></tr>450 <tr><td><a name="diff0035" /></td></tr> 450 451 <tr><td class="lineno" valign="top"></td><td class="lblock"> response with the stored entry, as defined in Section <span class="delete">2.9</span>. A cache</td><td> </td><td class="rblock"> response with the stored entry, as defined in Section <span class="insert">4.4</span>. A cache</td><td class="lineno" valign="top"></td></tr> 451 452 <tr><td class="lineno" valign="top"></td><td class="left"> MUST NOT use an incomplete response to answer requests unless the</td><td> </td><td class="right"> MUST NOT use an incomplete response to answer requests unless the</td><td class="lineno" valign="top"></td></tr> … … 455 456 <tr><td class="lineno" valign="top"></td><td class="left"> marking it as such using the 206 (Partial Content) status code.</td><td> </td><td class="right"> marking it as such using the 206 (Partial Content) status code.</td><td class="lineno" valign="top"></td></tr> 456 457 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 457 <tr><td><a name="diff003 5" /></td></tr>458 <tr><td><a name="diff0036" /></td></tr> 458 459 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.2.</span> Constructing Responses from Caches</td><td> </td><td class="rblock"><span class="insert">3.2. Storing Responses to Authenticated Requests</span></td><td class="lineno" valign="top"></td></tr> 459 460 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr> … … 486 487 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 487 488 <tr><td class="lineno" valign="top"></td><td class="left"> o selecting header fields nominated by the stored response (if any)</td><td> </td><td class="right"> o selecting header fields nominated by the stored response (if any)</td><td class="lineno" valign="top"></td></tr> 488 <tr><td><a name="diff003 6" /></td></tr>489 <tr><td><a name="diff0037" /></td></tr> 489 490 <tr><td class="lineno" valign="top"></td><td class="lblock"> match those presented (see Section <span class="delete">2.8</span>), and</td><td> </td><td class="rblock"> match those presented (see Section <span class="insert">4.3</span>), and</td><td class="lineno" valign="top"></td></tr> 490 491 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 491 492 <tr><td class="lineno" valign="top"></td><td class="left"> o the presented request does not contain the no-cache pragma</td><td> </td><td class="right"> o the presented request does not contain the no-cache pragma</td><td class="lineno" valign="top"></td></tr> 492 <tr><td><a name="diff003 7" /></td></tr>493 <tr><td><a name="diff0038" /></td></tr> 493 494 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">3.4), nor the no-cache cache directive (Section 3</span>.2.1),</td><td> </td><td class="rblock"> (Section <span class="insert">7.4), nor the no-cache cache directive (Section 7</span>.2.1),</td><td class="lineno" valign="top"></td></tr> 494 495 <tr><td class="lineno" valign="top"></td><td class="left"> unless the stored response is successfully validated</td><td> </td><td class="right"> unless the stored response is successfully validated</td><td class="lineno" valign="top"></td></tr> 495 <tr><td><a name="diff003 8" /></td></tr>496 <tr><td><a name="diff0039" /></td></tr> 496 497 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">2.4</span>), and</td><td> </td><td class="rblock"> (Section <span class="insert">4.2</span>), and</td><td class="lineno" valign="top"></td></tr> 497 498 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 498 499 <tr><td class="lineno" valign="top"></td><td class="left"> o the stored response does not contain the no-cache cache directive</td><td> </td><td class="right"> o the stored response does not contain the no-cache cache directive</td><td class="lineno" valign="top"></td></tr> 499 <tr><td><a name="diff00 39" /></td></tr>500 <tr><td><a name="diff0040" /></td></tr> 500 501 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">3.2.2),</span> unless it is successfully validated</td><td> </td><td class="rblock"> (Section <span class="insert">7.2.2.3),</span> unless it is successfully validated</td><td class="lineno" valign="top"></td></tr> 501 502 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">2.4),</span> and</td><td> </td><td class="rblock"> (Section <span class="insert">4.2),</span> and</td><td class="lineno" valign="top"></td></tr> … … 503 504 <tr><td class="lineno" valign="top"></td><td class="left"> o the stored response is either:</td><td> </td><td class="right"> o the stored response is either:</td><td class="lineno" valign="top"></td></tr> 504 505 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 505 <tr><td><a name="diff004 0" /></td></tr>506 <tr><td><a name="diff0041" /></td></tr> 506 507 <tr><td class="lineno" valign="top"></td><td class="lblock"> * fresh (see Section <span class="delete">2.3</span>), or</td><td> </td><td class="rblock"> * fresh (see Section <span class="insert">4.1</span>), or</td><td class="lineno" valign="top"></td></tr> 507 508 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 508 <tr><td><a name="diff004 1" /></td></tr>509 <tr><td><a name="diff0042" /></td></tr> 509 510 <tr><td class="lineno" valign="top"></td><td class="lblock"> * allowed to be served stale (see Section <span class="delete">2.3.3</span>), or</td><td> </td><td class="rblock"> * allowed to be served stale (see Section <span class="insert">4.1.4</span>), or</td><td class="lineno" valign="top"></td></tr> 510 511 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 511 <tr><td><a name="diff004 2" /></td></tr>512 <tr><td><a name="diff0043" /></td></tr> 512 513 <tr><td class="lineno" valign="top"></td><td class="lblock"> * successfully validated (see Section <span class="delete">2.4</span>).</td><td> </td><td class="rblock"> * successfully validated (see Section <span class="insert">4.2</span>).</td><td class="lineno" valign="top"></td></tr> 513 514 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 514 515 <tr><td class="lineno" valign="top"></td><td class="left"> Note that any of the requirements listed above can be overridden by a</td><td> </td><td class="right"> Note that any of the requirements listed above can be overridden by a</td><td class="lineno" valign="top"></td></tr> 515 <tr><td><a name="diff004 3" /></td></tr>516 <tr><td><a name="diff0044" /></td></tr> 516 517 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-control extension; see Section <span class="delete">3</span>.2.3.</td><td> </td><td class="rblock"> cache-control extension; see Section <span class="insert">7</span>.2.3.</td><td class="lineno" valign="top"></td></tr> 517 518 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 518 519 <tr><td class="lineno" valign="top"></td><td class="left"> When a stored response is used to satisfy a request without</td><td> </td><td class="right"> When a stored response is used to satisfy a request without</td><td class="lineno" valign="top"></td></tr> 519 520 <tr><td class="lineno" valign="top"></td><td class="left"> validation, a cache MUST include a single Age header field</td><td> </td><td class="right"> validation, a cache MUST include a single Age header field</td><td class="lineno" valign="top"></td></tr> 520 <tr><td><a name="diff004 4" /></td></tr>521 <tr><td><a name="diff0045" /></td></tr> 521 522 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">3.1)</span> in the response with a value equal to the stored</td><td> </td><td class="rblock"> (Section <span class="insert">7.1)</span> in the response with a value equal to the stored</td><td class="lineno" valign="top"></td></tr> 522 523 <tr><td class="lineno" valign="top"></td><td class="lblock"> response's current_age; see Section <span class="delete">2.3.2.</span></td><td> </td><td class="rblock"> response's current_age; see Section <span class="insert">4.1.3.</span></td><td class="lineno" valign="top"></td></tr> 523 524 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 524 525 <tr><td class="lineno" valign="top"></td><td class="left"> A cache MUST write through requests with methods that are unsafe</td><td> </td><td class="right"> A cache MUST write through requests with methods that are unsafe</td><td class="lineno" valign="top"></td></tr> 525 <tr><td><a name="diff004 5" /></td></tr>526 <tr><td><a name="diff0046" /></td></tr> 526 527 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">6.1.1</span> of [Part2]) to the origin server; i.e., a cache <span class="delete">must</span></td><td> </td><td class="rblock"> (Section <span class="insert">2.1.1</span> of [Part2]) to the origin server; i.e., a cache <span class="insert">is</span> not</td><td class="lineno" valign="top"></td></tr> 527 528 <tr><td class="lineno" valign="top"></td><td class="lblock"> not generate a reply to such a request before having forwarded the</td><td> </td><td class="rblock"> <span class="insert">allowed to</span> generate a reply to such a request before having forwarded</td><td class="lineno" valign="top"></td></tr> … … 529 530 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 530 531 <tr><td class="lineno" valign="top"></td><td class="left"> Also, note that unsafe requests might invalidate already stored</td><td> </td><td class="right"> Also, note that unsafe requests might invalidate already stored</td><td class="lineno" valign="top"></td></tr> 531 <tr><td><a name="diff004 6" /></td></tr>532 <tr><td><a name="diff0047" /></td></tr> 532 533 <tr><td class="lineno" valign="top"></td><td class="lblock"> responses; see Section <span class="delete">2.</span>6.</td><td> </td><td class="rblock"> responses; see Section 6.</td><td class="lineno" valign="top"></td></tr> 533 534 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 543 544 <tr><td class="lineno" valign="top"></td><td class="left"> standard.</td><td> </td><td class="right"> standard.</td><td class="lineno" valign="top"></td></tr> 544 545 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 545 <tr><td><a name="diff004 7" /></td></tr>546 <tr><td><a name="diff0048" /></td></tr> 546 547 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.3</span>. Freshness Model</td><td> </td><td class="rblock"><span class="insert">4.1</span>. Freshness Model</td><td class="lineno" valign="top"></td></tr> 547 548 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 552 553 <tr><td class="lineno" valign="top"></td><td class="left"> The primary mechanism for determining freshness is for an origin</td><td> </td><td class="right"> The primary mechanism for determining freshness is for an origin</td><td class="lineno" valign="top"></td></tr> 553 554 <tr><td class="lineno" valign="top"></td><td class="left"> server to provide an explicit expiration time in the future, using</td><td> </td><td class="right"> server to provide an explicit expiration time in the future, using</td><td class="lineno" valign="top"></td></tr> 554 <tr><td><a name="diff004 8" /></td></tr>555 <tr><td><a name="diff0049" /></td></tr> 555 556 <tr><td class="lineno" valign="top"></td><td class="lblock"> either the Expires header field (Section <span class="delete">3.3)</span> or the max-age response</td><td> </td><td class="rblock"> either the Expires header field (Section <span class="insert">7.3)</span> or the max-age response</td><td class="lineno" valign="top"></td></tr> 556 557 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache directive (Section <span class="delete">3.2.2).</span> Generally, origin servers will</td><td> </td><td class="rblock"> cache directive (Section <span class="insert">7.2.2.7).</span> Generally, origin servers will</td><td class="lineno" valign="top"></td></tr> … … 563 564 <tr><td class="lineno" valign="top"></td><td class="left"> indicate that the response is already stale. Compliant caches will</td><td> </td><td class="right"> indicate that the response is already stale. Compliant caches will</td><td class="lineno" valign="top"></td></tr> 564 565 <tr><td class="lineno" valign="top"></td><td class="left"> normally validate the cached response before reusing it for</td><td> </td><td class="right"> normally validate the cached response before reusing it for</td><td class="lineno" valign="top"></td></tr> 565 <tr><td><a name="diff00 49" /></td></tr>566 <tr><td><a name="diff0050" /></td></tr> 566 567 <tr><td class="lineno" valign="top"></td><td class="lblock"> subsequent requests (see Section <span class="delete">2.3.3</span>).</td><td> </td><td class="rblock"> subsequent requests (see Section <span class="insert">4.1.4</span>).</td><td class="lineno" valign="top"></td></tr> 567 568 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 577 578 <tr><td class="lineno" valign="top"></td><td class="left"> response_is_fresh = (freshness_lifetime > current_age)</td><td> </td><td class="right"> response_is_fresh = (freshness_lifetime > current_age)</td><td class="lineno" valign="top"></td></tr> 578 579 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 579 <tr><td><a name="diff005 0" /></td></tr>580 <tr><td><a name="diff0051" /></td></tr> 580 581 <tr><td class="lineno" valign="top"></td><td class="lblock"> The freshness_lifetime is defined in Section <span class="delete">2.3.1;</span> the current_age</td><td> </td><td class="rblock"> The freshness_lifetime is defined in Section <span class="insert">4.1.1;</span> the current_age</td><td class="lineno" valign="top"></td></tr> 581 582 <tr><td class="lineno" valign="top"></td><td class="lblock"> is defined in Section <span class="delete">2.3.2.</span></td><td> </td><td class="rblock"> is defined in Section <span class="insert">4.1.3.</span></td><td class="lineno" valign="top"></td></tr> … … 583 584 <tr><td class="lineno" valign="top"></td><td class="left"> Additionally, clients can influence freshness calculation -- either</td><td> </td><td class="right"> Additionally, clients can influence freshness calculation -- either</td><td class="lineno" valign="top"></td></tr> 584 585 <tr><td class="lineno" valign="top"></td><td class="left"> constraining it relaxing it -- by using the max-age and min-fresh</td><td> </td><td class="right"> constraining it relaxing it -- by using the max-age and min-fresh</td><td class="lineno" valign="top"></td></tr> 585 <tr><td><a name="diff005 1" /></td></tr>586 <tr><td><a name="diff0052" /></td></tr> 586 587 <tr><td class="lineno" valign="top"></td><td class="lblock"> request cache directives. See Section <span class="delete">3</span>.2.1 for details.</td><td> </td><td class="rblock"> request cache directives. See Section <span class="insert">7</span>.2.1 for details.</td><td class="lineno" valign="top"></td></tr> 587 588 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 588 589 <tr><td class="lineno" valign="top"></td><td class="left"> Note that freshness applies only to cache operation; it cannot be</td><td> </td><td class="right"> Note that freshness applies only to cache operation; it cannot be</td><td class="lineno" valign="top"></td></tr> 589 590 <tr><td class="lineno" valign="top"></td><td class="left"> used to force a user agent to refresh its display or reload a</td><td> </td><td class="right"> used to force a user agent to refresh its display or reload a</td><td class="lineno" valign="top"></td></tr> 590 <tr><td><a name="diff005 2" /></td></tr>591 <tr><td><a name="diff0053" /></td></tr> 591 592 <tr><td class="lineno" valign="top"></td><td class="lblock"> resource. See Section <span class="delete">4</span> for an explanation of the difference between</td><td> </td><td class="rblock"> resource. See Section <span class="insert">8</span> for an explanation of the difference between</td><td class="lineno" valign="top"></td></tr> 592 593 <tr><td class="lineno" valign="top"></td><td class="left"> caches and history mechanisms.</td><td> </td><td class="right"> caches and history mechanisms.</td><td class="lineno" valign="top"></td></tr> 593 594 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 594 <tr><td><a name="diff005 3" /></td></tr>595 <tr><td><a name="diff0054" /></td></tr> 595 596 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.3</span>.1. Calculating Freshness Lifetime</td><td> </td><td class="rblock"><span class="insert">4.1</span>.1. Calculating Freshness Lifetime</td><td class="lineno" valign="top"></td></tr> 596 597 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 599 600 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 600 601 <tr><td class="lineno" valign="top"></td><td class="left"> o If the cache is shared and the s-maxage response cache directive</td><td> </td><td class="right"> o If the cache is shared and the s-maxage response cache directive</td><td class="lineno" valign="top"></td></tr> 601 <tr><td><a name="diff005 4" /></td></tr>602 <tr><td><a name="diff0055" /></td></tr> 602 603 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">3.2.2</span>) is present, use its value, or</td><td> </td><td class="rblock"> (Section <span class="insert">7.2.2.8</span>) is present, use its value, or</td><td class="lineno" valign="top"></td></tr> 603 604 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 604 <tr><td><a name="diff005 5" /></td></tr>605 <tr><td><a name="diff0056" /></td></tr> 605 606 <tr><td class="lineno" valign="top"></td><td class="lblock"> o If the max-age response cache directive (Section <span class="delete">3.2.2</span>) is</td><td> </td><td class="rblock"> o If the max-age response cache directive (Section <span class="insert">7.2.2.7</span>) is</td><td class="lineno" valign="top"></td></tr> 606 607 <tr><td class="lineno" valign="top"></td><td class="left"> present, use its value, or</td><td> </td><td class="right"> present, use its value, or</td><td class="lineno" valign="top"></td></tr> 607 608 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 608 <tr><td><a name="diff005 6" /></td></tr>609 <tr><td><a name="diff0057" /></td></tr> 609 610 <tr><td class="lineno" valign="top"></td><td class="lblock"> o If the Expires response header field (Section <span class="delete">3</span>.3) is present, use</td><td> </td><td class="rblock"> o If the Expires response header field (Section <span class="insert">7</span>.3) is present, use</td><td class="lineno" valign="top"></td></tr> 610 611 <tr><td class="lineno" valign="top"></td><td class="left"> its value minus the value of the Date response header field, or</td><td> </td><td class="right"> its value minus the value of the Date response header field, or</td><td class="lineno" valign="top"></td></tr> … … 612 613 <tr><td class="lineno" valign="top"></td><td class="left"> o Otherwise, no explicit expiration time is present in the response.</td><td> </td><td class="right"> o Otherwise, no explicit expiration time is present in the response.</td><td class="lineno" valign="top"></td></tr> 613 614 <tr><td class="lineno" valign="top"></td><td class="left"> A heuristic freshness lifetime might be applicable; see</td><td> </td><td class="right"> A heuristic freshness lifetime might be applicable; see</td><td class="lineno" valign="top"></td></tr> 614 <tr><td><a name="diff005 7" /></td></tr>615 <tr><td><a name="diff0058" /></td></tr> 615 616 <tr><td class="lineno" valign="top"></td><td class="lblock"> Section <span class="delete">2.3.1.1</span>.</td><td> </td><td class="rblock"> Section <span class="insert">4.1.2</span>.</td><td class="lineno" valign="top"></td></tr> 616 617 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 618 619 <tr><td class="lineno" valign="top"></td><td class="left"> of the information comes from the origin server.</td><td> </td><td class="right"> of the information comes from the origin server.</td><td class="lineno" valign="top"></td></tr> 619 620 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 620 <tr><td><a name="diff005 8" /></td></tr>621 <tr><td><a name="diff0059" /></td></tr> 621 622 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.3.1.1.</span> Calculating Heuristic Freshness</td><td> </td><td class="rblock"> <span class="insert">When there is more than one value present for a given directive</span></td><td class="lineno" valign="top"></td></tr> 622 623 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> (e.g., two Expires header fields, multiple Cache-Control: max-age</span></td><td class="lineno" valign="top"></td></tr> … … 629 630 <tr><td class="lineno" valign="top"></td><td class="left"> If no explicit expiration time is present in a stored response that</td><td> </td><td class="right"> If no explicit expiration time is present in a stored response that</td><td class="lineno" valign="top"></td></tr> 630 631 <tr><td class="lineno" valign="top"></td><td class="left"> has a status code whose definition allows heuristic freshness to be</td><td> </td><td class="right"> has a status code whose definition allows heuristic freshness to be</td><td class="lineno" valign="top"></td></tr> 631 <tr><td><a name="diff00 59" /></td></tr>632 <tr><td><a name="diff0060" /></td></tr> 632 633 <tr><td class="lineno" valign="top"></td><td class="lblock"> used (including the following in Section <span class="delete">7</span> of [Part2]: <span class="delete">200, 203, 206,</span></td><td> </td><td class="rblock"> used (including the following in Section <span class="insert">4</span> of [Part2]: <span class="insert">200 (OK), 203</span></td><td class="lineno" valign="top"></td></tr> 633 634 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 300,</span> 301 and <span class="delete">410),</span> a cache MAY calculate a heuristic expiration time.</td><td> </td><td class="rblock"><span class="insert"> (Non-Authoritative Information), 206 (Partial Content), 300 (Multiple</span></td><td class="lineno" valign="top"></td></tr> … … 647 648 <tr><td class="lineno" valign="top"></td><td class="left"> time. A typical setting of this fraction might be 10%.</td><td> </td><td class="right"> time. A typical setting of this fraction might be 10%.</td><td class="lineno" valign="top"></td></tr> 648 649 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 649 <tr><td><a name="diff006 0" /></td></tr>650 <tr><td><a name="diff0061" /></td></tr> 650 651 <tr><td class="lineno" valign="top"></td><td class="lblock"> Note: <span class="delete">RFC 2616 ([RFC2616],</span> Section <span class="delete">13.9) required that</span> caches <span class="delete">do</span></td><td> </td><td class="rblock"> Note: Section <span class="insert">13.9 of [RFC2616] prohibited</span> caches <span class="insert">from calculating</span></td><td class="lineno" valign="top"></td></tr> 651 652 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> not calculate</span> heuristic freshness for URIs with query components</td><td> </td><td class="rblock"> heuristic freshness for URIs with query components (i.e., those</td><td class="lineno" valign="top"></td></tr> … … 655 656 <tr><td class="lineno" valign="top"></td><td class="lblock"> to preclude caching.</td><td> </td><td class="rblock"> preclude caching.</td><td class="lineno" valign="top"></td></tr> 656 657 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 657 <tr><td><a name="diff006 1" /></td></tr>658 <tr><td><a name="diff0062" /></td></tr> 658 659 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.3.2</span>. Calculating Age</td><td> </td><td class="rblock"><span class="insert">4.1.3</span>. Calculating Age</td><td class="lineno" valign="top"></td></tr> 659 660 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 671 672 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 672 673 <tr><td class="lineno" valign="top"></td><td class="left"> The term "age_value" denotes the value of the Age header field</td><td> </td><td class="right"> The term "age_value" denotes the value of the Age header field</td><td class="lineno" valign="top"></td></tr> 673 <tr><td><a name="diff006 2" /></td></tr>674 <tr><td><a name="diff0063" /></td></tr> 674 675 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">3</span>.1), in a form appropriate for arithmetic operation; or</td><td> </td><td class="rblock"> (Section <span class="insert">7</span>.1), in a form appropriate for arithmetic operation; or</td><td class="lineno" valign="top"></td></tr> 675 676 <tr><td class="lineno" valign="top"></td><td class="left"> 0, if not available.</td><td> </td><td class="right"> 0, if not available.</td><td class="lineno" valign="top"></td></tr> … … 681 682 <tr><td class="lineno" valign="top"></td><td class="left"> response was generated. The term "date_value" denotes the value</td><td> </td><td class="right"> response was generated. The term "date_value" denotes the value</td><td class="lineno" valign="top"></td></tr> 682 683 <tr><td class="lineno" valign="top"></td><td class="left"> of the Date header field, in a form appropriate for arithmetic</td><td> </td><td class="right"> of the Date header field, in a form appropriate for arithmetic</td><td class="lineno" valign="top"></td></tr> 683 <tr><td><a name="diff006 3" /></td></tr>684 <tr><td><a name="diff0064" /></td></tr> 684 685 <tr><td class="lineno" valign="top"></td><td class="lblock"> operations. See Section <span class="delete">10.2</span> of [Part2] for the definition of the</td><td> </td><td class="rblock"> operations. See Section <span class="insert">9.10</span> of [Part2] for the definition of the</td><td class="lineno" valign="top"></td></tr> 685 686 <tr><td class="lineno" valign="top"></td><td class="left"> Date header field, and for requirements regarding responses</td><td> </td><td class="right"> Date header field, and for requirements regarding responses</td><td class="lineno" valign="top"></td></tr> … … 705 706 <tr><td class="lineno" valign="top"></td><td class="left"> corrected_initial_age = max(apparent_age, corrected_age_value);</td><td> </td><td class="right"> corrected_initial_age = max(apparent_age, corrected_age_value);</td><td class="lineno" valign="top"></td></tr> 706 707 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 707 <tr><td><a name="diff006 4" /></td></tr>708 <tr><td><a name="diff0065" /></td></tr> 708 709 <tr><td class="lineno" valign="top"></td><td class="lblock"> unless the cache is confident in the value of the Age header (e.g.,</td><td> </td><td class="rblock"> unless the cache is confident in the value of the Age header <span class="insert">field</span></td><td class="lineno" valign="top"></td></tr> 709 710 <tr><td class="lineno" valign="top"></td><td class="lblock"> because there are no HTTP/1.0 hops in the Via <span class="delete">header),</span> in which case</td><td> </td><td class="rblock"> (e.g., because there are no HTTP/1.0 hops in the Via <span class="insert">header field),</span></td><td class="lineno" valign="top"></td></tr> … … 732 733 <tr><td class="lineno" valign="top"></td><td class="left"> most conservative possible conversion.</td><td> </td><td class="right"> most conservative possible conversion.</td><td class="lineno" valign="top"></td></tr> 733 734 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 734 <tr><td><a name="diff006 5" /></td></tr>735 <tr><td><a name="diff0066" /></td></tr> 735 736 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.3.3</span>. Serving Stale Responses</td><td> </td><td class="rblock"><span class="insert">4.1.4</span>. Serving Stale Responses</td><td class="lineno" valign="top"></td></tr> 736 737 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 737 738 <tr><td class="lineno" valign="top"></td><td class="left"> A "stale" response is one that either has explicit expiry information</td><td> </td><td class="right"> A "stale" response is one that either has explicit expiry information</td><td class="lineno" valign="top"></td></tr> 738 739 <tr><td class="lineno" valign="top"></td><td class="left"> or is allowed to have heuristic expiry calculated, but is not fresh</td><td> </td><td class="right"> or is allowed to have heuristic expiry calculated, but is not fresh</td><td class="lineno" valign="top"></td></tr> 739 <tr><td><a name="diff006 6" /></td></tr>740 <tr><td><a name="diff0067" /></td></tr> 740 741 <tr><td class="lineno" valign="top"></td><td class="lblock"> according to the calculations in Section <span class="delete">2.3</span>.</td><td> </td><td class="rblock"> according to the calculations in Section <span class="insert">4.1</span>.</td><td class="lineno" valign="top"></td></tr> 741 742 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 744 745 <tr><td class="lineno" valign="top"></td><td class="left"> cache directive, a "must-revalidate" cache-response-directive, or an</td><td> </td><td class="right"> cache directive, a "must-revalidate" cache-response-directive, or an</td><td class="lineno" valign="top"></td></tr> 745 746 <tr><td class="lineno" valign="top"></td><td class="left"> applicable "s-maxage" or "proxy-revalidate" cache-response-directive;</td><td> </td><td class="right"> applicable "s-maxage" or "proxy-revalidate" cache-response-directive;</td><td class="lineno" valign="top"></td></tr> 746 <tr><td><a name="diff006 7" /></td></tr>747 <tr><td><a name="diff0068" /></td></tr> 747 748 <tr><td class="lineno" valign="top"></td><td class="lblock"> see Section <span class="delete">3</span>.2.2).</td><td> </td><td class="rblock"> see Section <span class="insert">7</span>.2.2).</td><td class="lineno" valign="top"></td></tr> 748 749 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 750 751 <tr><td class="lineno" valign="top"></td><td class="left"> (i.e., it cannot contact the origin server or otherwise find a</td><td> </td><td class="right"> (i.e., it cannot contact the origin server or otherwise find a</td><td class="lineno" valign="top"></td></tr> 751 752 <tr><td class="lineno" valign="top"></td><td class="left"> forward path) or doing so is explicitly allowed (e.g., by the max-</td><td> </td><td class="right"> forward path) or doing so is explicitly allowed (e.g., by the max-</td><td class="lineno" valign="top"></td></tr> 752 <tr><td><a name="diff006 8" /></td></tr>753 <tr><td><a name="diff0069" /></td></tr> 753 754 <tr><td class="lineno" valign="top"></td><td class="lblock"> stale request directive; see Section <span class="delete">3</span>.2.1).</td><td> </td><td class="rblock"> stale request directive; see Section <span class="insert">7</span>.2.1).</td><td class="lineno" valign="top"></td></tr> 754 755 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 755 756 <tr><td class="lineno" valign="top"></td><td class="left"> A cache SHOULD append a Warning header field with the 110 warn-code</td><td> </td><td class="right"> A cache SHOULD append a Warning header field with the 110 warn-code</td><td class="lineno" valign="top"></td></tr> 756 <tr><td><a name="diff00 69" /></td></tr>757 <tr><td><a name="diff0070" /></td></tr> 757 758 <tr><td class="lineno" valign="top"></td><td class="lblock"> (see Section <span class="delete">3</span>.6) to stale responses. Likewise, a cache SHOULD add</td><td> </td><td class="rblock"> (see Section <span class="insert">7</span>.6) to stale responses. Likewise, a cache SHOULD add</td><td class="lineno" valign="top"></td></tr> 758 759 <tr><td class="lineno" valign="top"></td><td class="left"> the 112 warn-code to stale responses if the cache is disconnected.</td><td> </td><td class="right"> the 112 warn-code to stale responses if the cache is disconnected.</td><td class="lineno" valign="top"></td></tr> … … 766 767 <tr><td class="lineno" valign="top"></td><td class="left"> because that response became stale in transit.</td><td> </td><td class="right"> because that response became stale in transit.</td><td class="lineno" valign="top"></td></tr> 767 768 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 768 <tr><td><a name="diff007 0" /></td></tr>769 <tr><td><a name="diff0071" /></td></tr> 769 770 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.4</span>. Validation Model</td><td> </td><td class="rblock"><span class="insert">4.2</span>. Validation Model</td><td class="lineno" valign="top"></td></tr> 770 771 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 771 772 <tr><td class="lineno" valign="top"></td><td class="left"> When a cache has one or more stored responses for a requested URI,</td><td> </td><td class="right"> When a cache has one or more stored responses for a requested URI,</td><td class="lineno" valign="top"></td></tr> 772 773 <tr><td class="lineno" valign="top"></td><td class="left"> but cannot serve any of them (e.g., because they are not fresh, or</td><td> </td><td class="right"> but cannot serve any of them (e.g., because they are not fresh, or</td><td class="lineno" valign="top"></td></tr> 773 <tr><td><a name="diff007 1" /></td></tr>774 <tr><td><a name="diff0072" /></td></tr> 774 775 <tr><td class="lineno" valign="top"></td><td class="lblock"> one cannot be selected; see Section <span class="delete">2.8</span>), it can use the conditional</td><td> </td><td class="rblock"> one cannot be selected; see Section <span class="insert">4.3</span>), it can use the conditional</td><td class="lineno" valign="top"></td></tr> 775 776 <tr><td class="lineno" valign="top"></td><td class="left"> request mechanism [Part4] in the forwarded request to give the origin</td><td> </td><td class="right"> request mechanism [Part4] in the forwarded request to give the origin</td><td class="lineno" valign="top"></td></tr> … … 780 781 <tr><td class="lineno" valign="top"></td><td class="left"> When sending such a conditional request, a cache adds an If-Modified-</td><td> </td><td class="right"> When sending such a conditional request, a cache adds an If-Modified-</td><td class="lineno" valign="top"></td></tr> 781 782 <tr><td class="lineno" valign="top"></td><td class="left"> Since header field whose value is that of the Last-Modified header</td><td> </td><td class="right"> Since header field whose value is that of the Last-Modified header</td><td class="lineno" valign="top"></td></tr> 782 <tr><td><a name="diff007 2" /></td></tr>783 <tr><td><a name="diff0073" /></td></tr> 783 784 <tr><td class="lineno" valign="top"></td><td class="lblock"> field from the selected (see Section <span class="delete">2.8</span>) stored response, if</td><td> </td><td class="rblock"> field from the selected (see Section <span class="insert">4.3</span>) stored response, if</td><td class="lineno" valign="top"></td></tr> 784 785 <tr><td class="lineno" valign="top"></td><td class="left"> available.</td><td> </td><td class="right"> available.</td><td class="lineno" valign="top"></td></tr> … … 795 796 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 796 797 <tr><td class="lineno" valign="top"></td><td class="left"> o A 304 (Not Modified) response status code indicates that the</td><td> </td><td class="right"> o A 304 (Not Modified) response status code indicates that the</td><td class="lineno" valign="top"></td></tr> 797 <tr><td><a name="diff007 3" /></td></tr>798 <tr><td><a name="diff0074" /></td></tr> 798 799 <tr><td class="lineno" valign="top"></td><td class="lblock"> stored response can be updated and reused; see Section <span class="delete">2.4</span>.1.</td><td> </td><td class="rblock"> stored response can be updated and reused; see Section <span class="insert">4.2</span>.1.</td><td class="lineno" valign="top"></td></tr> 799 800 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 803 804 <tr><td class="lineno" valign="top"></td><td class="left"> satisfy the request and MAY replace the stored response(s).</td><td> </td><td class="right"> satisfy the request and MAY replace the stored response(s).</td><td class="lineno" valign="top"></td></tr> 804 805 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 805 <tr><td><a name="diff007 4" /></td></tr>806 <tr><td><a name="diff0075" /></td></tr> 806 807 <tr><td class="lineno" valign="top"></td><td class="lblock"> o However, if a cache receives a 5xx response while attempting to</td><td> </td><td class="rblock"> o However, if a cache receives a 5xx <span class="insert">(Server Error)</span> response while</td><td class="lineno" valign="top"></td></tr> 807 808 <tr><td class="lineno" valign="top"></td><td class="lblock"> validate a response, it can either forward this response to the</td><td> </td><td class="rblock"> attempting to validate a response, it can either forward this</td><td class="lineno" valign="top"></td></tr> … … 810 811 <tr><td class="lineno" valign="top"></td><td class="lblock"> Section <span class="delete">2.3.3).</span></td><td> </td><td class="rblock"> response (see Section <span class="insert">4.1.4).</span></td><td class="lineno" valign="top"></td></tr> 811 812 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 812 <tr><td><a name="diff007 5" /></td></tr>813 <tr><td><a name="diff0076" /></td></tr> 813 814 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.4</span>.1. Freshening Responses with 304 Not Modified</td><td> </td><td class="rblock"><span class="insert">4.2</span>.1. Freshening Responses with 304 Not Modified</td><td class="lineno" valign="top"></td></tr> 814 815 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 834 835 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 835 836 <tr><td class="lineno" valign="top"></td><td class="left"> o delete any Warning header fields in the stored response with warn-</td><td> </td><td class="right"> o delete any Warning header fields in the stored response with warn-</td><td class="lineno" valign="top"></td></tr> 836 <tr><td><a name="diff007 6" /></td></tr>837 <tr><td><a name="diff0077" /></td></tr> 837 838 <tr><td class="lineno" valign="top"></td><td class="lblock"> code 1xx (see Section <span class="delete">3.6);</span></td><td> </td><td class="rblock"> code 1xx (see Section <span class="insert">7.6);</span></td><td class="lineno" valign="top"></td></tr> 838 839 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 868 869 <tr><td class="lineno" valign="top"></td><td class="left"> code 2xx; and,</td><td> </td><td class="right"> code 2xx; and,</td><td class="lineno" valign="top"></td></tr> 869 870 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 870 <tr><td><a name="diff007 7" /></td></tr>871 <tr><td><a name="diff0078" /></td></tr> 871 872 <tr><td class="lineno" valign="top"></td><td class="lblock"> o use other header fields provided in the response to replace all</td><td> </td><td class="rblock"> o use other header fields provided in the <span class="insert">304 (Not Modified)</span></td><td class="lineno" valign="top"></td></tr> 872 873 <tr><td class="lineno" valign="top"></td><td class="lblock"> instances of the corresponding header fields in the stored</td><td> </td><td class="rblock"> response to replace all instances of the corresponding header</td><td class="lineno" valign="top"></td></tr> … … 924 925 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> server.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 925 926 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 926 <tr><td><a name="diff007 8" /></td></tr>927 <tr><td><a name="diff0079" /></td></tr> 927 928 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.8. Cach</span>ing Negotiated Responses</td><td> </td><td class="rblock"><span class="insert">4.3. Us</span>ing Negotiated Responses</td><td class="lineno" valign="top"></td></tr> 928 929 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 929 930 <tr><td class="lineno" valign="top"></td><td class="left"> When a cache receives a request that can be satisfied by a stored</td><td> </td><td class="right"> When a cache receives a request that can be satisfied by a stored</td><td class="lineno" valign="top"></td></tr> 930 <tr><td><a name="diff00 79" /></td></tr>931 <tr><td><a name="diff0080" /></td></tr> 931 932 <tr><td class="lineno" valign="top"></td><td class="lblock"> response that has a Vary header field (Section <span class="delete">3</span>.5), it MUST NOT use</td><td> </td><td class="rblock"> response that has a Vary header field (Section <span class="insert">7</span>.5), it MUST NOT use</td><td class="lineno" valign="top"></td></tr> 932 933 <tr><td class="lineno" valign="top"></td><td class="left"> that response unless all of the selecting header fields nominated by</td><td> </td><td class="right"> that response unless all of the selecting header fields nominated by</td><td class="lineno" valign="top"></td></tr> … … 952 953 <tr><td class="lineno" valign="top"></td><td class="left"> If multiple selected responses are available, the most recent</td><td> </td><td class="right"> If multiple selected responses are available, the most recent</td><td class="lineno" valign="top"></td></tr> 953 954 <tr><td class="lineno" valign="top"></td><td class="left"> response (as determined by the Date header field) is used; see</td><td> </td><td class="right"> response (as determined by the Date header field) is used; see</td><td class="lineno" valign="top"></td></tr> 954 <tr><td><a name="diff008 0" /></td></tr>955 <tr><td><a name="diff0081" /></td></tr> 955 956 <tr><td class="lineno" valign="top"></td><td class="lblock"> Section <span class="delete">2.2</span>.</td><td> </td><td class="rblock"> Section <span class="insert">4</span>.</td><td class="lineno" valign="top"></td></tr> 956 957 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 957 958 <tr><td class="lineno" valign="top"></td><td class="left"> If no selected response is available, the cache can forward the</td><td> </td><td class="right"> If no selected response is available, the cache can forward the</td><td class="lineno" valign="top"></td></tr> 958 959 <tr><td class="lineno" valign="top"></td><td class="left"> presented request to the origin server in a conditional request; see</td><td> </td><td class="right"> presented request to the origin server in a conditional request; see</td><td class="lineno" valign="top"></td></tr> 959 <tr><td><a name="diff008 1" /></td></tr>960 <tr><td><a name="diff0082" /></td></tr> 960 961 <tr><td class="lineno" valign="top"></td><td class="lblock"> Section <span class="delete">2.4</span>.</td><td> </td><td class="rblock"> Section <span class="insert">4.2</span>.</td><td class="lineno" valign="top"></td></tr> 961 962 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 962 <tr><td><a name="diff008 2" /></td></tr>963 <tr><td><a name="diff0083" /></td></tr> 963 964 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.9</span>. Combining Partial Content</td><td> </td><td class="rblock"><span class="insert">4.4</span>. Combining Partial Content</td><td class="lineno" valign="top"></td></tr> 964 965 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 976 977 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 977 978 <tr><td class="lineno" valign="top"></td><td class="left"> o delete any Warning header fields in the stored response with warn-</td><td> </td><td class="right"> o delete any Warning header fields in the stored response with warn-</td><td class="lineno" valign="top"></td></tr> 978 <tr><td><a name="diff008 3" /></td></tr>979 <tr><td><a name="diff0084" /></td></tr> 979 980 <tr><td class="lineno" valign="top"></td><td class="lblock"> code 1xx (see Section <span class="delete">3</span>.6);</td><td> </td><td class="rblock"> code 1xx (see Section <span class="insert">7</span>.6);</td><td class="lineno" valign="top"></td></tr> 980 981 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 986 987 <tr><td class="lineno" valign="top"></td><td class="left"> header fields in the stored response.</td><td> </td><td class="right"> header fields in the stored response.</td><td class="lineno" valign="top"></td></tr> 987 988 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 988 <tr><td><a name="diff008 4" /></td></tr>989 <tr><td><a name="diff0085" /></td></tr> 989 990 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3.</span> Header Field Definitions</td><td> </td><td class="rblock"><span class="insert">5. Updating Caches with HEAD Responses</span></td><td class="lineno" valign="top"></td></tr> 990 991 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr> … … 1053 1054 <tr><td class="lineno" valign="top"></td><td class="left"> fields related to caching.</td><td> </td><td class="right"> fields related to caching.</td><td class="lineno" valign="top"></td></tr> 1054 1055 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1055 <tr><td><a name="diff008 5" /></td></tr>1056 <tr><td><a name="diff0086" /></td></tr> 1056 1057 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.1. Age</td><td> </td><td class="rblock"><span class="insert">7</span>.1. Age</td><td class="lineno" valign="top"></td></tr> 1057 1058 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1059 1060 <tr><td class="lineno" valign="top"></td><td class="left"> time since the response was generated or successfully validated at</td><td> </td><td class="right"> time since the response was generated or successfully validated at</td><td class="lineno" valign="top"></td></tr> 1060 1061 <tr><td class="lineno" valign="top"></td><td class="left"> the origin server. Age values are calculated as specified in</td><td> </td><td class="right"> the origin server. Age values are calculated as specified in</td><td class="lineno" valign="top"></td></tr> 1061 <tr><td><a name="diff008 6" /></td></tr>1062 <tr><td><a name="diff0087" /></td></tr> 1062 1063 <tr><td class="lineno" valign="top"></td><td class="lblock"> Section <span class="delete">2.3.2</span>.</td><td> </td><td class="rblock"> Section <span class="insert">4.1.3</span>.</td><td class="lineno" valign="top"></td></tr> 1063 1064 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1065 1066 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1066 1067 <tr><td class="lineno" valign="top"></td><td class="left"> Age field-values are non-negative integers, representing time in</td><td> </td><td class="right"> Age field-values are non-negative integers, representing time in</td><td class="lineno" valign="top"></td></tr> 1067 <tr><td><a name="diff008 7" /></td></tr>1068 <tr><td><a name="diff0088" /></td></tr> 1068 1069 <tr><td class="lineno" valign="top"></td><td class="lblock"> seconds (see Section 1.<span class="delete">5</span>).</td><td> </td><td class="rblock"> seconds (see Section 1.<span class="insert">4.1</span>).</td><td class="lineno" valign="top"></td></tr> 1069 1070 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1072 1073 <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.0 caches might not implement the Age header field.</td><td> </td><td class="right"> HTTP/1.0 caches might not implement the Age header field.</td><td class="lineno" valign="top"></td></tr> 1073 1074 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1074 <tr><td><a name="diff008 8" /></td></tr>1075 <tr><td><a name="diff0089" /></td></tr> 1075 1076 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.2. Cache-Control</td><td> </td><td class="rblock"><span class="insert">7</span>.2. Cache-Control</td><td class="lineno" valign="top"></td></tr> 1076 1077 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1081 1082 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1082 1083 <tr><td class="lineno" valign="top"></td><td class="left"> A cache MUST obey the requirements of the Cache-Control directives</td><td> </td><td class="right"> A cache MUST obey the requirements of the Cache-Control directives</td><td class="lineno" valign="top"></td></tr> 1083 <tr><td><a name="diff00 89" /></td></tr>1084 <tr><td><a name="diff0090" /></td></tr> 1084 1085 <tr><td class="lineno" valign="top"></td><td class="lblock"> defined in this section. See Section <span class="delete">3</span>.2.3 for information about how</td><td> </td><td class="rblock"> defined in this section. See Section <span class="insert">7</span>.2.3 for information about how</td><td class="lineno" valign="top"></td></tr> 1085 1086 <tr><td class="lineno" valign="top"></td><td class="left"> Cache-Control directives defined elsewhere are handled.</td><td> </td><td class="right"> Cache-Control directives defined elsewhere are handled.</td><td class="lineno" valign="top"></td></tr> 1086 1087 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1087 1088 <tr><td class="lineno" valign="top"></td><td class="left"> Note: HTTP/1.0 caches might not implement Cache-Control and might</td><td> </td><td class="right"> Note: HTTP/1.0 caches might not implement Cache-Control and might</td><td class="lineno" valign="top"></td></tr> 1088 <tr><td><a name="diff009 0" /></td></tr>1089 <tr><td><a name="diff0091" /></td></tr> 1089 1090 <tr><td class="lineno" valign="top"></td><td class="lblock"> only implement Pragma: no-cache (see Section <span class="delete">3</span>.4).</td><td> </td><td class="rblock"> only implement Pragma: no-cache (see Section <span class="insert">7</span>.4).</td><td class="lineno" valign="top"></td></tr> 1090 1091 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1096 1097 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1097 1098 <tr><td class="lineno" valign="top"></td><td class="left"> Cache directives are identified by a token, to be compared case-</td><td> </td><td class="right"> Cache directives are identified by a token, to be compared case-</td><td class="lineno" valign="top"></td></tr> 1098 <tr><td><a name="diff009 1" /></td></tr>1099 <tr><td><a name="diff0092" /></td></tr> 1099 1100 <tr><td class="lineno" valign="top"></td><td class="lblock"> insensitively, and have an optional <span class="delete">argument.</span></td><td> </td><td class="rblock"> insensitively, and have an optional <span class="insert">argument, that can use both token</span></td><td class="lineno" valign="top"></td></tr> 1100 1101 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> and quoted-string syntax. For the directives defined below that</span></td><td class="lineno" valign="top"></td></tr> … … 1105 1106 <tr><td class="lineno" valign="top"></td><td class="left"> Cache-Control = 1#cache-directive</td><td> </td><td class="right"> Cache-Control = 1#cache-directive</td><td class="lineno" valign="top"></td></tr> 1106 1107 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1107 <tr><td><a name="diff009 2" /></td></tr>1108 <tr><td><a name="diff0093" /></td></tr> 1108 1109 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-directive = <span class="delete">cache-request-directive</span></td><td> </td><td class="rblock"> cache-directive = <span class="insert">token [ "=" ( token</span> / <span class="insert">quoted-string ) ]</span></td><td class="lineno" valign="top"></td></tr> 1109 1110 <tr><td class="lineno" valign="top"></td><td class="lblock"> / <span class="delete">cache-response-directive</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1110 1111 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1111 <tr><td><a name="diff009 3" /></td></tr>1112 <tr><td><a name="diff0094" /></td></tr> 1112 1113 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">cache-extension = token [ "=" ( token / quoted-string ) ]</span></td><td> </td><td class="rblock"> <span class="insert">For the cache directives defined below, no argument is defined (nor</span></td><td class="lineno" valign="top"></td></tr> 1113 1114 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> allowed) otherwise stated otherwise.</span></td><td class="lineno" valign="top"></td></tr> 1114 1115 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1115 <tr><td><a name="diff009 4" /></td></tr>1116 <tr><td><a name="diff0095" /></td></tr> 1116 1117 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.2.1. Request Cache-Control Directives</td><td> </td><td class="rblock"><span class="insert">7</span>.2.1. Request Cache-Control Directives</td><td class="lineno" valign="top"></td></tr> 1117 1118 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1118 <tr><td><a name="diff009 5" /></td></tr>1119 <tr><td><a name="diff0096" /></td></tr> 1119 1120 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">cache-request-directive =</span></td><td> </td><td class="rblock"><span class="insert">7.2.1.1. no-cache</span></td><td class="lineno" valign="top"></td></tr> 1120 1121 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> "no-cache"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1127 1128 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> / cache-extension</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1128 1129 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1129 <tr><td><a name="diff009 6" /></td></tr>1130 <tr><td><a name="diff0097" /></td></tr> 1130 1131 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">no-cache</span></td><td> </td><td class="rblock"> <span class="insert">The "no-cache" request directive indicates that a cache MUST NOT use</span></td><td class="lineno" valign="top"></td></tr> 1131 1132 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> a stored response to satisfy the request without successful</span></td><td class="lineno" valign="top"></td></tr> 1132 1133 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> validation on the origin server.</span></td><td class="lineno" valign="top"></td></tr> 1133 1134 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1134 <tr><td><a name="diff009 7" /></td></tr>1135 <tr><td><a name="diff0098" /></td></tr> 1135 1136 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The no-cache request directive indicates that a cache MUST NOT use</span></td><td> </td><td class="rblock"><span class="insert">7.2.1.2. no-store</span></td><td class="lineno" valign="top"></td></tr> 1136 1137 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> a stored response to satisfy the request without successful</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1137 1138 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> validation on the origin server.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1138 1139 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1139 <tr><td><a name="diff009 8" /></td></tr>1140 <tr><td><a name="diff0099" /></td></tr> 1140 1141 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">no-store</span></td><td> </td><td class="rblock"> <span class="insert">The "no-store" request directive indicates that a cache MUST NOT</span></td><td class="lineno" valign="top"></td></tr> 1141 1142 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> store any part of either this request or any response to it. This</span></td><td class="lineno" valign="top"></td></tr> … … 1146 1147 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> promptly as possible after forwarding it.</span></td><td class="lineno" valign="top"></td></tr> 1147 1148 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1148 <tr><td><a name="diff0 099" /></td></tr>1149 <tr><td><a name="diff0100" /></td></tr> 1149 1150 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The no-store request directive indicates that a cache MUST NOT</span></td><td> </td><td class="rblock"> This directive <span class="insert">is</span> NOT <span class="insert">a reliable or sufficient mechanism for ensuring</span></td><td class="lineno" valign="top"></td></tr> 1150 1151 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> store any part of either this request or any response to it.</span> This</td><td> </td><td class="rblock"><span class="insert"> privacy. In particular, malicious or compromised caches might not</span></td><td class="lineno" valign="top"></td></tr> … … 1155 1156 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> storage as promptly as possible after forwarding it.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1156 1157 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1157 <tr><td><a name="diff010 0" /></td></tr>1158 <tr><td><a name="diff0101" /></td></tr> 1158 1159 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">This</span> directive is <span class="delete">NOT</span> a <span class="delete">reliable or sufficient mechanism for</span></td><td> </td><td class="rblock"> <span class="insert">Note that if a request containing this</span> directive is <span class="insert">satisfied from</span> a</td><td class="lineno" valign="top"></td></tr> 1159 1160 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> ensuring privacy. In particular, malicious or compromised caches</span></td><td> </td><td class="rblock"> <span class="insert">cache, the no-store request directive does</span> not <span class="insert">apply</span> to <span class="insert">the already</span></td><td class="lineno" valign="top"></td></tr> … … 1161 1162 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> networks might be vulnerable</span> to <span class="delete">eavesdropping.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1162 1163 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1163 <tr><td><a name="diff010 1" /></td></tr>1164 <tr><td><a name="diff0102" /></td></tr> 1164 1165 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Note that if a request containing this directive is satisfied from</span></td><td> </td><td class="rblock"><span class="insert">7.2.1.3. max-age</span></td><td class="lineno" valign="top"></td></tr> 1165 1166 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> a cache, the no-store request directive does not apply to the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1166 1167 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> already stored response.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1167 1168 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1168 <tr><td><a name="diff010 2" /></td></tr>1169 <tr><td><a name="diff0103" /></td></tr> 1169 1170 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">max-age</span></td><td> </td><td class="rblock"> <span class="insert">Argument syntax:</span></td><td class="lineno" valign="top"></td></tr> 1170 1171 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1171 <tr><td><a name="diff010 3" /></td></tr>1172 <tr><td><a name="diff0104" /></td></tr> 1172 1173 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The max-age request directive indicates that the client is</span></td><td> </td><td class="rblock"> <span class="insert">delta-seconds (see Section 1.4.1)</span></td><td class="lineno" valign="top"></td></tr> 1173 1174 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> unwilling to accept a response whose age is greater than the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1176 1177 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> stale response.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1177 1178 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1178 <tr><td><a name="diff010 4" /></td></tr>1179 <tr><td><a name="diff0105" /></td></tr> 1179 1180 <tr><td class="lineno" valign="top"></td><td class="lblock"> max-stale</td><td> </td><td class="rblock"> <span class="insert">The "max-age" request directive indicates that the client is</span></td><td class="lineno" valign="top"></td></tr> 1180 1181 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> unwilling to accept a response whose age is greater than the</span></td><td class="lineno" valign="top"></td></tr> … … 1183 1184 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> response.</span></td><td class="lineno" valign="top"></td></tr> 1184 1185 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1185 <tr><td><a name="diff010 5" /></td></tr>1186 <tr><td><a name="diff0106" /></td></tr> 1186 1187 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The max-stale request</span> directive <span class="delete">indicates that</span> the <span class="delete">client is</span></td><td> </td><td class="rblock"> <span class="insert">Note: This</span> directive <span class="insert">uses</span> the <span class="insert">token form</span> of the <span class="insert">argument syntax;</span></td><td class="lineno" valign="top"></td></tr> 1187 1188 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> willing to accept a response that has exceeded its expiration</span></td><td> </td><td class="rblock"><span class="insert"> e.g., 'max-age=5', not 'max-age="5"'. Senders SHOULD NOT use the</span></td><td class="lineno" valign="top"></td></tr> … … 1192 1193 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> stale response of any age.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1193 1194 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1194 <tr><td><a name="diff010 6" /></td></tr>1195 <tr><td><a name="diff0107" /></td></tr> 1195 1196 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> min-fresh</span></td><td> </td><td class="rblock"><span class="insert">7.2.1.4. max-stale</span></td><td class="lineno" valign="top"></td></tr> 1196 1197 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1197 <tr><td><a name="diff010 7" /></td></tr>1198 <tr><td><a name="diff0108" /></td></tr> 1198 1199 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The min-fresh request directive indicates that the client is</span></td><td> </td><td class="rblock"> <span class="insert">Argument syntax:</span></td><td class="lineno" valign="top"></td></tr> 1199 1200 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> willing to accept a response whose freshness lifetime is no less</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1202 1203 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> the specified number of seconds.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1203 1204 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1204 <tr><td><a name="diff010 8" /></td></tr>1205 <tr><td><a name="diff0109" /></td></tr> 1205 1206 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">no-transform</span></td><td> </td><td class="rblock"> <span class="insert"> delta-seconds (see Section 1.4.1)</span></td><td class="lineno" valign="top"></td></tr> 1206 1207 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1207 <tr><td><a name="diff01 09" /></td></tr>1208 <tr><td><a name="diff0110" /></td></tr> 1208 1209 <tr><td class="lineno" valign="top"></td><td class="lblock"> The <span class="delete">no-transform</span> request directive indicates that <span class="delete">an intermediary</span></td><td> </td><td class="rblock"> The <span class="insert">"max-stale"</span> request directive indicates that <span class="insert">the client is</span></td><td class="lineno" valign="top"></td></tr> 1209 1210 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> (whether or not it implements</span> a <span class="delete">cache) MUST NOT change</span> the</td><td> </td><td class="rblock"><span class="insert"> willing to accept a response that has exceeded its expiration time.</span></td><td class="lineno" valign="top"></td></tr> … … 1214 1215 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> any age.</span></td><td class="lineno" valign="top"></td></tr> 1215 1216 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1216 <tr><td><a name="diff011 0" /></td></tr>1217 <tr><td><a name="diff0111" /></td></tr> 1217 1218 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">only-if-cached</span></td><td> </td><td class="rblock"> <span class="insert">Note: This directive uses the token form of the argument syntax;</span></td><td class="lineno" valign="top"></td></tr> 1218 1219 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> e.g., 'max-stale=10', not 'max-stale="10"'. Senders SHOULD NOT use</span></td><td class="lineno" valign="top"></td></tr> 1219 1220 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> the quoted-string form.</span></td><td class="lineno" valign="top"></td></tr> 1220 1221 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1221 <tr><td><a name="diff011 1" /></td></tr>1222 <tr><td><a name="diff0112" /></td></tr> 1222 1223 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The only-if-cached request directive indicates that the client</span></td><td> </td><td class="rblock"><span class="insert">7.2.1.5. min-fresh</span></td><td class="lineno" valign="top"></td></tr> 1223 1224 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> only wishes to obtain a stored response. If it receives this</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1229 1230 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> that group of caches.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1230 1231 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1231 <tr><td><a name="diff011 2" /></td></tr>1232 <tr><td><a name="diff0113" /></td></tr> 1232 1233 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3.2.2. Response Cache-Control Directives</span></td><td> </td><td class="rblock"><span class="insert"> Argument syntax:</span></td><td class="lineno" valign="top"></td></tr> 1233 1234 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1234 <tr><td><a name="diff011 3" /></td></tr>1235 <tr><td><a name="diff0114" /></td></tr> 1235 1236 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">cache-response-directive =</span></td><td> </td><td class="rblock"> delta-seconds <span class="insert">(see Section 1.4.1)</span></td><td class="lineno" valign="top"></td></tr> 1236 1237 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> "public"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1245 1246 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> / cache-extension</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1246 1247 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1247 <tr><td><a name="diff011 4" /></td></tr>1248 <tr><td><a name="diff0115" /></td></tr> 1248 1249 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">public</span></td><td> </td><td class="rblock"> <span class="insert">The "min-fresh" request directive indicates that the client is</span></td><td class="lineno" valign="top"></td></tr> 1249 1250 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> willing to accept a response whose freshness lifetime is no less than</span></td><td class="lineno" valign="top"></td></tr> … … 1252 1253 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> specified number of seconds.</span></td><td class="lineno" valign="top"></td></tr> 1253 1254 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1254 <tr><td><a name="diff011 5" /></td></tr>1255 <tr><td><a name="diff0116" /></td></tr> 1255 1256 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The public response</span> directive <span class="delete">indicates that a response whose</span></td><td> </td><td class="rblock"> <span class="insert">Note: This</span> directive <span class="insert">uses the token form of the argument syntax;</span></td><td class="lineno" valign="top"></td></tr> 1256 1257 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> associated request contains an 'Authentication' header MAY be</span></td><td> </td><td class="rblock"><span class="insert"> e.g., 'min-fresh=20', not 'min-fresh="20"'. Senders SHOULD NOT use</span></td><td class="lineno" valign="top"></td></tr> 1257 1258 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> stored (see Section 2.7).</span></td><td> </td><td class="rblock"><span class="insert"> the quoted-string form.</span></td><td class="lineno" valign="top"></td></tr> 1258 1259 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1259 <tr><td><a name="diff011 6" /></td></tr>1260 <tr><td><a name="diff0117" /></td></tr> 1260 1261 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> private</span></td><td> </td><td class="rblock"><span class="insert">7.2.1.6. no-transform</span></td><td class="lineno" valign="top"></td></tr> 1261 1262 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1262 <tr><td><a name="diff011 7" /></td></tr>1263 <tr><td><a name="diff0118" /></td></tr> 1263 1264 <tr><td class="lineno" valign="top"></td><td class="lblock"> The <span class="delete">private response</span> directive indicates that <span class="delete">the response message</span></td><td> </td><td class="rblock"> The <span class="insert">"no-transform" request</span> directive indicates that <span class="insert">an intermediary</span></td><td class="lineno" valign="top"></td></tr> 1264 1265 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> is intended for</span> a <span class="delete">single user and</span> MUST NOT <span class="delete">be stored by a shared</span></td><td> </td><td class="rblock"><span class="insert"> (whether or not it implements</span> a <span class="insert">cache)</span> MUST NOT <span class="insert">change the Content-</span></td><td class="lineno" valign="top"></td></tr> … … 1266 1267 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> the <span class="insert">request representation.</span></td><td class="lineno" valign="top"></td></tr> 1267 1268 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1268 <tr><td><a name="diff011 8" /></td></tr>1269 <tr><td><a name="diff0119" /></td></tr> 1269 1270 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">If the private response directive specifies one or more field-</span></td><td> </td><td class="rblock"><span class="insert">7.2.1.7. only-if-cached</span></td><td class="lineno" valign="top"></td></tr> 1270 1271 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> names, this requirement is limited to the field-values associated</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1273 1274 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> the remainder of the response message.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1274 1275 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1275 <tr><td><a name="diff01 19" /></td></tr>1276 <tr><td><a name="diff0120" /></td></tr> 1276 1277 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Note: This usage of</span> the <span class="delete">word "private"</span> only <span class="delete">controls where the</span></td><td> </td><td class="rblock"> <span class="insert">The "only-if-cached" request directive indicates that</span> the <span class="insert">client</span> only</td><td class="lineno" valign="top"></td></tr> 1277 1278 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> response can be stored;</span> it <span class="delete">cannot ensure the privacy of the</span></td><td> </td><td class="rblock"> <span class="insert">wishes to obtain a stored response. If</span> it <span class="insert">receives this directive, a</span></td><td class="lineno" valign="top"></td></tr> … … 1282 1283 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> member cache MAY forward such a request within that group of caches.</span></td><td class="lineno" valign="top"></td></tr> 1283 1284 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1284 <tr><td><a name="diff012 0" /></td></tr>1285 <tr><td><a name="diff0121" /></td></tr> 1285 1286 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> no-cache</span></td><td> </td><td class="rblock"><span class="insert">7.2.2. Response Cache-Control Directives</span></td><td class="lineno" valign="top"></td></tr> 1286 1287 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1287 <tr><td><a name="diff012 1" /></td></tr>1288 <tr><td><a name="diff0122" /></td></tr> 1288 1289 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The no-cache response directive indicates that the response MUST</span></td><td> </td><td class="rblock"><span class="insert">7.2.2.1. public</span></td><td class="lineno" valign="top"></td></tr> 1289 1290 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> NOT be used to satisfy a subsequent request without successful</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1293 1294 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> stale responses.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1294 1295 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1295 <tr><td><a name="diff012 2" /></td></tr>1296 <tr><td><a name="diff0123" /></td></tr> 1296 1297 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">If the no-cache</span> response directive <span class="delete">specifies one or more field-</span></td><td> </td><td class="rblock"> <span class="insert">The "public"</span> response directive <span class="insert">indicates</span> that a <span class="insert">response whose</span></td><td class="lineno" valign="top"></td></tr> 1297 1298 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> names, then a cache MAY use the response to satisfy a subsequent</span></td><td> </td><td class="rblock"><span class="insert"> associated</span> request <span class="insert">contains</span> an <span class="insert">'Authentication'</span> header <span class="insert">MAY be stored</span></td><td class="lineno" valign="top"></td></tr> … … 1304 1305 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> the response.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1305 1306 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1306 <tr><td><a name="diff012 3" /></td></tr>1307 <tr><td><a name="diff0124" /></td></tr> 1307 1308 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Note: Most HTTP/1.0 caches will not recognize or obey this</span></td><td> </td><td class="rblock"><span class="insert">7.2.2.2. private</span></td><td class="lineno" valign="top"></td></tr> 1308 1309 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> directive. Also, no-cache response directives with field-names</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1311 1312 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> qualified form is not widely implemented.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1312 1313 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1313 <tr><td><a name="diff012 4" /></td></tr>1314 <tr><td><a name="diff0125" /></td></tr> 1314 1315 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">no-store</span></td><td> </td><td class="rblock"> <span class="insert">Argument syntax:</span></td><td class="lineno" valign="top"></td></tr> 1315 1316 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1316 <tr><td><a name="diff012 5" /></td></tr>1317 <tr><td><a name="diff0126" /></td></tr> 1317 1318 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The no-store response directive indicates that a cache MUST NOT</span></td><td> </td><td class="rblock"> <span class="insert">#field-name</span></td><td class="lineno" valign="top"></td></tr> 1318 1319 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> store any part of either the immediate request or response. This</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1323 1324 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> storage as promptly as possible after forwarding it.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1324 1325 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1325 <tr><td><a name="diff012 6" /></td></tr>1326 <tr><td><a name="diff0127" /></td></tr> 1326 1327 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">This</span> directive is <span class="delete">NOT a reliable or sufficient mechanism</span> for</td><td> </td><td class="rblock"> <span class="insert">The "private" response</span> directive <span class="insert">indicates that the response message</span></td><td class="lineno" valign="top"></td></tr> 1327 1328 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">ensuring privacy. In particular, malicious or compromised caches</span></td><td> </td><td class="rblock"> is <span class="insert">intended</span> for <span class="insert">a single user</span> and <span class="insert">MUST NOT</span> be <span class="insert">stored by a shared</span></td><td class="lineno" valign="top"></td></tr> … … 1329 1330 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> networks might</span> be <span class="delete">vulnerable to eavesdropping.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1330 1331 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1331 <tr><td><a name="diff012 7" /></td></tr>1332 <tr><td><a name="diff0128" /></td></tr> 1332 1333 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">must-revalidate</span></td><td> </td><td class="rblock"> <span class="insert">If the private response directive specifies one or more field-names,</span></td><td class="lineno" valign="top"></td></tr> 1333 1334 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> this requirement is limited to the field-values associated with the</span></td><td class="lineno" valign="top"></td></tr> … … 1336 1337 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> remainder of the response message.</span></td><td class="lineno" valign="top"></td></tr> 1337 1338 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1338 <tr><td><a name="diff012 8" /></td></tr>1339 <tr><td><a name="diff0129" /></td></tr> 1339 1340 <tr><td class="lineno" valign="top"></td><td class="lblock"> The <span class="delete">must-revalidate response directive indicates that once it has</span></td><td> </td><td class="rblock"> The <span class="insert">field-names given are not limited</span> to the <span class="insert">set of standard header</span></td><td class="lineno" valign="top"></td></tr> 1340 1341 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> become stale, a cache MUST NOT use the response</span> to <span class="delete">satisfy</span></td><td> </td><td class="rblock"><span class="insert"> fields defined by this specification. Field names are case-</span></td><td class="lineno" valign="top"></td></tr> … … 1342 1343 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> server.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1343 1344 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1344 <tr><td><a name="diff01 29" /></td></tr>1345 <tr><td><a name="diff0130" /></td></tr> 1345 1346 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The must-revalidate directive is necessary to support reliable</span></td><td> </td><td class="rblock"> <span class="insert">Note: This usage of the word "private" only controls where the</span></td><td class="lineno" valign="top"></td></tr> 1346 1347 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> operation for certain protocol features. In all circumstances a</span></td><td> </td><td class="rblock"><span class="insert"> response can be stored; it</span> cannot <span class="insert">ensure</span> the <span class="insert">privacy of the message</span></td><td class="lineno" valign="top"></td></tr> … … 1350 1351 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> form is not widely implemented.</span></td><td class="lineno" valign="top"></td></tr> 1351 1352 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1352 <tr><td><a name="diff013 0" /></td></tr>1353 <tr><td><a name="diff0131" /></td></tr> 1353 1354 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The must-revalidate</span> directive <span class="delete">ought to be used by servers if and</span></td><td> </td><td class="rblock"> <span class="insert">Note: This</span> directive <span class="insert">uses the quoted-string form of the argument</span></td><td class="lineno" valign="top"></td></tr> 1354 1355 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> only</span> if <span class="delete">failure</span> to <span class="delete">validate a request on the representation could</span></td><td> </td><td class="rblock"><span class="insert"> syntax. Senders SHOULD NOT use the token form (even</span> if <span class="insert">quoting</span></td><td class="lineno" valign="top"></td></tr> … … 1356 1357 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> financial transaction.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1357 1358 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1358 <tr><td><a name="diff013 1" /></td></tr>1359 <tr><td><a name="diff0132" /></td></tr> 1359 1360 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> proxy-revalidat</span>e</td><td> </td><td class="rblock"><span class="insert">7.2.2.3. no-cach</span>e</td><td class="lineno" valign="top"></td></tr> 1360 1361 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1361 <tr><td><a name="diff013 2" /></td></tr>1362 <tr><td><a name="diff0133" /></td></tr> 1362 1363 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The proxy-revalidate response directive has the same meaning as</span></td><td> </td><td class="rblock"> <span class="insert">Argument syntax:</span></td><td class="lineno" valign="top"></td></tr> 1363 1364 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> the must-revalidate response directive, except that it does not</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1364 1365 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> apply to private caches.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1365 1366 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1366 <tr><td><a name="diff013 3" /></td></tr>1367 <tr><td><a name="diff0134" /></td></tr> 1367 1368 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">max-ag</span>e</td><td> </td><td class="rblock"> <span class="insert"> #field-nam</span>e</td><td class="lineno" valign="top"></td></tr> 1368 1369 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1369 <tr><td><a name="diff013 4" /></td></tr>1370 <tr><td><a name="diff0135" /></td></tr> 1370 1371 <tr><td class="lineno" valign="top"></td><td class="lblock"> The <span class="delete">max-age</span> response directive indicates that the response <span class="delete">is to</span></td><td> </td><td class="rblock"> The <span class="insert">"no-cache"</span> response directive indicates that the response <span class="insert">MUST</span></td><td class="lineno" valign="top"></td></tr> 1371 1372 <tr><td class="lineno" valign="top"></td><td class="lblock"> be <span class="delete">considered stale after its age is greater than</span> the <span class="delete">specified</span></td><td> </td><td class="rblock"><span class="insert"> NOT</span> be <span class="insert">used to satisfy a subsequent request without successful</span></td><td class="lineno" valign="top"></td></tr> … … 1375 1376 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> responses.</span></td><td class="lineno" valign="top"></td></tr> 1376 1377 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1377 <tr><td><a name="diff013 5" /></td></tr>1378 <tr><td><a name="diff0136" /></td></tr> 1378 1379 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">s-maxage</span></td><td> </td><td class="rblock"> <span class="insert">If the no-cache response directive specifies one or more field-names,</span></td><td class="lineno" valign="top"></td></tr> 1379 1380 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> then a cache MAY use the response to satisfy a subsequent request,</span></td><td class="lineno" valign="top"></td></tr> … … 1385 1386 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> still allowing caching of the rest of the response.</span></td><td class="lineno" valign="top"></td></tr> 1386 1387 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1387 <tr><td><a name="diff013 6" /></td></tr>1388 <tr><td><a name="diff0137" /></td></tr> 1388 1389 <tr><td class="lineno" valign="top"></td><td class="lblock"> The <span class="delete">s-maxage response directive indicates that, in shared caches,</span></td><td> </td><td class="rblock"> The <span class="insert">field-names given are not limited to</span> the <span class="insert">set of standard header</span></td><td class="lineno" valign="top"></td></tr> 1389 1390 <tr><td class="lineno" valign="top"></td><td class="lblock"> the <span class="delete">maximum age specified</span> by this <span class="delete">directive overrides the maximum</span></td><td> </td><td class="rblock"><span class="insert"> fields defined</span> by this <span class="insert">specification. Field names are case-</span></td><td class="lineno" valign="top"></td></tr> … … 1392 1393 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> of the proxy-revalidate response directive.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1393 1394 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1394 <tr><td><a name="diff013 7" /></td></tr>1395 <tr><td><a name="diff0138" /></td></tr> 1395 1396 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">no-transform</span></td><td> </td><td class="rblock"> <span class="insert">Note: Many HTTP/1.0 caches will not recognize or obey this directive.</span></td><td class="lineno" valign="top"></td></tr> 1396 1397 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Also, no-cache response directives with field-names are often handled</span></td><td class="lineno" valign="top"></td></tr> … … 1399 1400 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> widely implemented.</span></td><td class="lineno" valign="top"></td></tr> 1400 1401 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1401 <tr><td><a name="diff013 8" /></td></tr>1402 <tr><td><a name="diff0139" /></td></tr> 1402 1403 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The no-transform response</span> directive <span class="delete">indicates that an intermediary</span></td><td> </td><td class="rblock"> <span class="insert">Note: This</span> directive <span class="insert">uses the quoted-string form</span> of the <span class="insert">argument</span></td><td class="lineno" valign="top"></td></tr> 1403 1404 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> (regardless</span> of <span class="delete">whether it implements a cache) MUST NOT change</span> the</td><td> </td><td class="rblock"><span class="insert"> syntax. Senders SHOULD NOT use</span> the <span class="insert">token form (even if quoting</span></td><td class="lineno" valign="top"></td></tr> … … 1405 1406 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> fields, nor</span> the <span class="delete">response representation.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1406 1407 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1407 <tr><td><a name="diff01 39" /></td></tr>1408 <tr><td><a name="diff0140" /></td></tr> 1408 1409 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3.2.3.</span> Cache Control Extensions</td><td> </td><td class="rblock"><span class="insert">7.2.2.4. no-store</span></td><td class="lineno" valign="top"></td></tr> 1409 1410 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr> … … 1504 1505 <tr><td class="lineno" valign="top"></td><td class="left"> define this new directive to mean that, in addition to any private</td><td> </td><td class="right"> define this new directive to mean that, in addition to any private</td><td class="lineno" valign="top"></td></tr> 1505 1506 <tr><td class="lineno" valign="top"></td><td class="left"> cache, any cache that is shared only by members of the community</td><td> </td><td class="right"> cache, any cache that is shared only by members of the community</td><td class="lineno" valign="top"></td></tr> 1506 <tr><td><a name="diff014 0" /></td></tr>1507 <tr><td><a name="diff0141" /></td></tr> 1507 1508 <tr><td class="lineno" valign="top"></td><td class="lblock"> named within its value <span class="delete">may</span> cache the response. An origin server</td><td> </td><td class="rblock"> named within its value <span class="insert">is allowed to</span> cache the response. An origin</td><td class="lineno" valign="top"></td></tr> 1508 1509 <tr><td class="lineno" valign="top"></td><td class="lblock"> wishing to allow the UCI community to use an otherwise private</td><td> </td><td class="rblock"> server wishing to allow the UCI community to use an otherwise private</td><td class="lineno" valign="top"></td></tr> … … 1522 1523 <tr><td class="lineno" valign="top"></td><td class="left"> correct even if the cache does not understand the extension(s).</td><td> </td><td class="right"> correct even if the cache does not understand the extension(s).</td><td class="lineno" valign="top"></td></tr> 1523 1524 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1524 <tr><td><a name="diff014 1" /></td></tr>1525 <tr><td><a name="diff0142" /></td></tr> 1525 1526 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">New extension directives ought to consider defining:</span></td><td class="lineno" valign="top"></td></tr> 1526 1527 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr> … … 1548 1549 <tr><td class="lineno" valign="top"></td><td class="left"> <http://www.iana.org/assignments/http-cache-directives>.</td><td> </td><td class="right"> <http://www.iana.org/assignments/http-cache-directives>.</td><td class="lineno" valign="top"></td></tr> 1549 1550 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1550 <tr><td><a name="diff014 2" /></td></tr>1551 <tr><td><a name="diff0143" /></td></tr> 1551 1552 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.3. Expires</td><td> </td><td class="rblock"><span class="insert">7</span>.3. Expires</td><td class="lineno" valign="top"></td></tr> 1552 1553 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1553 1554 <tr><td class="lineno" valign="top"></td><td class="left"> The "Expires" header field gives the date/time after which the</td><td> </td><td class="right"> The "Expires" header field gives the date/time after which the</td><td class="lineno" valign="top"></td></tr> 1554 <tr><td><a name="diff014 3" /></td></tr>1555 <tr><td><a name="diff0144" /></td></tr> 1555 1556 <tr><td class="lineno" valign="top"></td><td class="lblock"> response is considered stale. See Section <span class="delete">2.3</span> for further discussion</td><td> </td><td class="rblock"> response is considered stale. See Section <span class="insert">4.1</span> for further discussion</td><td class="lineno" valign="top"></td></tr> 1556 1557 <tr><td class="lineno" valign="top"></td><td class="left"> of the freshness model.</td><td> </td><td class="right"> of the freshness model.</td><td class="lineno" valign="top"></td></tr> … … 1561 1562 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1562 1563 <tr><td class="lineno" valign="top"></td><td class="left"> The field-value is an absolute date and time as defined by HTTP-date</td><td> </td><td class="right"> The field-value is an absolute date and time as defined by HTTP-date</td><td class="lineno" valign="top"></td></tr> 1563 <tr><td><a name="diff014 4" /></td></tr>1564 <tr><td><a name="diff0145" /></td></tr> 1564 1565 <tr><td class="lineno" valign="top"></td><td class="lblock"> in Section <span class="delete">8</span> of [Part2]; a sender MUST use the rfc1123-date format.</td><td> </td><td class="rblock"> in Section <span class="insert">5.1</span> of [Part2]; a sender MUST use the rfc1123-date format.</td><td class="lineno" valign="top"></td></tr> 1565 1566 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1574 1575 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1575 1576 <tr><td class="lineno" valign="top"></td><td class="left"> Note: If a response includes a Cache-Control field with the max-</td><td> </td><td class="right"> Note: If a response includes a Cache-Control field with the max-</td><td class="lineno" valign="top"></td></tr> 1576 <tr><td><a name="diff014 5" /></td></tr>1577 <tr><td><a name="diff0146" /></td></tr> 1577 1578 <tr><td class="lineno" valign="top"></td><td class="lblock"> age directive (see Section <span class="delete">3.2.2),</span> that directive overrides the</td><td> </td><td class="rblock"> age directive (see Section <span class="insert">7.2.2.7),</span> that directive overrides the</td><td class="lineno" valign="top"></td></tr> 1578 1579 <tr><td class="lineno" valign="top"></td><td class="lblock"> Expires field. Likewise, the s-maxage directive overrides Expires</td><td> </td><td class="rblock"> Expires field. Likewise, the s-maxage directive <span class="insert">(Section 7.2.2.8)</span></td><td class="lineno" valign="top"></td></tr> … … 1583 1584 <tr><td class="lineno" valign="top"></td><td class="left"> longer prohibited, extremely large values have been demonstrated to</td><td> </td><td class="right"> longer prohibited, extremely large values have been demonstrated to</td><td class="lineno" valign="top"></td></tr> 1584 1585 <tr><td class="lineno" valign="top"></td><td class="left"> cause problems (e.g., clock overflows due to use of 32-bit integers</td><td> </td><td class="right"> cause problems (e.g., clock overflows due to use of 32-bit integers</td><td class="lineno" valign="top"></td></tr> 1585 <tr><td><a name="diff014 6" /></td></tr>1586 <tr><td><a name="diff0147" /></td></tr> 1586 1587 <tr><td class="lineno" valign="top"></td><td class="lblock"> for time values), and m<span class="delete">ost</span> caches will evict a response far sooner</td><td> </td><td class="rblock"> for time values), and m<span class="insert">any</span> caches will evict a response far sooner</td><td class="lineno" valign="top"></td></tr> 1587 1588 <tr><td class="lineno" valign="top"></td><td class="left"> than that. Therefore, senders ought not produce them.</td><td> </td><td class="right"> than that. Therefore, senders ought not produce them.</td><td class="lineno" valign="top"></td></tr> … … 1594 1595 <tr><td class="lineno" valign="top"></td><td class="left"> separate Expires values for each resource).</td><td> </td><td class="right"> separate Expires values for each resource).</td><td class="lineno" valign="top"></td></tr> 1595 1596 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1596 <tr><td><a name="diff014 7" /></td></tr>1597 <tr><td><a name="diff0148" /></td></tr> 1597 1598 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.4. Pragma</td><td> </td><td class="rblock"><span class="insert">7</span>.4. Pragma</td><td class="lineno" valign="top"></td></tr> 1598 1599 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1600 1601 <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.0 caches, so that clients can specify a "no-cache" request</td><td> </td><td class="right"> HTTP/1.0 caches, so that clients can specify a "no-cache" request</td><td class="lineno" valign="top"></td></tr> 1601 1602 <tr><td class="lineno" valign="top"></td><td class="left"> that they will understand (as Cache-Control was not defined until</td><td> </td><td class="right"> that they will understand (as Cache-Control was not defined until</td><td class="lineno" valign="top"></td></tr> 1602 <tr><td><a name="diff014 8" /></td></tr>1603 <tr><td><a name="diff0149" /></td></tr> 1603 1604 <tr><td class="lineno" valign="top"></td><td class="lblock"> HTTP/1.1). When the Cache-Control header is also present and</td><td> </td><td class="rblock"> HTTP/1.1). When the Cache-Control header <span class="insert">field </span>is also present and</td><td class="lineno" valign="top"></td></tr> 1604 1605 <tr><td class="lineno" valign="top"></td><td class="left"> understood in a request, Pragma is ignored.</td><td> </td><td class="right"> understood in a request, Pragma is ignored.</td><td class="lineno" valign="top"></td></tr> … … 1612 1613 <tr><td class="lineno" valign="top"></td><td class="left"> extension-pragma = token [ "=" ( token / quoted-string ) ]</td><td> </td><td class="right"> extension-pragma = token [ "=" ( token / quoted-string ) ]</td><td class="lineno" valign="top"></td></tr> 1613 1614 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1614 <tr><td><a name="diff01 49" /></td></tr>1615 <tr><td><a name="diff0150" /></td></tr> 1615 1616 <tr><td class="lineno" valign="top"></td><td class="lblock"> When the Cache-Control header is not present in a request, the <span class="delete">no-</span></td><td> </td><td class="rblock"> When the Cache-Control header <span class="insert">field</span> is not present in a request, the</td><td class="lineno" valign="top"></td></tr> 1616 1617 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> cache</span> request pragma-directive MUST have the same effect on caches as</td><td> </td><td class="rblock"> <span class="insert">no-cache</span> request pragma-directive MUST have the same effect on caches</td><td class="lineno" valign="top"></td></tr> … … 1635 1636 <tr><td class="lineno" valign="top"></td><td class="left"> "Cache-Control: no-cache" in them.</td><td> </td><td class="right"> "Cache-Control: no-cache" in them.</td><td class="lineno" valign="top"></td></tr> 1636 1637 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1637 <tr><td><a name="diff015 0" /></td></tr>1638 <tr><td><a name="diff0151" /></td></tr> 1638 1639 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.5. Vary</td><td> </td><td class="rblock"><span class="insert">7</span>.5. Vary</td><td class="lineno" valign="top"></td></tr> 1639 1640 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1642 1643 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1643 1644 <tr><td class="lineno" valign="top"></td><td class="left"> Caches use this information, in part, to determine whether a stored</td><td> </td><td class="right"> Caches use this information, in part, to determine whether a stored</td><td class="lineno" valign="top"></td></tr> 1644 <tr><td><a name="diff015 1" /></td></tr>1645 <tr><td><a name="diff0152" /></td></tr> 1645 1646 <tr><td class="lineno" valign="top"></td><td class="lblock"> response can be used to satisfy a given request; see Section <span class="delete">2.8.</span></td><td> </td><td class="rblock"> response can be used to satisfy a given request; see Section <span class="insert">4.3.</span></td><td class="lineno" valign="top"></td></tr> 1646 1647 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> determines, while the response is fresh, whether a cache is permitted</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 1669 1670 <tr><td class="lineno" valign="top"></td><td class="left"> insensitive.</td><td> </td><td class="right"> insensitive.</td><td class="lineno" valign="top"></td></tr> 1670 1671 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1671 <tr><td><a name="diff015 2" /></td></tr>1672 <tr><td><a name="diff0153" /></td></tr> 1672 1673 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.6. Warning</td><td> </td><td class="rblock"><span class="insert">7</span>.6. Warning</td><td class="lineno" valign="top"></td></tr> 1673 1674 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1693 1694 <tr><td class="lineno" valign="top"></td><td class="left"> Systems that generate multiple Warning header fields are encouraged</td><td> </td><td class="right"> Systems that generate multiple Warning header fields are encouraged</td><td class="lineno" valign="top"></td></tr> 1694 1695 <tr><td class="lineno" valign="top"></td><td class="left"> to order them with this user agent behavior in mind. New Warning</td><td> </td><td class="right"> to order them with this user agent behavior in mind. New Warning</td><td class="lineno" valign="top"></td></tr> 1695 <tr><td><a name="diff015 3" /></td></tr>1696 <tr><td><a name="diff0154" /></td></tr> 1696 1697 <tr><td class="lineno" valign="top"></td><td class="lblock"> header fields are added after any existing Warning header<span class="delete">s</span> fields.</td><td> </td><td class="rblock"> header fields are added after any existing Warning header fields.</td><td class="lineno" valign="top"></td></tr> 1697 1698 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1717 1718 <tr><td class="lineno" valign="top"></td><td class="left"> a recommended warn-text in English, and a description of its meaning.</td><td> </td><td class="right"> a recommended warn-text in English, and a description of its meaning.</td><td class="lineno" valign="top"></td></tr> 1718 1719 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1719 <tr><td><a name="diff015 4" /></td></tr>1720 <tr><td><a name="diff0155" /></td></tr> 1720 1721 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.6.1. 110 Response is Stale</td><td> </td><td class="rblock"><span class="insert">7</span>.6.1. 110 Response is Stale</td><td class="lineno" valign="top"></td></tr> 1721 1722 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1722 1723 <tr><td class="lineno" valign="top"></td><td class="left"> A cache SHOULD include this whenever the returned response is stale.</td><td> </td><td class="right"> A cache SHOULD include this whenever the returned response is stale.</td><td class="lineno" valign="top"></td></tr> 1723 1724 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1724 <tr><td><a name="diff015 5" /></td></tr>1725 <tr><td><a name="diff0156" /></td></tr> 1725 1726 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.6.2. 111 Revalidation Failed</td><td> </td><td class="rblock"><span class="insert">7</span>.6.2. 111 Revalidation Failed</td><td class="lineno" valign="top"></td></tr> 1726 1727 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1729 1730 <tr><td class="lineno" valign="top"></td><td class="left"> reach the server.</td><td> </td><td class="right"> reach the server.</td><td class="lineno" valign="top"></td></tr> 1730 1731 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1731 <tr><td><a name="diff015 6" /></td></tr>1732 <tr><td><a name="diff0157" /></td></tr> 1732 1733 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.6.3. 112 Disconnected Operation</td><td> </td><td class="rblock"><span class="insert">7</span>.6.3. 112 Disconnected Operation</td><td class="lineno" valign="top"></td></tr> 1733 1734 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1735 1736 <tr><td class="lineno" valign="top"></td><td class="left"> the rest of the network for a period of time.</td><td> </td><td class="right"> the rest of the network for a period of time.</td><td class="lineno" valign="top"></td></tr> 1736 1737 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1737 <tr><td><a name="diff015 7" /></td></tr>1738 <tr><td><a name="diff0158" /></td></tr> 1738 1739 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.6.4. 113 Heuristic Expiration</td><td> </td><td class="rblock"><span class="insert">7</span>.6.4. 113 Heuristic Expiration</td><td class="lineno" valign="top"></td></tr> 1739 1740 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1742 1743 <tr><td class="lineno" valign="top"></td><td class="left"> 24 hours.</td><td> </td><td class="right"> 24 hours.</td><td class="lineno" valign="top"></td></tr> 1743 1744 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1744 <tr><td><a name="diff015 8" /></td></tr>1745 <tr><td><a name="diff0159" /></td></tr> 1745 1746 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.6.5. 199 Miscellaneous Warning</td><td> </td><td class="rblock"><span class="insert">7</span>.6.5. 199 Miscellaneous Warning</td><td class="lineno" valign="top"></td></tr> 1746 1747 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1750 1751 <tr><td class="lineno" valign="top"></td><td class="left"> user.</td><td> </td><td class="right"> user.</td><td class="lineno" valign="top"></td></tr> 1751 1752 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1752 <tr><td><a name="diff01 59" /></td></tr>1753 <tr><td><a name="diff0160" /></td></tr> 1753 1754 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.6.6. 214 Transformation Applied</td><td> </td><td class="rblock"><span class="insert">7</span>.6.6. 214 Transformation Applied</td><td class="lineno" valign="top"></td></tr> 1754 1755 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1758 1759 <tr><td class="lineno" valign="top"></td><td class="left"> appears in the response.</td><td> </td><td class="right"> appears in the response.</td><td class="lineno" valign="top"></td></tr> 1759 1760 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1760 <tr><td><a name="diff016 0" /></td></tr>1761 <tr><td><a name="diff0161" /></td></tr> 1761 1762 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.6.7. 299 Miscellaneous Persistent Warning</td><td> </td><td class="rblock"><span class="insert">7</span>.6.7. 299 Miscellaneous Persistent Warning</td><td class="lineno" valign="top"></td></tr> 1762 1763 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1765 1766 <tr><td class="lineno" valign="top"></td><td class="left"> take any automated action.</td><td> </td><td class="right"> take any automated action.</td><td class="lineno" valign="top"></td></tr> 1766 1767 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1767 <tr><td><a name="diff016 1" /></td></tr>1768 <tr><td><a name="diff0162" /></td></tr> 1768 1769 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">3</span>.6.8. Warn Code Extensions</td><td> </td><td class="rblock"><span class="insert">7</span>.6.8. Warn Code Extensions</td><td class="lineno" valign="top"></td></tr> 1769 1770 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1775 1776 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1776 1777 <tr><td class="lineno" valign="top"></td><td class="left"> o Short Description</td><td> </td><td class="right"> o Short Description</td><td class="lineno" valign="top"></td></tr> 1777 <tr><td><a name="diff016 2" /></td></tr>1778 <tr><td><a name="diff0163" /></td></tr> 1778 1779 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> </span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1779 1780 <tr><td class="lineno" valign="top"></td><td class="left"> o Pointer to specification text</td><td> </td><td class="right"> o Pointer to specification text</td><td class="lineno" valign="top"></td></tr> … … 1785 1786 <tr><td class="lineno" valign="top"></td><td class="left"> <http://www.iana.org/assignments/http-warn-codes>.</td><td> </td><td class="right"> <http://www.iana.org/assignments/http-warn-codes>.</td><td class="lineno" valign="top"></td></tr> 1786 1787 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1787 <tr><td><a name="diff016 3" /></td></tr>1788 <tr><td><a name="diff0164" /></td></tr> 1788 1789 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">4</span>. History Lists</td><td> </td><td class="rblock"><span class="insert">8</span>. History Lists</td><td class="lineno" valign="top"></td></tr> 1789 1790 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1792 1793 <tr><td class="lineno" valign="top"></td><td class="left"> retrieved earlier in a session.</td><td> </td><td class="right"> retrieved earlier in a session.</td><td class="lineno" valign="top"></td></tr> 1793 1794 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1794 <tr><td><a name="diff016 4" /></td></tr>1795 <tr><td><a name="diff0165" /></td></tr> 1795 1796 <tr><td class="lineno" valign="top"></td><td class="lblock"> The freshness model (Section <span class="delete">2.3</span>) does not necessarily apply to</td><td> </td><td class="rblock"> The freshness model (Section <span class="insert">4.1</span>) does not necessarily apply to</td><td class="lineno" valign="top"></td></tr> 1796 1797 <tr><td class="lineno" valign="top"></td><td class="left"> history mechanisms. I.e., a history mechanism can display a previous</td><td> </td><td class="right"> history mechanisms. I.e., a history mechanism can display a previous</td><td class="lineno" valign="top"></td></tr> … … 1801 1802 <tr><td class="lineno" valign="top"></td><td class="left"> Cache-Control: no-store).</td><td> </td><td class="right"> Cache-Control: no-store).</td><td class="lineno" valign="top"></td></tr> 1802 1803 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1803 <tr><td><a name="diff016 5" /></td></tr>1804 <tr><td><a name="diff0166" /></td></tr> 1804 1805 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">5</span>. IANA Considerations</td><td> </td><td class="rblock"><span class="insert">9</span>. IANA Considerations</td><td class="lineno" valign="top"></td></tr> 1805 1806 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1806 <tr><td><a name="diff016 6" /></td></tr>1807 <tr><td><a name="diff0167" /></td></tr> 1807 1808 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">5</span>.1. Cache Directive Registry</td><td> </td><td class="rblock"><span class="insert">9</span>.1. Cache Directive Registry</td><td class="lineno" valign="top"></td></tr> 1808 1809 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1809 1810 <tr><td class="lineno" valign="top"></td><td class="left"> The registration procedure for HTTP Cache Directives is defined by</td><td> </td><td class="right"> The registration procedure for HTTP Cache Directives is defined by</td><td class="lineno" valign="top"></td></tr> 1810 <tr><td><a name="diff016 7" /></td></tr>1811 <tr><td><a name="diff0168" /></td></tr> 1811 1812 <tr><td class="lineno" valign="top"></td><td class="lblock"> Section <span class="delete">3</span>.2.3 of this document.</td><td> </td><td class="rblock"> Section <span class="insert">7</span>.2.3 of this document.</td><td class="lineno" valign="top"></td></tr> 1812 1813 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1815 1816 <tr><td class="lineno" valign="top"></td><td class="left"> populated with the registrations below:</td><td> </td><td class="right"> populated with the registrations below:</td><td class="lineno" valign="top"></td></tr> 1816 1817 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1817 <tr><td><a name="diff016 8" /></td></tr>1818 <tr><td><a name="diff0169" /></td></tr> 1818 1819 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">+------------------------+------------------------------+</span></td><td> </td><td class="rblock"> <span class="insert">+------------------------+----------------------------------+</span></td><td class="lineno" valign="top"></td></tr> 1819 1820 <tr><td class="lineno" valign="top"></td><td class="lblock"> | Cache Directive | Reference |</td><td> </td><td class="rblock"> | Cache Directive | Reference |</td><td class="lineno" valign="top"></td></tr> … … 1835 1836 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">+------------------------+------------------------------+</span></td><td> </td><td class="rblock"> <span class="insert">+------------------------+----------------------------------+</span></td><td class="lineno" valign="top"></td></tr> 1836 1837 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1837 <tr><td><a name="diff01 69" /></td></tr>1838 <tr><td><a name="diff0170" /></td></tr> 1838 1839 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">5</span>.2. Warn Code Registry</td><td> </td><td class="rblock"><span class="insert">9</span>.2. Warn Code Registry</td><td class="lineno" valign="top"></td></tr> 1839 1840 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1840 1841 <tr><td class="lineno" valign="top"></td><td class="left"> The registration procedure for HTTP Warn Codes is defined by</td><td> </td><td class="right"> The registration procedure for HTTP Warn Codes is defined by</td><td class="lineno" valign="top"></td></tr> 1841 <tr><td><a name="diff017 0" /></td></tr>1842 <tr><td><a name="diff0171" /></td></tr> 1842 1843 <tr><td class="lineno" valign="top"></td><td class="lblock"> Section <span class="delete">3</span>.6.8 of this document.</td><td> </td><td class="rblock"> Section <span class="insert">7</span>.6.8 of this document.</td><td class="lineno" valign="top"></td></tr> 1843 1844 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1849 1850 <tr><td class="lineno" valign="top"></td><td class="left"> | Warn Code | Short Description | Reference |</td><td> </td><td class="right"> | Warn Code | Short Description | Reference |</td><td class="lineno" valign="top"></td></tr> 1850 1851 <tr><td class="lineno" valign="top"></td><td class="left"> +-----------+----------------------------------+---------------+</td><td> </td><td class="right"> +-----------+----------------------------------+---------------+</td><td class="lineno" valign="top"></td></tr> 1851 <tr><td><a name="diff017 1" /></td></tr>1852 <tr><td><a name="diff0172" /></td></tr> 1852 1853 <tr><td class="lineno" valign="top"></td><td class="lblock"> | 110 | Response is Stale | Section <span class="delete">3.6.1</span> |</td><td> </td><td class="rblock"> | 110 | Response is Stale | Section <span class="insert">7.6.1</span> |</td><td class="lineno" valign="top"></td></tr> 1853 1854 <tr><td class="lineno" valign="top"></td><td class="lblock"> | 111 | Revalidation Failed | Section <span class="delete">3.6.2</span> |</td><td> </td><td class="rblock"> | 111 | Revalidation Failed | Section <span class="insert">7.6.2</span> |</td><td class="lineno" valign="top"></td></tr> … … 1859 1860 <tr><td class="lineno" valign="top"></td><td class="left"> +-----------+----------------------------------+---------------+</td><td> </td><td class="right"> +-----------+----------------------------------+---------------+</td><td class="lineno" valign="top"></td></tr> 1860 1861 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1861 <tr><td><a name="diff017 2" /></td></tr>1862 <tr><td><a name="diff0173" /></td></tr> 1862 1863 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">5</span>.3. Header Field Registration</td><td> </td><td class="rblock"><span class="insert">9</span>.3. Header Field Registration</td><td class="lineno" valign="top"></td></tr> 1863 1864 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1869 1870 <tr><td class="lineno" valign="top"></td><td class="left"> | Header Field Name | Protocol | Status | Reference |</td><td> </td><td class="right"> | Header Field Name | Protocol | Status | Reference |</td><td class="lineno" valign="top"></td></tr> 1870 1871 <tr><td class="lineno" valign="top"></td><td class="left"> +-------------------+----------+----------+-------------+</td><td> </td><td class="right"> +-------------------+----------+----------+-------------+</td><td class="lineno" valign="top"></td></tr> 1871 <tr><td><a name="diff017 3" /></td></tr>1872 <tr><td><a name="diff0174" /></td></tr> 1872 1873 <tr><td class="lineno" valign="top"></td><td class="lblock"> | Age | http | standard | Section <span class="delete">3.1</span> |</td><td> </td><td class="rblock"> | Age | http | standard | Section <span class="insert">7.1</span> |</td><td class="lineno" valign="top"></td></tr> 1873 1874 <tr><td class="lineno" valign="top"></td><td class="lblock"> | Cache-Control | http | standard | Section <span class="delete">3.2</span> |</td><td> </td><td class="rblock"> | Cache-Control | http | standard | Section <span class="insert">7.2</span> |</td><td class="lineno" valign="top"></td></tr> … … 1881 1882 <tr><td class="lineno" valign="top"></td><td class="left"> Engineering Task Force".</td><td> </td><td class="right"> Engineering Task Force".</td><td class="lineno" valign="top"></td></tr> 1882 1883 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1883 <tr><td><a name="diff017 4" /></td></tr>1884 <tr><td><a name="diff0175" /></td></tr> 1884 1885 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">6</span>. Security Considerations</td><td> </td><td class="rblock"><span class="insert">10</span>. Security Considerations</td><td class="lineno" valign="top"></td></tr> 1885 1886 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1892 1893 <tr><td class="lineno" valign="top"></td><td class="left"> information.</td><td> </td><td class="right"> information.</td><td class="lineno" valign="top"></td></tr> 1893 1894 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1894 <tr><td><a name="diff017 5" /></td></tr>1895 <tr><td><a name="diff0176" /></td></tr> 1895 1896 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">7</span>. Acknowledgments</td><td> </td><td class="rblock"><span class="insert">11</span>. Acknowledgments</td><td class="lineno" valign="top"></td></tr> 1896 1897 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1897 1898 <tr><td class="lineno" valign="top"></td><td class="left"> See Section 9 of [Part1].</td><td> </td><td class="right"> See Section 9 of [Part1].</td><td class="lineno" valign="top"></td></tr> 1898 1899 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1899 <tr><td><a name="diff017 6" /></td></tr>1900 <tr><td><a name="diff0177" /></td></tr> 1900 1901 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">8.</span> References</td><td> </td><td class="rblock"><span class="insert">12.</span> References</td><td class="lineno" valign="top"></td></tr> 1901 1902 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">8.1.</span> Normative References</td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr> … … 1903 1904 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1904 1905 <tr><td class="lineno" valign="top"></td><td class="left"> [Part1] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td> </td><td class="right"> [Part1] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td class="lineno" valign="top"></td></tr> 1905 <tr><td><a name="diff017 7" /></td></tr>1906 <tr><td><a name="diff0178" /></td></tr> 1906 1907 <tr><td class="lineno" valign="top"></td><td class="lblock"> "HTTP/1.1, part 1: <span class="delete">URIs, Connections, and</span> Message</td><td> </td><td class="rblock"> "HTTP/1.1, part 1: Message <span class="insert">Routing and Syntax"",</span></td><td class="lineno" valign="top"></td></tr> 1907 1908 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Parsing", draft-ietf-httpbis-p1-messaging-19</span> (work in</td><td> </td><td class="rblock"><span class="insert"> draft-ietf-httpbis-p1-messaging-20</span> (work in progress),</td><td class="lineno" valign="top"></td></tr> … … 1909 1910 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1910 1911 <tr><td class="lineno" valign="top"></td><td class="left"> [Part2] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td> </td><td class="right"> [Part2] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td class="lineno" valign="top"></td></tr> 1911 <tr><td><a name="diff017 8" /></td></tr>1912 <tr><td><a name="diff0179" /></td></tr> 1912 1913 <tr><td class="lineno" valign="top"></td><td class="lblock"> "HTTP/1.1, part 2: <span class="delete">Message Semantics",</span></td><td> </td><td class="rblock"> "HTTP/1.1, part 2: <span class="insert">Semantics and Payloads",</span></td><td class="lineno" valign="top"></td></tr> 1913 1914 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> draft-ietf-httpbis-p2-semantics-19</span> (work in progress),</td><td> </td><td class="rblock"><span class="insert"> draft-ietf-httpbis-p2-semantics-20</span> (work in progress),</td><td class="lineno" valign="top"></td></tr> … … 1916 1917 <tr><td class="lineno" valign="top"></td><td class="left"> [Part4] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td> </td><td class="right"> [Part4] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td class="lineno" valign="top"></td></tr> 1917 1918 <tr><td class="lineno" valign="top"></td><td class="left"> "HTTP/1.1, part 4: Conditional Requests",</td><td> </td><td class="right"> "HTTP/1.1, part 4: Conditional Requests",</td><td class="lineno" valign="top"></td></tr> 1918 <tr><td><a name="diff01 79" /></td></tr>1919 <tr><td><a name="diff0180" /></td></tr> 1919 1920 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">draft-ietf-httpbis-p4-conditional-19</span> (work in progress),</td><td> </td><td class="rblock"> <span class="insert">draft-ietf-httpbis-p4-conditional-20</span> (work in progress),</td><td class="lineno" valign="top"></td></tr> 1920 1921 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">March</span> 2012.</td><td> </td><td class="rblock"> <span class="insert">July</span> 2012.</td><td class="lineno" valign="top"></td></tr> 1921 1922 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1922 1923 <tr><td class="lineno" valign="top"></td><td class="left"> [Part5] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td> </td><td class="right"> [Part5] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td class="lineno" valign="top"></td></tr> 1923 <tr><td><a name="diff018 0" /></td></tr>1924 <tr><td><a name="diff0181" /></td></tr> 1924 1925 <tr><td class="lineno" valign="top"></td><td class="lblock"> "HTTP/1.1, part 5: Range <span class="delete">Requests and Partial Responses",</span></td><td> </td><td class="rblock"> "HTTP/1.1, part 5: Range <span class="insert">Requests",</span></td><td class="lineno" valign="top"></td></tr> 1925 1926 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> draft-ietf-httpbis-p5-range-19</span> (work in progress),</td><td> </td><td class="rblock"><span class="insert"> draft-ietf-httpbis-p5-range-20</span> (work in progress),</td><td class="lineno" valign="top"></td></tr> … … 1928 1929 <tr><td class="lineno" valign="top"></td><td class="left"> [Part7] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td> </td><td class="right"> [Part7] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td class="lineno" valign="top"></td></tr> 1929 1930 <tr><td class="lineno" valign="top"></td><td class="left"> "HTTP/1.1, part 7: Authentication",</td><td> </td><td class="right"> "HTTP/1.1, part 7: Authentication",</td><td class="lineno" valign="top"></td></tr> 1930 <tr><td><a name="diff018 1" /></td></tr>1931 <tr><td><a name="diff0182" /></td></tr> 1931 1932 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">draft-ietf-httpbis-p7-auth-19</span> (work in progress),</td><td> </td><td class="rblock"> <span class="insert">draft-ietf-httpbis-p7-auth-20</span> (work in progress),</td><td class="lineno" valign="top"></td></tr> 1932 1933 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">March</span> 2012.</td><td> </td><td class="rblock"> <span class="insert">July</span> 2012.</td><td class="lineno" valign="top"></td></tr> … … 1938 1939 <tr><td class="lineno" valign="top"></td><td class="left"> Specifications: ABNF", STD 68, RFC 5234, January 2008.</td><td> </td><td class="right"> Specifications: ABNF", STD 68, RFC 5234, January 2008.</td><td class="lineno" valign="top"></td></tr> 1939 1940 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1940 <tr><td><a name="diff018 2" /></td></tr>1941 <tr><td><a name="diff0183" /></td></tr> 1941 1942 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">8</span>.2. Informative References</td><td> </td><td class="rblock"><span class="insert">12</span>.2. Informative References</td><td class="lineno" valign="top"></td></tr> 1942 1943 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1962 1963 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1963 1964 <tr><td class="lineno" valign="top"></td><td class="left"> Make the specified age calculation algorithm less conservative.</td><td> </td><td class="right"> Make the specified age calculation algorithm less conservative.</td><td class="lineno" valign="top"></td></tr> 1964 <tr><td><a name="diff018 3" /></td></tr>1965 <tr><td><a name="diff0184" /></td></tr> 1965 1966 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">2.3.2</span>)</td><td> </td><td class="rblock"> (Section <span class="insert">4.1.3</span>)</td><td class="lineno" valign="top"></td></tr> 1966 1967 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1967 1968 <tr><td class="lineno" valign="top"></td><td class="left"> Remove requirement to consider Content-Location in successful</td><td> </td><td class="right"> Remove requirement to consider Content-Location in successful</td><td class="lineno" valign="top"></td></tr> 1968 1969 <tr><td class="lineno" valign="top"></td><td class="left"> responses in order to determine the appropriate response to use.</td><td> </td><td class="right"> responses in order to determine the appropriate response to use.</td><td class="lineno" valign="top"></td></tr> 1969 <tr><td><a name="diff018 4" /></td></tr>1970 <tr><td><a name="diff0185" /></td></tr> 1970 1971 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">2.4</span>)</td><td> </td><td class="rblock"> (Section <span class="insert">4.2</span>)</td><td class="lineno" valign="top"></td></tr> 1971 1972 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1972 <tr><td><a name="diff018 5" /></td></tr>1973 <tr><td><a name="diff0186" /></td></tr> 1973 1974 <tr><td class="lineno" valign="top"></td><td class="lblock"> Clarify denial of service attack avoidance requirement.</td><td> </td><td class="rblock"> Clarify denial of service attack avoidance requirement. (Section <span class="insert">6)</span></td><td class="lineno" valign="top"></td></tr> 1974 1975 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">2.6)</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1975 1976 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1976 1977 <tr><td class="lineno" valign="top"></td><td class="left"> Change ABNF productions for header fields to only define the field</td><td> </td><td class="right"> Change ABNF productions for header fields to only define the field</td><td class="lineno" valign="top"></td></tr> 1977 <tr><td><a name="diff018 6" /></td></tr>1978 <tr><td><a name="diff0187" /></td></tr> 1978 1979 <tr><td class="lineno" valign="top"></td><td class="lblock"> value. (Section <span class="delete">3)</span></td><td> </td><td class="rblock"> value. (Section <span class="insert">7)</span></td><td class="lineno" valign="top"></td></tr> 1979 1980 <tr><td class="lineno" valign="top"></td><td class="lblock"> </td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1980 1981 <tr><td class="lineno" valign="top"></td><td class="left"> Do not mention RFC 2047 encoding and multiple languages in Warning</td><td> </td><td class="right"> Do not mention RFC 2047 encoding and multiple languages in Warning</td><td class="lineno" valign="top"></td></tr> 1981 1982 <tr><td class="lineno" valign="top"></td><td class="left"> header fields anymore, as these aspects never were implemented.</td><td> </td><td class="right"> header fields anymore, as these aspects never were implemented.</td><td class="lineno" valign="top"></td></tr> 1982 <tr><td><a name="diff018 7" /></td></tr>1983 <tr><td><a name="diff0188" /></td></tr> 1983 1984 <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">3</span>.6)</td><td> </td><td class="rblock"> (Section <span class="insert">7</span>.6)</td><td class="lineno" valign="top"></td></tr> 1984 1985 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1985 <tr><td><a name="diff018 8" /></td></tr>1986 <tr><td><a name="diff0189" /></td></tr> 1986 1987 <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix B. Collected ABNF</td><td> </td><td class="rblock"> <span class="insert">Introduce Cache Directive and Warn Code Registries. (Section 7.2.3</span></td><td class="lineno" valign="top"></td></tr> 1987 1988 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> and Section 7.6.8)</span></td><td class="lineno" valign="top"></td></tr> … … 2020 2021 <tr><td class="lineno" valign="top"></td><td class="left"> Expires = HTTP-date</td><td> </td><td class="right"> Expires = HTTP-date</td><td class="lineno" valign="top"></td></tr> 2021 2022 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2022 <tr><td><a name="diff01 89" /></td></tr>2023 <tr><td><a name="diff0190" /></td></tr> 2023 2024 <tr><td class="lineno" valign="top"></td><td class="lblock"> HTTP-date = <HTTP-date, defined in [Part2], Section <span class="delete">8</span>></td><td> </td><td class="rblock"> HTTP-date = <HTTP-date, defined in [Part2], Section <span class="insert">5.1</span>></td><td class="lineno" valign="top"></td></tr> 2024 2025 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 2034 2035 <tr><td class="lineno" valign="top"></td><td class="left"> )</td><td> </td><td class="right"> )</td><td class="lineno" valign="top"></td></tr> 2035 2036 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2036 <tr><td><a name="diff019 0" /></td></tr>2037 <tr><td><a name="diff0191" /></td></tr> 2037 2038 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-directive = <span class="delete">cache-request-directive / cache-response-directive</span></td><td> </td><td class="rblock"> cache-directive = token [ "=" ( token / quoted-string ) ]</td><td class="lineno" valign="top"></td></tr> 2038 2039 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> cache-extension =</span> token [ "=" ( token / quoted-string ) ]</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 2054 2055 <tr><td class="lineno" valign="top"></td><td class="left"> field-name = <field-name, defined in [Part1], Section 3.2></td><td> </td><td class="right"> field-name = <field-name, defined in [Part1], Section 3.2></td><td class="lineno" valign="top"></td></tr> 2055 2056 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2056 <tr><td><a name="diff019 1" /></td></tr>2057 <tr><td><a name="diff0192" /></td></tr> 2057 2058 <tr><td class="lineno" valign="top"></td><td class="lblock"> port = <port, defined in [Part1], Section 2.<span class="delete">7</span>></td><td> </td><td class="rblock"> port = <port, defined in [Part1], Section 2.<span class="insert">8</span>></td><td class="lineno" valign="top"></td></tr> 2058 2059 <tr><td class="lineno" valign="top"></td><td class="left"> pragma-directive = "no-cache" / extension-pragma</td><td> </td><td class="right"> pragma-directive = "no-cache" / extension-pragma</td><td class="lineno" valign="top"></td></tr> … … 2063 2064 <tr><td class="lineno" valign="top"></td><td class="left"> token = <token, defined in [Part1], Section 3.2.4></td><td> </td><td class="right"> token = <token, defined in [Part1], Section 3.2.4></td><td class="lineno" valign="top"></td></tr> 2064 2065 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2065 <tr><td><a name="diff019 2" /></td></tr>2066 <tr><td><a name="diff0193" /></td></tr> 2066 2067 <tr><td class="lineno" valign="top"></td><td class="lblock"> uri-host = <uri-host, defined in [Part1], Section 2.<span class="delete">7</span>></td><td> </td><td class="rblock"> uri-host = <uri-host, defined in [Part1], Section 2.<span class="insert">8</span>></td><td class="lineno" valign="top"></td></tr> 2067 2068 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 2073 2074 <tr><td class="lineno" valign="top"></td><td class="left"> ]</td><td> </td><td class="right"> ]</td><td class="lineno" valign="top"></td></tr> 2074 2075 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2075 <tr><td><a name="diff019 3" /></td></tr>2076 <tr><td><a name="diff0194" /></td></tr> 2076 2077 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">ABNF diagnostics:</span></td><td> </td><td class="rblock">Appendix <span class="insert">D.</span> Change Log (to be removed by RFC Editor before publication)</td><td class="lineno" valign="top"></td></tr> 2077 2078 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 2341 2342 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> HTTP's error-handling philosophy"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 2342 2343 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2343 <tr><td><a name="diff019 4" /></td></tr>2344 <tr><td><a name="diff0195" /></td></tr> 2344 2345 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">o <http://tools.ietf.org/wg/httpbis/trac/ticket/317>: "Cache-Control</span></td><td> </td><td class="rblock"> <span class="insert">Changes up to the first Working Group Last Call draft are summarized</span></td><td class="lineno" valign="top"></td></tr> 2345 2346 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> directive case sensitivity"</span></td><td> </td><td class="rblock"><span class="insert"> in <http://trac.tools.ietf.org/html/</span></td><td class="lineno" valign="top"></td></tr> 2346 2347 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> draft-ietf-httpbis-p6-cache-19#appendix-C>.</span></td><td class="lineno" valign="top"></td></tr> 2347 2348 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2348 <tr><td><a name="diff019 5" /></td></tr>2349 <tr><td><a name="diff0196" /></td></tr> 2349 2350 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">C.19. Since draft-ietf-httpbis-p6-cache-17</span></td><td> </td><td class="rblock"><span class="insert">D.1. Since draft-ietf-httpbis-p6-cache-19</span></td><td class="lineno" valign="top"></td></tr> 2350 2351 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2351 2352 <tr><td class="lineno" valign="top"></td><td class="left"> Closed issues:</td><td> </td><td class="right"> Closed issues:</td><td class="lineno" valign="top"></td></tr> 2352 2353 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2353 <tr><td><a name="diff019 6" /></td></tr>2354 <tr><td><a name="diff0197" /></td></tr> 2354 2355 <tr><td class="lineno" valign="top"></td><td class="lblock"> o <span class="delete"><http://tools.ietf.org/wg/httpbis/trac/ticket/293>: "Interaction</span></td><td> </td><td class="rblock"> o <span class="insert"><http://tools.ietf.org/wg/httpbis/trac/ticket/307>: "untangle</span></td><td class="lineno" valign="top"></td></tr> 2355 2356 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> of request and response Cache-Control"</span></td><td> </td><td class="rblock"><span class="insert"> Cache-Control ABNF"</span></td><td class="lineno" valign="top"></td></tr> 2356 2357 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2357 <tr><td><a name="diff019 7" /></td></tr>2358 <tr><td><a name="diff0198" /></td></tr> 2358 2359 <tr><td class="lineno" valign="top"></td><td class="lblock"> o <span class="delete"><http://tools.ietf.org/wg/httpbis/trac/ticket/212>: "Refining age</span></td><td> </td><td class="rblock"> o <span class="insert"><http://tools.ietf.org/wg/httpbis/trac/ticket/353>: "Multiple</span></td><td class="lineno" valign="top"></td></tr> 2359 2360 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> for 1.1 proxy chains"</span></td><td> </td><td class="rblock"><span class="insert"> values in Cache-Control header fields"</span></td><td class="lineno" valign="top"></td></tr> 2360 2361 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2361 <tr><td><a name="diff019 8" /></td></tr>2362 <tr><td><a name="diff0199" /></td></tr> 2362 2363 <tr><td class="lineno" valign="top"></td><td class="lblock"> o <span class="delete"><http://tools.ietf.org/wg/httpbis/trac/ticket/274>: "warn-code</span></td><td> </td><td class="rblock"> o <span class="insert"><http://tools.ietf.org/wg/httpbis/trac/ticket/355>: "Case</span></td><td class="lineno" valign="top"></td></tr> 2363 2364 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> registry"</span></td><td> </td><td class="rblock"><span class="insert"> sensitivity of header fields in CC values"</span></td><td class="lineno" valign="top"></td></tr> 2364 2365 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2365 <tr><td><a name="diff0 199" /></td></tr>2366 <tr><td><a name="diff0200" /></td></tr> 2366 2367 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">C.20. Since draft-ietf-httpbis-p6-cache-18</span></td><td> </td><td class="rblock"> <span class="insert">o <http://tools.ietf.org/wg/httpbis/trac/ticket/356>: "Spurious</span></td><td class="lineno" valign="top"></td></tr> 2367 2368 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> 'MAYs'"</span></td><td class="lineno" valign="top"></td></tr> 2368 2369 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2369 <tr><td><a name="diff020 0" /></td></tr>2370 <tr><td><a name="diff0201" /></td></tr> 2370 2371 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Closed issues:</span></td><td> </td><td class="rblock"> <span class="insert">o <http://tools.ietf.org/wg/httpbis/trac/ticket/360>: "enhance</span></td><td class="lineno" valign="top"></td></tr> 2371 2372 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> considerations for new cache control directives"</span></td><td class="lineno" valign="top"></td></tr> 2372 2373 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2373 <tr><td><a name="diff020 1" /></td></tr>2374 <tr><td><a name="diff0202" /></td></tr> 2374 2375 <tr><td class="lineno" valign="top"></td><td class="lblock"> o <span class="delete"><http://tools.ietf.org/wg/httpbis/trac/ticket/227>: "Combining</span></td><td> </td><td class="rblock"> o <span class="insert"><http://tools.ietf.org/wg/httpbis/trac/ticket/361>: "ABNF</span></td><td class="lineno" valign="top"></td></tr> 2375 2376 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> HEAD responses"</span></td><td> </td><td class="rblock"><span class="insert"> requirements for recipients"</span></td><td class="lineno" valign="top"></td></tr> 2376 2377 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2377 <tr><td><a name="diff020 2" /></td></tr>2378 <tr><td><a name="diff0203" /></td></tr> 2378 2379 <tr><td class="lineno" valign="top"></td><td class="lblock"> o <span class="delete"><http://tools.ietf.org/wg/httpbis/trac/ticket/337>: "Field names</span></td><td> </td><td class="rblock"> o <span class="insert"><http://tools.ietf.org/wg/httpbis/trac/ticket/368>: "note</span></td><td class="lineno" valign="top"></td></tr> 2379 2380 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> in cache-control header arguments"</span></td><td> </td><td class="rblock"><span class="insert"> introduction of new IANA registries as normative changes"</span></td><td class="lineno" valign="top"></td></tr> … … 2383 2384 <tr><td class="lineno" valign="top"></td><td class="left"> 1</td><td> </td><td class="right"> 1</td><td class="lineno" valign="top"></td></tr> 2384 2385 <tr><td class="lineno" valign="top"></td><td class="left"> 110 Response is Stale (warn code) 31</td><td> </td><td class="right"> 110 Response is Stale (warn code) 31</td><td class="lineno" valign="top"></td></tr> 2385 <tr><td><a name="diff020 3" /></td></tr>2386 <tr><td><a name="diff0204" /></td></tr> 2386 2387 <tr><td class="lineno" valign="top"></td><td class="lblock"> 111 Revalidation Failed (warn code) <span class="delete">31</span></td><td> </td><td class="rblock"> 111 Revalidation Failed (warn code) <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr> 2387 2388 <tr><td class="lineno" valign="top"></td><td class="lblock"> 112 Disconnected Operation (warn code) <span class="delete">31</span></td><td> </td><td class="rblock"> 112 Disconnected Operation (warn code) <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr> … … 2394 2395 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2395 2396 <tr><td class="lineno" valign="top"></td><td class="left"> A</td><td> </td><td class="right"> A</td><td class="lineno" valign="top"></td></tr> 2396 <tr><td><a name="diff020 4" /></td></tr>2397 <tr><td><a name="diff0205" /></td></tr> 2397 2398 <tr><td class="lineno" valign="top"></td><td class="lblock"> age <span class="delete">6</span></td><td> </td><td class="rblock"> age <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> 2398 2399 <tr><td class="lineno" valign="top"></td><td class="lblock"> Age header field <span class="delete">21</span></td><td> </td><td class="rblock"> Age header field <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> 2399 2400 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2400 2401 <tr><td class="lineno" valign="top"></td><td class="left"> C</td><td> </td><td class="right"> C</td><td class="lineno" valign="top"></td></tr> 2401 <tr><td><a name="diff020 5" /></td></tr>2402 <tr><td><a name="diff0206" /></td></tr> 2402 2403 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache <span class="delete">5</span></td><td> </td><td class="rblock"> cache <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> 2403 2404 <tr><td class="lineno" valign="top"></td><td class="left"> Cache Directives</td><td> </td><td class="right"> Cache Directives</td><td class="lineno" valign="top"></td></tr> 2404 <tr><td><a name="diff020 6" /></td></tr>2405 <tr><td><a name="diff0207" /></td></tr> 2405 2406 <tr><td class="lineno" valign="top"></td><td class="lblock"> max-age <span class="delete">23, 26</span></td><td> </td><td class="rblock"> max-age <span class="insert">22, 25</span></td><td class="lineno" valign="top"></td></tr> 2406 2407 <tr><td class="lineno" valign="top"></td><td class="lblock"> max-stale <span class="delete">23</span></td><td> </td><td class="rblock"> max-stale <span class="insert">22</span></td><td class="lineno" valign="top"></td></tr> 2407 2408 <tr><td class="lineno" valign="top"></td><td class="lblock"> min-fresh <span class="delete">23</span></td><td> </td><td class="rblock"> min-fresh <span class="insert">22</span></td><td class="lineno" valign="top"></td></tr> 2408 2409 <tr><td class="lineno" valign="top"></td><td class="left"> must-revalidate 25</td><td> </td><td class="right"> must-revalidate 25</td><td class="lineno" valign="top"></td></tr> 2409 <tr><td><a name="diff020 7" /></td></tr>2410 <tr><td><a name="diff0208" /></td></tr> 2410 2411 <tr><td class="lineno" valign="top"></td><td class="lblock"> no-cache <span class="delete">22,</span> 24</td><td> </td><td class="rblock"> no-cache <span class="insert">21,</span> 24</td><td class="lineno" valign="top"></td></tr> 2411 2412 <tr><td class="lineno" valign="top"></td><td class="lblock"> no-store <span class="delete">22,</span> 25</td><td> </td><td class="rblock"> no-store <span class="insert">21,</span> 25</td><td class="lineno" valign="top"></td></tr> 2412 2413 <tr><td class="lineno" valign="top"></td><td class="left"> no-transform 23, 26</td><td> </td><td class="right"> no-transform 23, 26</td><td class="lineno" valign="top"></td></tr> 2413 2414 <tr><td class="lineno" valign="top"></td><td class="left"> only-if-cached 23</td><td> </td><td class="right"> only-if-cached 23</td><td class="lineno" valign="top"></td></tr> 2414 <tr><td><a name="diff020 8" /></td></tr>2415 <tr><td><a name="diff0209" /></td></tr> 2415 2416 <tr><td class="lineno" valign="top"></td><td class="lblock"> private <span class="delete">24</span></td><td> </td><td class="rblock"> private <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr> 2416 2417 <tr><td class="lineno" valign="top"></td><td class="lblock"> proxy-revalidate <span class="delete">26</span></td><td> </td><td class="rblock"> proxy-revalidate <span class="insert">25</span></td><td class="lineno" valign="top"></td></tr> 2417 2418 <tr><td class="lineno" valign="top"></td><td class="lblock"> public <span class="delete">24</span></td><td> </td><td class="rblock"> public <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr> 2418 2419 <tr><td class="lineno" valign="top"></td><td class="left"> s-maxage 26</td><td> </td><td class="right"> s-maxage 26</td><td class="lineno" valign="top"></td></tr> 2419 <tr><td><a name="diff02 09" /></td></tr>2420 <tr><td><a name="diff0210" /></td></tr> 2420 2421 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache entry <span class="delete">8</span></td><td> </td><td class="rblock"> cache entry <span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> 2421 2422 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache key <span class="delete">8</span></td><td> </td><td class="rblock"> cache key <span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> … … 2424 2425 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2425 2426 <tr><td class="lineno" valign="top"></td><td class="left"> E</td><td> </td><td class="right"> E</td><td class="lineno" valign="top"></td></tr> 2426 <tr><td><a name="diff021 0" /></td></tr>2427 <tr><td><a name="diff0211" /></td></tr> 2427 2428 <tr><td class="lineno" valign="top"></td><td class="lblock"> Expires header field <span class="delete">27</span></td><td> </td><td class="rblock"> Expires header field <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr> 2428 2429 <tr><td class="lineno" valign="top"></td><td class="lblock"> explicit expiration time <span class="delete">6</span></td><td> </td><td class="rblock"> explicit expiration time <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> 2429 2430 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2430 2431 <tr><td class="lineno" valign="top"></td><td class="left"> F</td><td> </td><td class="right"> F</td><td class="lineno" valign="top"></td></tr> 2431 <tr><td><a name="diff021 1" /></td></tr>2432 <tr><td><a name="diff0212" /></td></tr> 2432 2433 <tr><td class="lineno" valign="top"></td><td class="lblock"> first-hand <span class="delete">6</span></td><td> </td><td class="rblock"> first-hand <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> 2433 2434 <tr><td class="lineno" valign="top"></td><td class="lblock"> fresh <span class="delete">6</span></td><td> </td><td class="rblock"> fresh <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> … … 2436 2437 <tr><td class="lineno" valign="top"></td><td class="left"> G</td><td> </td><td class="right"> G</td><td class="lineno" valign="top"></td></tr> 2437 2438 <tr><td class="lineno" valign="top"></td><td class="left"> Grammar</td><td> </td><td class="right"> Grammar</td><td class="lineno" valign="top"></td></tr> 2438 <tr><td><a name="diff021 2" /></td></tr>2439 <tr><td><a name="diff0213" /></td></tr> 2439 2440 <tr><td class="lineno" valign="top"></td><td class="lblock"> Age <span class="delete">21</span></td><td> </td><td class="rblock"> Age <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> 2440 2441 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache-Control <span class="delete">22</span></td><td> </td><td class="rblock"> Cache-Control <span class="insert">21</span></td><td class="lineno" valign="top"></td></tr> … … 2444 2445 <tr><td class="lineno" valign="top"></td><td class="lblock"> delta-seconds <span class="delete">8</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 2445 2446 <tr><td class="lineno" valign="top"></td><td class="left"> Expires 28</td><td> </td><td class="right"> Expires 28</td><td class="lineno" valign="top"></td></tr> 2446 <tr><td><a name="diff021 3" /></td></tr>2447 <tr><td><a name="diff0214" /></td></tr> 2447 2448 <tr><td class="lineno" valign="top"></td><td class="lblock"> extension-pragma <span class="delete">28</span></td><td> </td><td class="rblock"> extension-pragma <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr> 2448 2449 <tr><td class="lineno" valign="top"></td><td class="lblock"> Pragma <span class="delete">28</span></td><td> </td><td class="rblock"> Pragma <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr> … … 2458 2459 <tr><td class="lineno" valign="top"></td><td class="left"> H</td><td> </td><td class="right"> H</td><td class="lineno" valign="top"></td></tr> 2459 2460 <tr><td class="lineno" valign="top"></td><td class="left"> Header Fields</td><td> </td><td class="right"> Header Fields</td><td class="lineno" valign="top"></td></tr> 2460 <tr><td><a name="diff021 4" /></td></tr>2461 <tr><td><a name="diff0215" /></td></tr> 2461 2462 <tr><td class="lineno" valign="top"></td><td class="lblock"> Age <span class="delete">21</span></td><td> </td><td class="rblock"> Age <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> 2462 2463 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache-Control <span class="delete">21</span></td><td> </td><td class="rblock"> Cache-Control <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> … … 2465 2466 <tr><td class="lineno" valign="top"></td><td class="left"> Vary 29</td><td> </td><td class="right"> Vary 29</td><td class="lineno" valign="top"></td></tr> 2466 2467 <tr><td class="lineno" valign="top"></td><td class="left"> Warning 30</td><td> </td><td class="right"> Warning 30</td><td class="lineno" valign="top"></td></tr> 2467 <tr><td><a name="diff021 5" /></td></tr>2468 <tr><td><a name="diff0216" /></td></tr> 2468 2469 <tr><td class="lineno" valign="top"></td><td class="lblock"> heuristic expiration time <span class="delete">6</span></td><td> </td><td class="rblock"> heuristic expiration time <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> 2469 2470 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2470 2471 <tr><td class="lineno" valign="top"></td><td class="left"> M</td><td> </td><td class="right"> M</td><td class="lineno" valign="top"></td></tr> 2471 2472 <tr><td class="lineno" valign="top"></td><td class="left"> max-age</td><td> </td><td class="right"> max-age</td><td class="lineno" valign="top"></td></tr> 2472 <tr><td><a name="diff021 6" /></td></tr>2473 <tr><td><a name="diff0217" /></td></tr> 2473 2474 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache Directive 2<span class="delete">3, 26</span></td><td> </td><td class="rblock"> Cache Directive 2<span class="insert">2, 25</span></td><td class="lineno" valign="top"></td></tr> 2474 2475 <tr><td class="lineno" valign="top"></td><td class="left"> max-stale</td><td> </td><td class="right"> max-stale</td><td class="lineno" valign="top"></td></tr> 2475 <tr><td><a name="diff021 7" /></td></tr>2476 <tr><td><a name="diff0218" /></td></tr> 2476 2477 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache Directive 2<span class="delete">3</span></td><td> </td><td class="rblock"> Cache Directive 2<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> 2477 2478 <tr><td class="lineno" valign="top"></td><td class="left"> min-fresh</td><td> </td><td class="right"> min-fresh</td><td class="lineno" valign="top"></td></tr> 2478 <tr><td><a name="diff021 8" /></td></tr>2479 <tr><td><a name="diff0219" /></td></tr> 2479 2480 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache Directive 2<span class="delete">3</span></td><td> </td><td class="rblock"> Cache Directive 2<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> 2480 2481 <tr><td class="lineno" valign="top"></td><td class="left"> must-revalidate</td><td> </td><td class="right"> must-revalidate</td><td class="lineno" valign="top"></td></tr> … … 2483 2484 <tr><td class="lineno" valign="top"></td><td class="left"> N</td><td> </td><td class="right"> N</td><td class="lineno" valign="top"></td></tr> 2484 2485 <tr><td class="lineno" valign="top"></td><td class="left"> no-cache</td><td> </td><td class="right"> no-cache</td><td class="lineno" valign="top"></td></tr> 2485 <tr><td><a name="diff02 19" /></td></tr>2486 <tr><td><a name="diff0220" /></td></tr> 2486 2487 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache Directive 2<span class="delete">2</span>, 24</td><td> </td><td class="rblock"> Cache Directive 2<span class="insert">1</span>, 24</td><td class="lineno" valign="top"></td></tr> 2487 2488 <tr><td class="lineno" valign="top"></td><td class="left"> no-store</td><td> </td><td class="right"> no-store</td><td class="lineno" valign="top"></td></tr> 2488 <tr><td><a name="diff022 0" /></td></tr>2489 <tr><td><a name="diff0221" /></td></tr> 2489 2490 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache Directive 2<span class="delete">2</span>, 25</td><td> </td><td class="rblock"> Cache Directive 2<span class="insert">1</span>, 25</td><td class="lineno" valign="top"></td></tr> 2490 2491 <tr><td class="lineno" valign="top"></td><td class="left"> no-transform</td><td> </td><td class="right"> no-transform</td><td class="lineno" valign="top"></td></tr> … … 2498 2499 <tr><td class="lineno" valign="top"></td><td class="left"> Pragma header field 28</td><td> </td><td class="right"> Pragma header field 28</td><td class="lineno" valign="top"></td></tr> 2499 2500 <tr><td class="lineno" valign="top"></td><td class="left"> private</td><td> </td><td class="right"> private</td><td class="lineno" valign="top"></td></tr> 2500 <tr><td><a name="diff022 1" /></td></tr>2501 <tr><td><a name="diff0222" /></td></tr> 2501 2502 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache Directive <span class="delete">24</span></td><td> </td><td class="rblock"> Cache Directive <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr> 2502 2503 <tr><td class="lineno" valign="top"></td><td class="lblock"> private cache <span class="delete">5</span></td><td> </td><td class="rblock"> private cache <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> 2503 2504 <tr><td class="lineno" valign="top"></td><td class="left"> proxy-revalidate</td><td> </td><td class="right"> proxy-revalidate</td><td class="lineno" valign="top"></td></tr> 2504 <tr><td><a name="diff022 2" /></td></tr>2505 <tr><td><a name="diff0223" /></td></tr> 2505 2506 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache Directive 2<span class="delete">6</span></td><td> </td><td class="rblock"> Cache Directive 2<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> 2506 2507 <tr><td class="lineno" valign="top"></td><td class="left"> public</td><td> </td><td class="right"> public</td><td class="lineno" valign="top"></td></tr> 2507 <tr><td><a name="diff022 3" /></td></tr>2508 <tr><td><a name="diff0224" /></td></tr> 2508 2509 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache Directive 2<span class="delete">4</span></td><td> </td><td class="rblock"> Cache Directive 2<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr> 2509 2510 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 2511 2512 <tr><td class="lineno" valign="top"></td><td class="left"> s-maxage</td><td> </td><td class="right"> s-maxage</td><td class="lineno" valign="top"></td></tr> 2512 2513 <tr><td class="lineno" valign="top"></td><td class="left"> Cache Directive 26</td><td> </td><td class="right"> Cache Directive 26</td><td class="lineno" valign="top"></td></tr> 2513 <tr><td><a name="diff022 4" /></td></tr>2514 <tr><td><a name="diff0225" /></td></tr> 2514 2515 <tr><td class="lineno" valign="top"></td><td class="lblock"> shared cache <span class="delete">5</span></td><td> </td><td class="rblock"> shared cache <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> 2515 2516 <tr><td class="lineno" valign="top"></td><td class="lblock"> stale <span class="delete">6</span></td><td> </td><td class="rblock"> stale <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> … … 2517 2518 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2518 2519 <tr><td class="lineno" valign="top"></td><td class="left"> V</td><td> </td><td class="right"> V</td><td class="lineno" valign="top"></td></tr> 2519 <tr><td><a name="diff022 5" /></td></tr>2520 <tr><td><a name="diff0226" /></td></tr> 2520 2521 <tr><td class="lineno" valign="top"></td><td class="lblock"> validator <span class="delete">6</span></td><td> </td><td class="rblock"> validator <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> 2521 2522 <tr><td class="lineno" valign="top"></td><td class="lblock"> strong <span class="delete">7</span></td><td> </td><td class="rblock"> strong <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> … … 2525 2526 <tr><td class="lineno" valign="top"></td><td class="left"> Warn Codes</td><td> </td><td class="right"> Warn Codes</td><td class="lineno" valign="top"></td></tr> 2526 2527 <tr><td class="lineno" valign="top"></td><td class="left"> 110 Response is Stale 31</td><td> </td><td class="right"> 110 Response is Stale 31</td><td class="lineno" valign="top"></td></tr> 2527 <tr><td><a name="diff022 6" /></td></tr>2528 <tr><td><a name="diff0227" /></td></tr> 2528 2529 <tr><td class="lineno" valign="top"></td><td class="lblock"> 111 Revalidation Failed <span class="delete">31</span></td><td> </td><td class="rblock"> 111 Revalidation Failed <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr> 2529 2530 <tr><td class="lineno" valign="top"></td><td class="lblock"> 112 Disconnected Operation <span class="delete">31</span></td><td> </td><td class="rblock"> 112 Disconnected Operation <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr> … … 2550 2551 <tr><td class="lineno" valign="top"></td><td class="left"> EMail: mnot@mnot.net</td><td> </td><td class="right"> EMail: mnot@mnot.net</td><td class="lineno" valign="top"></td></tr> 2551 2552 <tr><td class="lineno" valign="top"></td><td class="left"> URI: http://www.mnot.net/</td><td> </td><td class="right"> URI: http://www.mnot.net/</td><td class="lineno" valign="top"></td></tr> 2552 <tr><td><a name="diff022 7" /></td></tr>2553 <tr><td><a name="diff0228" /></td></tr> 2553 2554 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> </span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 2554 2555 <tr><td class="lineno" valign="top"></td><td class="left"> Julian F. Reschke (editor)</td><td> </td><td class="right"> Julian F. Reschke (editor)</td><td class="lineno" valign="top"></td></tr> … … 2558 2559 <tr><td class="lineno" valign="top"></td><td class="left"> Germany</td><td> </td><td class="right"> Germany</td><td class="lineno" valign="top"></td></tr> 2559 2560 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 2560 <tr><td><a name="diff022 8" /></td></tr>2561 <tr><td><a name="diff0229" /></td></tr> 2561 2562 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Phone: +49 251 2807760</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 2562 2563 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Fax: +49 251 2807761</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 2565 2566 2566 2567 <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr> 2567 <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 22 8change blocks. </a></th></tr>2568 <tr class="stats"><td></td><th><i>9 14 lines changed or deleted</i></th><th><i> </i></th><th><i>691lines changed or added</i></th><td></td></tr>2568 <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 229 change blocks. </a></th></tr> 2569 <tr class="stats"><td></td><th><i>922 lines changed or deleted</i></th><th><i> </i></th><th><i>693 lines changed or added</i></th><td></td></tr> 2569 2570 <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.38. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr> 2570 2571 </table> -
draft-ietf-httpbis/diffs/draft-ietf-httpbis-p7-auth-20-from-19.diff.html
r1807 r1809 55 55 <tr><td class="lineno" valign="top"></td><td class="left"> The Hypertext Transfer Protocol (HTTP) is an application-level</td><td> </td><td class="right"> The Hypertext Transfer Protocol (HTTP) is an application-level</td><td class="lineno" valign="top"></td></tr> 56 56 <tr><td class="lineno" valign="top"></td><td class="left"> protocol for distributed, collaborative, hypermedia information</td><td> </td><td class="right"> protocol for distributed, collaborative, hypermedia information</td><td class="lineno" valign="top"></td></tr> 57 <tr><td class="lineno" valign="top"></td><td class="left"> systems. HTTP has been in use by the World Wide Web global</td><td> </td><td class="right"> systems. HTTP has been in use by the World Wide Web global</td><td class="lineno" valign="top"></td></tr> 58 <tr><td class="lineno" valign="top"></td><td class="left"> information initiative since 1990. This document is Part 7 of the</td><td> </td><td class="right"> information initiative since 1990. This document is Part 7 of the</td><td class="lineno" valign="top"></td></tr> 59 <tr><td class="lineno" valign="top"></td><td class="left"> seven-part specification that defines the protocol referred to as</td><td> </td><td class="right"> seven-part specification that defines the protocol referred to as</td><td class="lineno" valign="top"></td></tr> 60 <tr><td class="lineno" valign="top"></td><td class="left"> "HTTP/1.1" and, taken together, obsoletes RFC 2616.</td><td> </td><td class="right"> "HTTP/1.1" and, taken together, obsoletes RFC 2616.</td><td class="lineno" valign="top"></td></tr> 61 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 62 <tr><td class="lineno" valign="top"></td><td class="left"> Part 7 defines the HTTP Authentication framework.</td><td> </td><td class="right"> Part 7 defines the HTTP Authentication framework.</td><td class="lineno" valign="top"></td></tr> 57 <tr><td><a name="diff0003" /></td></tr> 58 <tr><td class="lineno" valign="top"></td><td class="lblock"> systems. <span class="delete">HTTP has been in use by the World Wide Web global</span></td><td> </td><td class="rblock"> systems. This document defines the HTTP Authentication framework.</td><td class="lineno" valign="top"></td></tr> 59 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> information initiative since 1990.</span> This document <span class="delete">is Part 7 of the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 60 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> seven-part specification that defines the protocol referred to as</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 61 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> "HTTP/1.1" and, taken together, obsoletes RFC 2616.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 62 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 63 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Part 7</span> defines the HTTP Authentication framework.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 63 64 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 64 65 <tr><td class="lineno" valign="top"></td><td class="left">Editorial Note (To be removed by RFC Editor)</td><td> </td><td class="right">Editorial Note (To be removed by RFC Editor)</td><td class="lineno" valign="top"></td></tr> 65 66 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 66 <tr><td><a name="diff000 3" /></td></tr>67 <tr><td><a name="diff0004" /></td></tr> 67 68 <tr><td class="lineno" valign="top"></td><td class="lblock"> Discussion of this draft <span class="delete">should take</span> place on the HTTPBIS working</td><td> </td><td class="rblock"> Discussion of this draft <span class="insert">takes</span> place on the HTTPBIS working group</td><td class="lineno" valign="top"></td></tr> 68 69 <tr><td class="lineno" valign="top"></td><td class="lblock"> group mailing list (ietf-http-wg@w3.org), which is archived at</td><td> </td><td class="rblock"> mailing list (ietf-http-wg@w3.org), which is archived at</td><td class="lineno" valign="top"></td></tr> … … 74 75 <tr><td class="lineno" valign="top"></td><td class="left"> <http://tools.ietf.org/wg/httpbis/>.</td><td> </td><td class="right"> <http://tools.ietf.org/wg/httpbis/>.</td><td class="lineno" valign="top"></td></tr> 75 76 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 76 <tr><td><a name="diff000 4" /></td></tr>77 <tr><td><a name="diff0005" /></td></tr> 77 78 <tr><td class="lineno" valign="top"></td><td class="lblock"> The changes in this draft are summarized in Appendix <span class="delete">C.20</span>.</td><td> </td><td class="rblock"> The changes in this draft are summarized in Appendix <span class="insert">D.1</span>.</td><td class="lineno" valign="top"></td></tr> 78 79 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 92 93 <tr><td class="lineno" valign="top"></td><td class="left"> material or to cite them other than as "work in progress."</td><td> </td><td class="right"> material or to cite them other than as "work in progress."</td><td class="lineno" valign="top"></td></tr> 93 94 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 94 <tr><td><a name="diff000 5" /></td></tr>95 <tr><td><a name="diff0006" /></td></tr> 95 96 <tr><td class="lineno" valign="top"></td><td class="lblock"> This Internet-Draft will expire on <span class="delete">September 13, 2012</span>.</td><td> </td><td class="rblock"> This Internet-Draft will expire on <span class="insert">January 17, 2013</span>.</td><td class="lineno" valign="top"></td></tr> 96 97 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 116 117 <tr><td class="lineno" valign="top"></td><td class="left"> 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4</td><td> </td><td class="right"> 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4</td><td class="lineno" valign="top"></td></tr> 117 118 <tr><td class="lineno" valign="top"></td><td class="left"> 1.1. Conformance and Error Handling . . . . . . . . . . . . . . 4</td><td> </td><td class="right"> 1.1. Conformance and Error Handling . . . . . . . . . . . . . . 4</td><td class="lineno" valign="top"></td></tr> 118 <tr><td><a name="diff000 6" /></td></tr>119 <tr><td><a name="diff0007" /></td></tr> 119 120 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . <span class="delete">4</span></td><td> </td><td class="rblock"> 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 5</td><td class="lineno" valign="top"></td></tr> 120 121 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 1.2.1. Core Rules . . . . . . . . . . . . . . . . . . . . . .</span> 5</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 122 123 <tr><td class="lineno" valign="top"></td><td class="left"> 2.1. Challenge and Response . . . . . . . . . . . . . . . . . . 5</td><td> </td><td class="right"> 2.1. Challenge and Response . . . . . . . . . . . . . . . . . . 5</td><td class="lineno" valign="top"></td></tr> 123 124 <tr><td class="lineno" valign="top"></td><td class="left"> 2.2. Protection Space (Realm) . . . . . . . . . . . . . . . . . 7</td><td> </td><td class="right"> 2.2. Protection Space (Realm) . . . . . . . . . . . . . . . . . 7</td><td class="lineno" valign="top"></td></tr> 124 <tr><td><a name="diff000 7" /></td></tr>125 <tr><td><a name="diff0008" /></td></tr> 125 126 <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.3. Authentication Scheme Registry . . . . . . . . . . . . . . <span class="delete">7</span></td><td> </td><td class="rblock"> 2.3. Authentication Scheme Registry . . . . . . . . . . . . . . <span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 126 127 <tr><td class="lineno" valign="top"></td><td class="left"> 2.3.1. Considerations for New Authentication Schemes . . . . 8</td><td> </td><td class="right"> 2.3.1. Considerations for New Authentication Schemes . . . . 8</td><td class="lineno" valign="top"></td></tr> 127 128 <tr><td class="lineno" valign="top"></td><td class="left"> 3. Status Code Definitions . . . . . . . . . . . . . . . . . . . 9</td><td> </td><td class="right"> 3. Status Code Definitions . . . . . . . . . . . . . . . . . . . 9</td><td class="lineno" valign="top"></td></tr> 128 129 <tr><td class="lineno" valign="top"></td><td class="left"> 3.1. 401 Unauthorized . . . . . . . . . . . . . . . . . . . . . 9</td><td> </td><td class="right"> 3.1. 401 Unauthorized . . . . . . . . . . . . . . . . . . . . . 9</td><td class="lineno" valign="top"></td></tr> 129 <tr><td><a name="diff000 8" /></td></tr>130 <tr><td><a name="diff0009" /></td></tr> 130 131 <tr><td class="lineno" valign="top"></td><td class="lblock"> 3.2. 407 Proxy Authentication Required . . . . . . . . . . . . <span class="delete"> 9</span></td><td> </td><td class="rblock"> 3.2. 407 Proxy Authentication Required . . . . . . . . . . . . <span class="insert">10</span></td><td class="lineno" valign="top"></td></tr> 131 132 <tr><td class="lineno" valign="top"></td><td class="left"> 4. Header Field Definitions . . . . . . . . . . . . . . . . . . . 10</td><td> </td><td class="right"> 4. Header Field Definitions . . . . . . . . . . . . . . . . . . . 10</td><td class="lineno" valign="top"></td></tr> … … 133 134 <tr><td class="lineno" valign="top"></td><td class="left"> 4.2. Proxy-Authenticate . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right"> 4.2. Proxy-Authenticate . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr> 134 135 <tr><td class="lineno" valign="top"></td><td class="left"> 4.3. Proxy-Authorization . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right"> 4.3. Proxy-Authorization . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr> 135 <tr><td><a name="diff00 09" /></td></tr>136 <tr><td><a name="diff0010" /></td></tr> 136 137 <tr><td class="lineno" valign="top"></td><td class="lblock"> 4.4. WWW-Authenticate . . . . . . . . . . . . . . . . . . . . . 1<span class="delete">1</span></td><td> </td><td class="rblock"> 4.4. WWW-Authenticate . . . . . . . . . . . . . . . . . . . . . 1<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> 137 138 <tr><td class="lineno" valign="top"></td><td class="left"> 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12</td><td> </td><td class="right"> 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr> 138 <tr><td><a name="diff001 0" /></td></tr>139 <tr><td><a name="diff0011" /></td></tr> 139 140 <tr><td class="lineno" valign="top"></td><td class="lblock"> 5.1. <span class="delete">Authenticaton</span> Scheme Registry . . . . . . . . . . . . . . 12</td><td> </td><td class="rblock"> 5.1. <span class="insert">Authentication</span> Scheme Registry . . . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr> 140 141 <tr><td class="lineno" valign="top"></td><td class="lblock"> 5.2. Status Code Registration . . . . . . . . . . . . . . . . . <span class="delete">12</span></td><td> </td><td class="rblock"> 5.2. Status Code Registration . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno" valign="top"></td></tr> … … 142 143 <tr><td class="lineno" valign="top"></td><td class="left"> 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13</td><td> </td><td class="right"> 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13</td><td class="lineno" valign="top"></td></tr> 143 144 <tr><td class="lineno" valign="top"></td><td class="left"> 6.1. Authentication Credentials and Idle Clients . . . . . . . 13</td><td> </td><td class="right"> 6.1. Authentication Credentials and Idle Clients . . . . . . . 13</td><td class="lineno" valign="top"></td></tr> 144 <tr><td><a name="diff001 1" /></td></tr>145 <tr><td><a name="diff0012" /></td></tr> 145 146 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> 6.2. Protection Spaces . . . . . . . . . . . . . . . . . . . . 14</span></td><td class="lineno" valign="top"></td></tr> 146 147 <tr><td class="lineno" valign="top"></td><td class="left"> 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14</td><td> </td><td class="right"> 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14</td><td class="lineno" valign="top"></td></tr> 147 <tr><td><a name="diff001 2" /></td></tr>148 <tr><td><a name="diff0013" /></td></tr> 148 149 <tr><td class="lineno" valign="top"></td><td class="lblock"> 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock"> 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr> 149 150 <tr><td class="lineno" valign="top"></td><td class="lblock"> 8.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock"> 8.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr> … … 178 179 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 179 180 <tr><td class="lineno" valign="top"></td><td class="left"> This document defines HTTP/1.1 access control and authentication. It</td><td> </td><td class="right"> This document defines HTTP/1.1 access control and authentication. It</td><td class="lineno" valign="top"></td></tr> 180 <tr><td><a name="diff001 3" /></td></tr>181 <tr><td><a name="diff0014" /></td></tr> 181 182 <tr><td class="lineno" valign="top"></td><td class="lblock"> includes the relevant parts of RFC 2616 with only minor <span class="delete">changes,</span> plus</td><td> </td><td class="rblock"> includes the relevant parts of RFC 2616 with only minor <span class="insert">changes</span></td><td class="lineno" valign="top"></td></tr> 182 183 <tr><td class="lineno" valign="top"></td><td class="lblock"> the general framework for HTTP authentication, as previously defined</td><td> </td><td class="rblock"><span class="insert"> ([RFC2616]),</span> plus the general framework for HTTP authentication, as</td><td class="lineno" valign="top"></td></tr> … … 196 197 <tr><td class="lineno" valign="top"></td><td class="left"> document are to be interpreted as described in [RFC2119].</td><td> </td><td class="right"> document are to be interpreted as described in [RFC2119].</td><td class="lineno" valign="top"></td></tr> 197 198 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 198 <tr><td><a name="diff001 4" /></td></tr>199 <tr><td><a name="diff0015" /></td></tr> 199 200 <tr><td class="lineno" valign="top"></td><td class="lblock"> This <span class="delete">document defines</span> conformance criteria <span class="delete">for several roles</span> in HTTP</td><td> </td><td class="rblock"> This <span class="insert">specification targets</span> conformance criteria <span class="insert">according to the role</span></td><td class="lineno" valign="top"></td></tr> 200 201 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">communication, including Senders, Recipients, Clients, Servers, User-</span></td><td> </td><td class="rblock"><span class="insert"> of a participant</span> in HTTP <span class="insert">communication. Hence, HTTP requirements are</span></td><td class="lineno" valign="top"></td></tr> … … 209 210 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 210 211 <tr><td class="lineno" valign="top"></td><td class="left"> An implementation is considered conformant if it complies with all of</td><td> </td><td class="right"> An implementation is considered conformant if it complies with all of</td><td class="lineno" valign="top"></td></tr> 211 <tr><td><a name="diff001 5" /></td></tr>212 <tr><td><a name="diff0016" /></td></tr> 212 213 <tr><td class="lineno" valign="top"></td><td class="lblock"> the requirements associated with <span class="delete">its role(s).</span> Note that SHOULD-level</td><td> </td><td class="rblock"> the requirements associated with <span class="insert">the roles it partakes in HTTP.</span> Note</td><td class="lineno" valign="top"></td></tr> 213 214 <tr><td class="lineno" valign="top"></td><td class="lblock"> requirements are relevant here, unless one of the documented</td><td> </td><td class="rblock"> that SHOULD-level requirements are relevant here, unless one of the</td><td class="lineno" valign="top"></td></tr> … … 216 217 <tr><td class="lineno" valign="top"></td><td class="left"> This document also uses ABNF to define valid protocol elements</td><td> </td><td class="right"> This document also uses ABNF to define valid protocol elements</td><td class="lineno" valign="top"></td></tr> 217 218 <tr><td class="lineno" valign="top"></td><td class="left"> (Section 1.2). In addition to the prose requirements placed upon</td><td> </td><td class="right"> (Section 1.2). In addition to the prose requirements placed upon</td><td class="lineno" valign="top"></td></tr> 218 <tr><td><a name="diff001 6" /></td></tr>219 <tr><td><a name="diff0017" /></td></tr> 219 220 <tr><td class="lineno" valign="top"></td><td class="lblock"> them, <span class="delete">Senders</span> MUST NOT generate protocol elements that are <span class="delete">invalid.</span></td><td> </td><td class="rblock"> them, <span class="insert">senders</span> MUST NOT generate protocol elements that <span class="insert">do not match</span></td><td class="lineno" valign="top"></td></tr> 220 221 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> the grammar defined by the ABNF rules for those protocol elements</span></td><td class="lineno" valign="top"></td></tr> … … 224 225 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> only those rules not applicable to the recipient's role.</span></td><td class="lineno" valign="top"></td></tr> 225 226 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 226 <tr><td><a name="diff001 7" /></td></tr>227 <tr><td><a name="diff0018" /></td></tr> 227 228 <tr><td class="lineno" valign="top"></td><td class="lblock"> Unless noted otherwise, <span class="delete">Recipients</span> MAY <span class="delete">take steps</span> to recover a usable</td><td> </td><td class="rblock"> Unless noted otherwise, <span class="insert">a recipient</span> MAY <span class="insert">attempt</span> to recover a usable</td><td class="lineno" valign="top"></td></tr> 228 229 <tr><td class="lineno" valign="top"></td><td class="lblock"> protocol element from an invalid construct. <span class="delete">However,</span> HTTP does not</td><td> </td><td class="rblock"> protocol element from an invalid construct. HTTP does not define</td><td class="lineno" valign="top"></td></tr> … … 239 240 <tr><td class="lineno" valign="top"></td><td class="left"> This specification uses the Augmented Backus-Naur Form (ABNF)</td><td> </td><td class="right"> This specification uses the Augmented Backus-Naur Form (ABNF)</td><td class="lineno" valign="top"></td></tr> 240 241 <tr><td class="lineno" valign="top"></td><td class="left"> notation of [RFC5234] with the list rule extension defined in Section</td><td> </td><td class="right"> notation of [RFC5234] with the list rule extension defined in Section</td><td class="lineno" valign="top"></td></tr> 241 <tr><td><a name="diff001 8" /></td></tr>242 <tr><td><a name="diff0019" /></td></tr> 242 243 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.2 of [Part1]. Appendix B shows the collected ABNF with the list</td><td> </td><td class="rblock"> 1.2 of [Part1]. Appendix B <span class="insert">describes rules imported from other</span></td><td class="lineno" valign="top"></td></tr> 243 244 <tr><td class="lineno" valign="top"></td><td class="lblock"> rule expanded.</td><td> </td><td class="rblock"><span class="insert"> documents. Appendix C</span> shows the collected ABNF with the list rule</td><td class="lineno" valign="top"></td></tr> … … 280 281 <tr><td class="lineno" valign="top"></td><td class="left"> parameters.</td><td> </td><td class="right"> parameters.</td><td class="lineno" valign="top"></td></tr> 281 282 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 282 <tr><td><a name="diff00 19" /></td></tr>283 <tr><td><a name="diff0020" /></td></tr> 283 284 <tr><td class="lineno" valign="top"></td><td class="lblock"> Note: Many <span class="delete">browser</span>s fail to parse challenges containing unknown</td><td> </td><td class="rblock"> Note: Many <span class="insert">client</span>s fail to parse challenges containing unknown</td><td class="lineno" valign="top"></td></tr> 284 285 <tr><td class="lineno" valign="top"></td><td class="left"> schemes. A workaround for this problem is to list well-supported</td><td> </td><td class="right"> schemes. A workaround for this problem is to list well-supported</td><td class="lineno" valign="top"></td></tr> … … 287 288 <tr><td class="lineno" valign="top"></td><td class="left"> A user agent that wishes to authenticate itself with an origin server</td><td> </td><td class="right"> A user agent that wishes to authenticate itself with an origin server</td><td class="lineno" valign="top"></td></tr> 288 289 <tr><td class="lineno" valign="top"></td><td class="left"> -- usually, but not necessarily, after receiving a 401 (Unauthorized)</td><td> </td><td class="right"> -- usually, but not necessarily, after receiving a 401 (Unauthorized)</td><td class="lineno" valign="top"></td></tr> 289 <tr><td><a name="diff002 0" /></td></tr>290 <tr><td><a name="diff0021" /></td></tr> 290 291 <tr><td class="lineno" valign="top"></td><td class="lblock"> -- <span class="delete">MAY</span> do so by including an Authorization header field with the</td><td> </td><td class="rblock"> -- <span class="insert">can</span> do so by including an Authorization header field with the</td><td class="lineno" valign="top"></td></tr> 291 292 <tr><td class="lineno" valign="top"></td><td class="left"> request.</td><td> </td><td class="right"> request.</td><td class="lineno" valign="top"></td></tr> … … 293 294 <tr><td class="lineno" valign="top"></td><td class="left"> A client that wishes to authenticate itself with a proxy -- usually,</td><td> </td><td class="right"> A client that wishes to authenticate itself with a proxy -- usually,</td><td class="lineno" valign="top"></td></tr> 294 295 <tr><td class="lineno" valign="top"></td><td class="left"> but not necessarily, after receiving a 407 (Proxy Authentication</td><td> </td><td class="right"> but not necessarily, after receiving a 407 (Proxy Authentication</td><td class="lineno" valign="top"></td></tr> 295 <tr><td><a name="diff002 1" /></td></tr>296 <tr><td><a name="diff0022" /></td></tr> 296 297 <tr><td class="lineno" valign="top"></td><td class="lblock"> Required) -- <span class="delete">MAY</span> do so by including a Proxy-Authorization header</td><td> </td><td class="rblock"> Required) -- <span class="insert">can</span> do so by including a Proxy-Authorization header</td><td class="lineno" valign="top"></td></tr> 297 298 <tr><td class="lineno" valign="top"></td><td class="left"> field with the request.</td><td> </td><td class="right"> field with the request.</td><td class="lineno" valign="top"></td></tr> 298 299 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 299 300 <tr><td class="lineno" valign="top"></td><td class="left"> Both the Authorization field value and the Proxy-Authorization field</td><td> </td><td class="right"> Both the Authorization field value and the Proxy-Authorization field</td><td class="lineno" valign="top"></td></tr> 300 <tr><td><a name="diff002 2" /></td></tr>301 <tr><td><a name="diff0023" /></td></tr> 301 302 <tr><td class="lineno" valign="top"></td><td class="lblock"> value <span class="delete">consist of credentials containing</span> the <span class="delete">authentication</span></td><td> </td><td class="rblock"> value <span class="insert">contain</span> the <span class="insert">client's credentials</span> for the realm of the resource</td><td class="lineno" valign="top"></td></tr> 302 303 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> information of the client</span> for the realm of the resource being</td><td> </td><td class="rblock"> being <span class="insert">requested, based upon a challenge received from the server</span></td><td class="lineno" valign="top"></td></tr> … … 308 309 <tr><td class="lineno" valign="top"></td><td class="left"> credentials = auth-scheme [ 1*SP ( b64token / #auth-param ) ]</td><td> </td><td class="right"> credentials = auth-scheme [ 1*SP ( b64token / #auth-param ) ]</td><td class="lineno" valign="top"></td></tr> 309 310 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 310 <tr><td><a name="diff002 3" /></td></tr>311 <tr><td><a name="diff0024" /></td></tr> 311 312 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">If</span> the origin server <span class="delete">does not wish to accept the credentials sent</span></td><td> </td><td class="rblock"> <span class="insert">Upon a request for a protected resource that omits credentials,</span></td><td class="lineno" valign="top"></td></tr> 312 313 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> with a request, it</span> SHOULD return a 401 (Unauthorized) response. <span class="delete">The</span></td><td> </td><td class="rblock"><span class="insert"> contains invalid credentials (e.g., a bad password) or partial</span></td><td class="lineno" valign="top"></td></tr> … … 317 318 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> the requested resource.</td><td class="lineno" valign="top"></td></tr> 318 319 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 319 <tr><td><a name="diff002 4" /></td></tr>320 <tr><td><a name="diff0025" /></td></tr> 320 321 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">If</span> a <span class="delete">proxy does not accept the</span> credentials <span class="delete">sent with</span> a <span class="delete">request, it</span></td><td> </td><td class="rblock"> <span class="insert">Likewise, upon</span> a <span class="insert">request that requires authentication by proxies that</span></td><td class="lineno" valign="top"></td></tr> 321 322 <tr><td class="lineno" valign="top"></td><td class="lblock"> SHOULD return a 407 (Proxy Authentication <span class="delete">Required). The response</span></td><td> </td><td class="rblock"><span class="insert"> omit</span> credentials <span class="insert">or contain invalid or partial credentials,</span> a <span class="insert">proxy</span></td><td class="lineno" valign="top"></td></tr> … … 335 336 <tr><td class="lineno" valign="top"></td><td class="left"> mechanisms are not defined by this specification.</td><td> </td><td class="right"> mechanisms are not defined by this specification.</td><td class="lineno" valign="top"></td></tr> 336 337 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 337 <tr><td><a name="diff002 5" /></td></tr>338 <tr><td><a name="diff0026" /></td></tr> 338 339 <tr><td class="lineno" valign="top"></td><td class="lblock"> Proxies MUST forward the WWW-Authenticate and Authorization <span class="delete">headers</span></td><td> </td><td class="rblock"> Proxies MUST forward the WWW-Authenticate and Authorization <span class="insert">header</span></td><td class="lineno" valign="top"></td></tr> 339 340 <tr><td class="lineno" valign="top"></td><td class="lblock"> unmodified and follow the rules found in Section 4.1.</td><td> </td><td class="rblock"><span class="insert"> fields</span> unmodified and follow the rules found in Section 4.1.</td><td class="lineno" valign="top"></td></tr> … … 360 361 <tr><td class="lineno" valign="top"></td><td class="left"> and inherently flawed unless steps are taken to ensure that the</td><td> </td><td class="right"> and inherently flawed unless steps are taken to ensure that the</td><td class="lineno" valign="top"></td></tr> 361 362 <tr><td class="lineno" valign="top"></td><td class="left"> connection cannot be used by any party other than the</td><td> </td><td class="right"> connection cannot be used by any party other than the</td><td class="lineno" valign="top"></td></tr> 362 <tr><td><a name="diff002 6" /></td></tr>363 <tr><td><a name="diff0027" /></td></tr> 363 364 <tr><td class="lineno" valign="top"></td><td class="lblock"> authenticated user (see Section 2.<span class="delete">3</span> of [Part1]).</td><td> </td><td class="rblock"> authenticated user (see Section 2.<span class="insert">4</span> of [Part1]).</td><td class="lineno" valign="top"></td></tr> 364 365 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 382 383 <tr><td class="lineno" valign="top"></td><td class="left"> authentication schemes.</td><td> </td><td class="right"> authentication schemes.</td><td class="lineno" valign="top"></td></tr> 383 384 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 384 <tr><td><a name="diff002 7" /></td></tr>385 <tr><td><a name="diff0028" /></td></tr> 385 386 <tr><td class="lineno" valign="top"></td><td class="lblock"> Note: <span class="delete">t</span>he fact that the value syntax for the "realm" parameter is</td><td> </td><td class="rblock"> Note: <span class="insert">T</span>he fact that the value syntax for the "realm" parameter is</td><td class="lineno" valign="top"></td></tr> 386 387 <tr><td class="lineno" valign="top"></td><td class="left"> restricted to quoted-string was a bad design choice not to be</td><td> </td><td class="right"> restricted to quoted-string was a bad design choice not to be</td><td class="lineno" valign="top"></td></tr> … … 406 407 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 407 408 <tr><td class="lineno" valign="top"></td><td class="left"> Therefore, new authentication schemes which choose not to carry</td><td> </td><td class="right"> Therefore, new authentication schemes which choose not to carry</td><td class="lineno" valign="top"></td></tr> 408 <tr><td><a name="diff002 8" /></td></tr>409 <tr><td><a name="diff0029" /></td></tr> 409 410 <tr><td class="lineno" valign="top"></td><td class="lblock"> credentials in the Authorization header (e.g., using a newly</td><td> </td><td class="rblock"> credentials in the Authorization header <span class="insert">field</span> (e.g., using a newly</td><td class="lineno" valign="top"></td></tr> 410 411 <tr><td class="lineno" valign="top"></td><td class="lblock"> defined <span class="delete">header)</span> will need to explicitly disallow caching, by</td><td> </td><td class="rblock"> defined <span class="insert">header field)</span> will need to explicitly disallow caching, by</td><td class="lineno" valign="top"></td></tr> … … 431 432 <tr><td class="lineno" valign="top"></td><td class="left">4.2. Proxy-Authenticate</td><td> </td><td class="right">4.2. Proxy-Authenticate</td><td class="lineno" valign="top"></td></tr> 432 433 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 433 <tr><td><a name="diff00 29" /></td></tr>434 <tr><td><a name="diff0030" /></td></tr> 434 435 <tr><td class="lineno" valign="top"></td><td class="lblock"> The "Proxy-Authenticate" header field consists of <span class="delete">a</span> challenge that</td><td> </td><td class="rblock"> The "Proxy-Authenticate" header field consists of <span class="insert">at least one</span></td><td class="lineno" valign="top"></td></tr> 435 436 <tr><td class="lineno" valign="top"></td><td class="lblock"> indicates the authentication <span class="delete">scheme</span> and parameters applicable to the</td><td> </td><td class="rblock"> challenge that indicates the authentication <span class="insert">scheme(s)</span> and parameters</td><td class="lineno" valign="top"></td></tr> … … 441 442 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 442 443 <tr><td class="lineno" valign="top"></td><td class="left"> Unlike WWW-Authenticate, the Proxy-Authenticate header field applies</td><td> </td><td class="right"> Unlike WWW-Authenticate, the Proxy-Authenticate header field applies</td><td class="lineno" valign="top"></td></tr> 443 <tr><td><a name="diff003 0" /></td></tr>444 <tr><td><a name="diff0031" /></td></tr> 444 445 <tr><td class="lineno" valign="top"></td><td class="lblock"> only to the current <span class="delete">connection</span> and SHOULD NOT <span class="delete">be passed on</span> to</td><td> </td><td class="rblock"> only to the current <span class="insert">connection,</span> and <span class="insert">intermediaries</span> SHOULD NOT <span class="insert">forward</span></td><td class="lineno" valign="top"></td></tr> 445 446 <tr><td class="lineno" valign="top"></td><td class="lblock"> downstream clients. However, an intermediate proxy might need to</td><td> </td><td class="rblock"><span class="insert"> it</span> to downstream clients. However, an intermediate proxy might need</td><td class="lineno" valign="top"></td></tr> … … 467 468 <tr><td class="lineno" valign="top"></td><td class="left">5. IANA Considerations</td><td> </td><td class="right">5. IANA Considerations</td><td class="lineno" valign="top"></td></tr> 468 469 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 469 <tr><td><a name="diff003 1" /></td></tr>470 <tr><td><a name="diff0032" /></td></tr> 470 471 <tr><td class="lineno" valign="top"></td><td class="lblock">5.1. Authenticaton Scheme Registry</td><td> </td><td class="rblock">5.1. Authenticat<span class="insert">i</span>on Scheme Registry</td><td class="lineno" valign="top"></td></tr> 471 472 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 491 492 <tr><td class="lineno" valign="top"></td><td class="left"> cached credentials under user control.</td><td> </td><td class="right"> cached credentials under user control.</td><td class="lineno" valign="top"></td></tr> 492 493 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 493 <tr><td><a name="diff003 2" /></td></tr>494 <tr><td><a name="diff0033" /></td></tr> 494 495 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">6.2. Protection Spaces</span></td><td class="lineno" valign="top"></td></tr> 495 496 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr> … … 531 532 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 532 533 <tr><td class="lineno" valign="top"></td><td class="left">8. References</td><td> </td><td class="right">8. References</td><td class="lineno" valign="top"></td></tr> 533 <tr><td><a name="diff003 3" /></td></tr>534 <tr><td><a name="diff0034" /></td></tr> 534 535 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> </span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 535 536 <tr><td class="lineno" valign="top"></td><td class="left">8.1. Normative References</td><td> </td><td class="right">8.1. Normative References</td><td class="lineno" valign="top"></td></tr> 536 537 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 537 538 <tr><td class="lineno" valign="top"></td><td class="left"> [Part1] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td> </td><td class="right"> [Part1] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td class="lineno" valign="top"></td></tr> 538 <tr><td><a name="diff003 4" /></td></tr>539 <tr><td><a name="diff0035" /></td></tr> 539 540 <tr><td class="lineno" valign="top"></td><td class="lblock"> "HTTP/1.1, part 1: <span class="delete">URIs, Connections, and</span> Message</td><td> </td><td class="rblock"> "HTTP/1.1, part 1: Message <span class="insert">Routing and Syntax"",</span></td><td class="lineno" valign="top"></td></tr> 540 541 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Parsing", draft-ietf-httpbis-p1-messaging-19</span> (work in</td><td> </td><td class="rblock"><span class="insert"> draft-ietf-httpbis-p1-messaging-20 (work in progress),</span></td><td class="lineno" valign="top"></td></tr> … … 548 549 <tr><td class="lineno" valign="top"></td><td class="left"> [Part6] Fielding, R., Ed., Lafon, Y., Ed., Nottingham, M., Ed.,</td><td> </td><td class="right"> [Part6] Fielding, R., Ed., Lafon, Y., Ed., Nottingham, M., Ed.,</td><td class="lineno" valign="top"></td></tr> 549 550 <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 6: Caching",</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 6: Caching",</td><td class="lineno" valign="top"></td></tr> 550 <tr><td><a name="diff003 5" /></td></tr>551 <tr><td><a name="diff0036" /></td></tr> 551 552 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">draft-ietf-httpbis-p6-cache-19</span> (work in progress),</td><td> </td><td class="rblock"> <span class="insert">draft-ietf-httpbis-p6-cache-20</span> (work in progress),</td><td class="lineno" valign="top"></td></tr> 552 553 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">March</span> 2012.</td><td> </td><td class="rblock"> <span class="insert">July</span> 2012.</td><td class="lineno" valign="top"></td></tr> … … 573 574 <tr><td class="lineno" valign="top"></td><td class="left"> (Section 2)</td><td> </td><td class="right"> (Section 2)</td><td class="lineno" valign="top"></td></tr> 574 575 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 575 <tr><td><a name="diff003 6" /></td></tr>576 <tr><td><a name="diff0037" /></td></tr> 576 577 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">Introduce Authentication Scheme Registry. (Section 2.3)</span></td><td class="lineno" valign="top"></td></tr> 577 578 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr> … … 579 580 <tr><td class="lineno" valign="top"></td><td class="left"> value. (Section 4)</td><td> </td><td class="right"> value. (Section 4)</td><td class="lineno" valign="top"></td></tr> 580 581 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 581 <tr><td><a name="diff003 7" /></td></tr>582 <tr><td><a name="diff0038" /></td></tr> 582 583 <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix B. Collected ABNF</td><td> </td><td class="rblock">Appendix B. <span class="insert">Imported ABNF</span></td><td class="lineno" valign="top"></td></tr> 583 584 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr> … … 619 620 <tr><td class="lineno" valign="top"></td><td class="left"> token = <token, defined in [Part1], Section 3.2.4></td><td> </td><td class="right"> token = <token, defined in [Part1], Section 3.2.4></td><td class="lineno" valign="top"></td></tr> 620 621 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 621 <tr><td><a name="diff003 8" /></td></tr>622 <tr><td><a name="diff0039" /></td></tr> 622 623 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">ABNF diagnostics:</span></td><td> </td><td class="rblock">Appendix <span class="insert">D.</span> Change Log (to be removed by RFC Editor before publication)</td><td class="lineno" valign="top"></td></tr> 623 624 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 775 776 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> HTTP's error-handling philosophy"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 776 777 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 777 <tr><td><a name="diff00 39" /></td></tr>778 <tr><td><a name="diff0040" /></td></tr> 778 779 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">o <http://tools.ietf.org/wg/httpbis/trac/ticket/320>: "add advice on</span></td><td> </td><td class="rblock"> <span class="insert">Changes up to the first Working Group Last Call draft are summarized</span></td><td class="lineno" valign="top"></td></tr> 779 780 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> defining auth scheme parameters"</span></td><td> </td><td class="rblock"><span class="insert"> in <http://trac.tools.ietf.org/html/</span></td><td class="lineno" valign="top"></td></tr> 780 781 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> draft-ietf-httpbis-p7-auth-19#appendix-C>.</span></td><td class="lineno" valign="top"></td></tr> 781 782 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 782 <tr><td><a name="diff004 0" /></td></tr>783 <tr><td><a name="diff0041" /></td></tr> 783 784 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">C.19. Since draft-ietf-httpbis-p7-auth-17</span></td><td> </td><td class="rblock"><span class="insert">D.1. Since draft-ietf-httpbis-p7-auth-19</span></td><td class="lineno" valign="top"></td></tr> 784 785 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 785 786 <tr><td class="lineno" valign="top"></td><td class="left"> Closed issues:</td><td> </td><td class="right"> Closed issues:</td><td class="lineno" valign="top"></td></tr> 786 787 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 787 <tr><td><a name="diff004 1" /></td></tr>788 <tr><td><a name="diff0042" /></td></tr> 788 789 <tr><td class="lineno" valign="top"></td><td class="lblock"> o <span class="delete"><http://tools.ietf.org/wg/httpbis/trac/ticket/314>: "allow</span></td><td> </td><td class="rblock"> o <span class="insert"><http://tools.ietf.org/wg/httpbis/trac/ticket/348>: "Realms and</span></td><td class="lineno" valign="top"></td></tr> 789 790 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> unquoted realm parameters"</span></td><td> </td><td class="rblock"><span class="insert"> scope"</span></td><td class="lineno" valign="top"></td></tr> … … 792 793 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> auth-params"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 793 794 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 794 <tr><td><a name="diff004 2" /></td></tr>795 <tr><td><a name="diff0043" /></td></tr> 795 796 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">C.20. Since draft-ietf-httpbis-p7-auth-18</span></td><td> </td><td class="rblock"><span class="insert"> o <http://tools.ietf.org/wg/httpbis/trac/ticket/349>: "Strength"</span></td><td class="lineno" valign="top"></td></tr> 796 797 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 797 <tr><td><a name="diff004 3" /></td></tr>798 <tr><td><a name="diff0044" /></td></tr> 798 799 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Closed issues:</span></td><td> </td><td class="rblock"> <span class="insert">o <http://tools.ietf.org/wg/httpbis/trac/ticket/357>:</span></td><td class="lineno" valign="top"></td></tr> 799 800 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> "Authentication exchanges"</span></td><td class="lineno" valign="top"></td></tr> 800 801 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 801 <tr><td><a name="diff004 4" /></td></tr>802 <tr><td><a name="diff0045" /></td></tr> 802 803 <tr><td class="lineno" valign="top"></td><td class="lblock"> o <span class="delete"><http://tools.ietf.org/wg/httpbis/trac/ticket/334>: "recipient</span></td><td> </td><td class="rblock"> o <span class="insert"><http://tools.ietf.org/wg/httpbis/trac/ticket/361>: "ABNF</span></td><td class="lineno" valign="top"></td></tr> 803 804 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> behavior</span> for <span class="delete">new auth parameters"</span></td><td> </td><td class="rblock"><span class="insert"> requirements</span> for <span class="insert">recipients"</span></td><td class="lineno" valign="top"></td></tr> 804 805 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 805 <tr><td><a name="diff004 5" /></td></tr>806 <tr><td><a name="diff0046" /></td></tr> 806 807 <tr><td class="lineno" valign="top"></td><td class="lblock"> o <span class="delete"><http://tools.ietf.org/wg/httpbis/trac/ticket/342>: "WWW-</span></td><td> </td><td class="rblock"> o <span class="insert"><http://tools.ietf.org/wg/httpbis/trac/ticket/368>: "note</span></td><td class="lineno" valign="top"></td></tr> 807 808 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Authenticate ABNF slightly ambiguous"</span></td><td> </td><td class="rblock"><span class="insert"> introduction of new IANA registries as normative changes"</span></td><td class="lineno" valign="top"></td></tr> … … 811 812 <tr><td class="lineno" valign="top"></td><td class="left"> 4</td><td> </td><td class="right"> 4</td><td class="lineno" valign="top"></td></tr> 812 813 <tr><td class="lineno" valign="top"></td><td class="left"> 401 Unauthorized (status code) 9</td><td> </td><td class="right"> 401 Unauthorized (status code) 9</td><td class="lineno" valign="top"></td></tr> 813 <tr><td><a name="diff004 6" /></td></tr>814 <tr><td><a name="diff0047" /></td></tr> 814 815 <tr><td class="lineno" valign="top"></td><td class="lblock"> 407 Proxy Authentication Required (status code) <span class="delete">9</span></td><td> </td><td class="rblock"> 407 Proxy Authentication Required (status code) <span class="insert">10</span></td><td class="lineno" valign="top"></td></tr> 815 816 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 823 824 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 824 825 <tr><td class="lineno" valign="top"></td><td class="left"> C</td><td> </td><td class="right"> C</td><td class="lineno" valign="top"></td></tr> 825 <tr><td><a name="diff004 7" /></td></tr>826 <tr><td><a name="diff0048" /></td></tr> 826 827 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Canonical Root URI 7</span></td><td class="lineno" valign="top"></td></tr> 827 828 <tr><td class="lineno" valign="top"></td><td class="left"> challenge 6</td><td> </td><td class="right"> challenge 6</td><td class="lineno" valign="top"></td></tr> … … 845 846 <tr><td class="lineno" valign="top"></td><td class="left"> Proxy-Authenticate 11</td><td> </td><td class="right"> Proxy-Authenticate 11</td><td class="lineno" valign="top"></td></tr> 846 847 <tr><td class="lineno" valign="top"></td><td class="left"> Proxy-Authorization 11</td><td> </td><td class="right"> Proxy-Authorization 11</td><td class="lineno" valign="top"></td></tr> 847 <tr><td><a name="diff004 8" /></td></tr>848 <tr><td><a name="diff0049" /></td></tr> 848 849 <tr><td class="lineno" valign="top"></td><td class="lblock"> WWW-Authenticate 1<span class="delete">1</span></td><td> </td><td class="rblock"> WWW-Authenticate 1<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> 849 850 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 859 860 <tr><td class="lineno" valign="top"></td><td class="left"> Status Codes</td><td> </td><td class="right"> Status Codes</td><td class="lineno" valign="top"></td></tr> 860 861 <tr><td class="lineno" valign="top"></td><td class="left"> 401 Unauthorized 9</td><td> </td><td class="right"> 401 Unauthorized 9</td><td class="lineno" valign="top"></td></tr> 861 <tr><td><a name="diff00 49" /></td></tr>862 <tr><td><a name="diff0050" /></td></tr> 862 863 <tr><td class="lineno" valign="top"></td><td class="lblock"> 407 Proxy Authentication Required <span class="delete">9</span></td><td> </td><td class="rblock"> 407 Proxy Authentication Required <span class="insert">10</span></td><td class="lineno" valign="top"></td></tr> 863 864 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 864 865 <tr><td class="lineno" valign="top"></td><td class="left"> W</td><td> </td><td class="right"> W</td><td class="lineno" valign="top"></td></tr> 865 <tr><td><a name="diff005 0" /></td></tr>866 <tr><td><a name="diff0051" /></td></tr> 866 867 <tr><td class="lineno" valign="top"></td><td class="lblock"> WWW-Authenticate header field 1<span class="delete">1</span></td><td> </td><td class="rblock"> WWW-Authenticate header field 1<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> 867 868 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 887 888 <tr><td class="lineno" valign="top"></td><td class="left"> EMail: ylafon@w3.org</td><td> </td><td class="right"> EMail: ylafon@w3.org</td><td class="lineno" valign="top"></td></tr> 888 889 <tr><td class="lineno" valign="top"></td><td class="left"> URI: http://www.raubacapeu.net/people/yves/</td><td> </td><td class="right"> URI: http://www.raubacapeu.net/people/yves/</td><td class="lineno" valign="top"></td></tr> 889 <tr><td><a name="diff005 1" /></td></tr>890 <tr><td><a name="diff0052" /></td></tr> 890 891 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 891 892 <tr><td class="lineno" valign="top"></td><td class="left"> Julian F. Reschke (editor)</td><td> </td><td class="right"> Julian F. Reschke (editor)</td><td class="lineno" valign="top"></td></tr> … … 895 896 <tr><td class="lineno" valign="top"></td><td class="left"> Germany</td><td> </td><td class="right"> Germany</td><td class="lineno" valign="top"></td></tr> 896 897 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 897 <tr><td><a name="diff005 2" /></td></tr>898 <tr><td><a name="diff0053" /></td></tr> 898 899 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Phone: +49 251 2807760</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 899 900 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Fax: +49 251 2807761</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 902 903 903 904 <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr> 904 <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 5 2change blocks. </a></th></tr>905 <tr class="stats"><td></td><th><i> 294 lines changed or deleted</i></th><th><i> </i></th><th><i>165lines changed or added</i></th><td></td></tr>905 <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 53 change blocks. </a></th></tr> 906 <tr class="stats"><td></td><th><i>300 lines changed or deleted</i></th><th><i> </i></th><th><i>166 lines changed or added</i></th><td></td></tr> 906 907 <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.38. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr> 907 908 </table>
Note: See TracChangeset
for help on using the changeset viewer.