1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
---|
2 | <!-- Generated by rfcdiff 1.38: rfcdiff --> |
---|
3 | <!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > --> |
---|
4 | <html> |
---|
5 | <head> |
---|
6 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
---|
7 | <meta http-equiv="Content-Style-Type" content="text/css" /> |
---|
8 | <title>Diff: draft-ietf-httpbis-p4-conditional-10.txt - draft-ietf-httpbis-p4-conditional-11.txt</title> |
---|
9 | <style type="text/css"> |
---|
10 | body { margin: 0.4ex; margin-right: auto; } |
---|
11 | tr { } |
---|
12 | td { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} |
---|
13 | th { font-size: 0.86em; } |
---|
14 | .small { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } |
---|
15 | .left { background-color: #EEE; } |
---|
16 | .right { background-color: #FFF; } |
---|
17 | .diff { background-color: #CCF; } |
---|
18 | .lblock { background-color: #BFB; } |
---|
19 | .rblock { background-color: #FF8; } |
---|
20 | .insert { background-color: #8FF; } |
---|
21 | .delete { background-color: #ACF; } |
---|
22 | .void { background-color: #FFB; } |
---|
23 | .cont { background-color: #EEE; } |
---|
24 | .linebr { background-color: #AAA; } |
---|
25 | .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } |
---|
26 | .elipsis{ background-color: #AAA; } |
---|
27 | .left .cont { background-color: #DDD; } |
---|
28 | .right .cont { background-color: #EEE; } |
---|
29 | .lblock .cont { background-color: #9D9; } |
---|
30 | .rblock .cont { background-color: #DD6; } |
---|
31 | .insert .cont { background-color: #0DD; } |
---|
32 | .delete .cont { background-color: #8AD; } |
---|
33 | .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } |
---|
34 | </style> |
---|
35 | </head> |
---|
36 | <body > |
---|
37 | <table border="0" cellpadding="0" cellspacing="0"> |
---|
38 | <tr bgcolor="orange"><th></th><th> draft-ietf-httpbis-p4-conditional-10.txt </th><th> </th><th> draft-ietf-httpbis-p4-conditional-11.txt </th><th></th></tr> |
---|
39 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
40 | <tr><td class="lineno" valign="top"></td><td class="left">HTTPbis Working Group R. Fielding, Ed.</td><td> </td><td class="right">HTTPbis Working Group R. Fielding, Ed.</td><td class="lineno" valign="top"></td></tr> |
---|
41 | <tr><td class="lineno" valign="top"></td><td class="left">Internet-Draft Day Software</td><td> </td><td class="right">Internet-Draft Day Software</td><td class="lineno" valign="top"></td></tr> |
---|
42 | <tr><td class="lineno" valign="top"></td><td class="left">Obsoletes: 2616 (if approved) J. Gettys</td><td> </td><td class="right">Obsoletes: 2616 (if approved) J. Gettys</td><td class="lineno" valign="top"></td></tr> |
---|
43 | <tr><td class="lineno" valign="top"></td><td class="left">Intended status: Standards Track Alcatel-Lucent</td><td> </td><td class="right">Intended status: Standards Track Alcatel-Lucent</td><td class="lineno" valign="top"></td></tr> |
---|
44 | <tr><td><a name="diff0001" /></td></tr> |
---|
45 | <tr><td class="lineno" valign="top"></td><td class="lblock">Expires: <span class="delete">January 13</span>, 2011 J. Mogul</td><td> </td><td class="rblock">Expires: <span class="insert">February 5</span>, 2011 J. Mogul</td><td class="lineno" valign="top"></td></tr> |
---|
46 | <tr><td class="lineno" valign="top"></td><td class="left"> HP</td><td> </td><td class="right"> HP</td><td class="lineno" valign="top"></td></tr> |
---|
47 | <tr><td class="lineno" valign="top"></td><td class="left"> H. Frystyk</td><td> </td><td class="right"> H. Frystyk</td><td class="lineno" valign="top"></td></tr> |
---|
48 | <tr><td class="lineno" valign="top"></td><td class="left"> Microsoft</td><td> </td><td class="right"> Microsoft</td><td class="lineno" valign="top"></td></tr> |
---|
49 | <tr><td class="lineno" valign="top"></td><td class="left"> L. Masinter</td><td> </td><td class="right"> L. Masinter</td><td class="lineno" valign="top"></td></tr> |
---|
50 | <tr><td class="lineno" valign="top"></td><td class="left"> Adobe Systems</td><td> </td><td class="right"> Adobe Systems</td><td class="lineno" valign="top"></td></tr> |
---|
51 | <tr><td class="lineno" valign="top"></td><td class="left"> P. Leach</td><td> </td><td class="right"> P. Leach</td><td class="lineno" valign="top"></td></tr> |
---|
52 | <tr><td class="lineno" valign="top"></td><td class="left"> Microsoft</td><td> </td><td class="right"> Microsoft</td><td class="lineno" valign="top"></td></tr> |
---|
53 | <tr><td class="lineno" valign="top"></td><td class="left"> T. Berners-Lee</td><td> </td><td class="right"> T. Berners-Lee</td><td class="lineno" valign="top"></td></tr> |
---|
54 | <tr><td class="lineno" valign="top"></td><td class="left"> W3C/MIT</td><td> </td><td class="right"> W3C/MIT</td><td class="lineno" valign="top"></td></tr> |
---|
55 | <tr><td class="lineno" valign="top"></td><td class="left"> Y. Lafon, Ed.</td><td> </td><td class="right"> Y. Lafon, Ed.</td><td class="lineno" valign="top"></td></tr> |
---|
56 | <tr><td class="lineno" valign="top"></td><td class="left"> W3C</td><td> </td><td class="right"> W3C</td><td class="lineno" valign="top"></td></tr> |
---|
57 | <tr><td class="lineno" valign="top"></td><td class="left"> J. Reschke, Ed.</td><td> </td><td class="right"> J. Reschke, Ed.</td><td class="lineno" valign="top"></td></tr> |
---|
58 | <tr><td class="lineno" valign="top"></td><td class="left"> greenbytes</td><td> </td><td class="right"> greenbytes</td><td class="lineno" valign="top"></td></tr> |
---|
59 | <tr><td><a name="diff0002" /></td></tr> |
---|
60 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> July 12</span>, 2010</td><td> </td><td class="rblock"> <span class="insert">August 4</span>, 2010</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"> 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> |
---|
63 | <tr><td><a name="diff0003" /></td></tr> |
---|
64 | <tr><td class="lineno" valign="top"></td><td class="lblock"> draft-ietf-httpbis-p4-conditional-1<span class="delete">0</span></td><td> </td><td class="rblock"> draft-ietf-httpbis-p4-conditional-1<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr> |
---|
65 | <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 class="lineno" valign="top"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno" valign="top"></td></tr> |
---|
67 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
68 | <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> |
---|
69 | <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> |
---|
70 | <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> |
---|
71 | <tr><td class="lineno" valign="top"></td><td class="left"> information initiative since 1990. This document is Part 4 of the</td><td> </td><td class="right"> information initiative since 1990. This document is Part 4 of the</td><td class="lineno" valign="top"></td></tr> |
---|
72 | <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> |
---|
73 | <tr><td class="lineno" valign="top"></td><td class="left"> "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 4 defines</td><td> </td><td class="right"> "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 4 defines</td><td class="lineno" valign="top"></td></tr> |
---|
74 | <tr><td class="lineno" valign="top"></td><td class="left"> request header fields for indicating conditional requests and the</td><td> </td><td class="right"> request header fields for indicating conditional requests and the</td><td class="lineno" valign="top"></td></tr> |
---|
75 | <tr><td class="lineno" valign="top"></td><td class="left"> rules for constructing responses to those requests.</td><td> </td><td class="right"> rules for constructing responses to those requests.</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
77 | <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> |
---|
78 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
79 | <tr><td class="lineno" valign="top"></td><td class="left"> Discussion of this draft should take place on the HTTPBIS working</td><td> </td><td class="right"> Discussion of this draft should take place on the HTTPBIS working</td><td class="lineno" valign="top"></td></tr> |
---|
80 | <tr><td class="lineno" valign="top"></td><td class="left"> group mailing list (ietf-http-wg@w3.org). The current issues list is</td><td> </td><td class="right"> group mailing list (ietf-http-wg@w3.org). The current issues list is</td><td class="lineno" valign="top"></td></tr> |
---|
81 | <tr><td class="lineno" valign="top"></td><td class="left"> at <http://tools.ietf.org/wg/httpbis/trac/report/3> and related</td><td> </td><td class="right"> at <http://tools.ietf.org/wg/httpbis/trac/report/3> and related</td><td class="lineno" valign="top"></td></tr> |
---|
82 | <tr><td class="lineno" valign="top"></td><td class="left"> documents (including fancy diffs) can be found at</td><td> </td><td class="right"> documents (including fancy diffs) can be found at</td><td class="lineno" valign="top"></td></tr> |
---|
83 | <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> |
---|
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> |
---|
85 | <tr><td><a name="diff0004" /></td></tr> |
---|
86 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The changes in this draft are summarized in Appendix C.1<span class="delete">1</span>.</td><td> </td><td class="rblock"> The changes in this draft are summarized in Appendix C.1<span class="insert">2</span>.</td><td class="lineno" valign="top"></td></tr> |
---|
87 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
88 | <tr><td class="lineno" valign="top"></td><td class="left">Status of This Memo</td><td> </td><td class="right">Status of This Memo</td><td class="lineno" valign="top"></td></tr> |
---|
89 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
90 | <tr><td class="lineno" valign="top"></td><td class="left"> This Internet-Draft is submitted in full conformance with the</td><td> </td><td class="right"> This Internet-Draft is submitted in full conformance with the</td><td class="lineno" valign="top"></td></tr> |
---|
91 | <tr><td class="lineno" valign="top"></td><td class="left"> provisions of BCP 78 and BCP 79.</td><td> </td><td class="right"> provisions of BCP 78 and BCP 79.</td><td class="lineno" valign="top"></td></tr> |
---|
92 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
93 | <tr><td class="lineno" valign="top"></td><td class="left"> Internet-Drafts are working documents of the Internet Engineering</td><td> </td><td class="right"> Internet-Drafts are working documents of the Internet Engineering</td><td class="lineno" valign="top"></td></tr> |
---|
94 | <tr><td class="lineno" valign="top"></td><td class="left"> Task Force (IETF). Note that other groups may also distribute</td><td> </td><td class="right"> Task Force (IETF). Note that other groups may also distribute</td><td class="lineno" valign="top"></td></tr> |
---|
95 | <tr><td class="lineno" valign="top"></td><td class="left"> working documents as Internet-Drafts. The list of current Internet-</td><td> </td><td class="right"> working documents as Internet-Drafts. The list of current Internet-</td><td class="lineno" valign="top"></td></tr> |
---|
96 | <tr><td class="lineno" valign="top"></td><td class="left"> Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td> </td><td class="right"> Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
98 | <tr><td class="lineno" valign="top"></td><td class="left"> Internet-Drafts are draft documents valid for a maximum of six months</td><td> </td><td class="right"> Internet-Drafts are draft documents valid for a maximum of six months</td><td class="lineno" valign="top"></td></tr> |
---|
99 | <tr><td class="lineno" valign="top"></td><td class="left"> and may be updated, replaced, or obsoleted by other documents at any</td><td> </td><td class="right"> and may be updated, replaced, or obsoleted by other documents at any</td><td class="lineno" valign="top"></td></tr> |
---|
100 | <tr><td class="lineno" valign="top"></td><td class="left"> time. It is inappropriate to use Internet-Drafts as reference</td><td> </td><td class="right"> time. It is inappropriate to use Internet-Drafts as reference</td><td class="lineno" valign="top"></td></tr> |
---|
101 | <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> |
---|
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> |
---|
103 | <tr><td><a name="diff0005" /></td></tr> |
---|
104 | <tr><td class="lineno" valign="top"></td><td class="lblock"> This Internet-Draft will expire on <span class="delete">January 13</span>, 2011.</td><td> </td><td class="rblock"> This Internet-Draft will expire on <span class="insert">February 5</span>, 2011.</td><td class="lineno" valign="top"></td></tr> |
---|
105 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
106 | <tr><td class="lineno" valign="top"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno" valign="top"></td></tr> |
---|
107 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
108 | <tr><td class="lineno" valign="top"></td><td class="left"> Copyright (c) 2010 IETF Trust and the persons identified as the</td><td> </td><td class="right"> Copyright (c) 2010 IETF Trust and the persons identified as the</td><td class="lineno" valign="top"></td></tr> |
---|
109 | <tr><td class="lineno" valign="top"></td><td class="left"> document authors. All rights reserved.</td><td> </td><td class="right"> document authors. All rights reserved.</td><td class="lineno" valign="top"></td></tr> |
---|
110 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
111 | <tr><td class="lineno" valign="top"></td><td class="left"> This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right"> This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno" valign="top"></td></tr> |
---|
112 | <tr><td class="lineno" valign="top"></td><td class="left"> Provisions Relating to IETF Documents</td><td> </td><td class="right"> Provisions Relating to IETF Documents</td><td class="lineno" valign="top"></td></tr> |
---|
113 | <tr><td class="lineno" valign="top"></td><td class="left"> (http://trustee.ietf.org/license-info) in effect on the date of</td><td> </td><td class="right"> (http://trustee.ietf.org/license-info) in effect on the date of</td><td class="lineno" valign="top"></td></tr> |
---|
114 | <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> |
---|
115 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
116 | <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 3, line 13</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 3, line 13</em></th><td></td></tr> |
---|
117 | <tr><td class="lineno" valign="top"></td><td class="left"> than English.</td><td> </td><td class="right"> than English.</td><td class="lineno" valign="top"></td></tr> |
---|
118 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
119 | <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> |
---|
120 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
121 | <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> |
---|
122 | <tr><td class="lineno" valign="top"></td><td class="left"> 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 4</td><td> </td><td class="right"> 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 4</td><td class="lineno" valign="top"></td></tr> |
---|
123 | <tr><td class="lineno" valign="top"></td><td class="left"> 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 4</td><td> </td><td class="right"> 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 4</td><td class="lineno" valign="top"></td></tr> |
---|
124 | <tr><td class="lineno" valign="top"></td><td class="left"> 1.2.1. Core Rules . . . . . . . . . . . . . . . . . . . . . . 5</td><td> </td><td class="right"> 1.2.1. Core Rules . . . . . . . . . . . . . . . . . . . . . . 5</td><td class="lineno" valign="top"></td></tr> |
---|
125 | <tr><td class="lineno" valign="top"></td><td class="left"> 1.2.2. ABNF Rules defined in other Parts of the</td><td> </td><td class="right"> 1.2.2. ABNF Rules defined in other Parts of the</td><td class="lineno" valign="top"></td></tr> |
---|
126 | <tr><td class="lineno" valign="top"></td><td class="left"> Specification . . . . . . . . . . . . . . . . . . . . 5</td><td> </td><td class="right"> Specification . . . . . . . . . . . . . . . . . . . . 5</td><td class="lineno" valign="top"></td></tr> |
---|
127 | <tr><td><a name="diff0006" /></td></tr> |
---|
128 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2. <span class="delete">Entity Tags</span> . . . . . . . . . . . . . . . . . . . . . . . . . 5</td><td> </td><td class="rblock"> 2. <span class="insert">Entity-Tags</span> . . . . . . . . . . . . . . . . . . . . . . . . . 5</td><td class="lineno" valign="top"></td></tr> |
---|
129 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.1. Example: <span class="delete">Entity Tags</span> varying on Content-Negotiated</td><td> </td><td class="rblock"> 2.1. Example: <span class="insert">Entity-tags</span> varying on Content-Negotiated</td><td class="lineno" valign="top"></td></tr> |
---|
130 | <tr><td class="lineno" valign="top"></td><td class="left"> Resources . . . . . . . . . . . . . . . . . . . . . . . . 6</td><td> </td><td class="right"> Resources . . . . . . . . . . . . . . . . . . . . . . . . 6</td><td class="lineno" valign="top"></td></tr> |
---|
131 | <tr><td class="lineno" valign="top"></td><td class="left"> 3. Status Code Definitions . . . . . . . . . . . . . . . . . . . 7</td><td> </td><td class="right"> 3. Status Code Definitions . . . . . . . . . . . . . . . . . . . 7</td><td class="lineno" valign="top"></td></tr> |
---|
132 | <tr><td class="lineno" valign="top"></td><td class="left"> 3.1. 304 Not Modified . . . . . . . . . . . . . . . . . . . . . 7</td><td> </td><td class="right"> 3.1. 304 Not Modified . . . . . . . . . . . . . . . . . . . . . 7</td><td class="lineno" valign="top"></td></tr> |
---|
133 | <tr><td><a name="diff0007" /></td></tr> |
---|
134 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3.2. 412 Precondition Failed . . . . . . . . . . . . . . . . . <span class="delete">8</span></td><td> </td><td class="rblock"> 3.2. 412 Precondition Failed . . . . . . . . . . . . . . . . . <span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> |
---|
135 | <tr><td class="lineno" valign="top"></td><td class="left"> 4. Weak and Strong Validators . . . . . . . . . . . . . . . . . . 8</td><td> </td><td class="right"> 4. Weak and Strong Validators . . . . . . . . . . . . . . . . . . 8</td><td class="lineno" valign="top"></td></tr> |
---|
136 | <tr><td><a name="diff0008" /></td></tr> |
---|
137 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5. Rules for When to Use Entity<span class="delete"> Tags and Last-Modified Dates . . 11</span></td><td> </td><td class="rblock"> 5. Rules for When to Use Entity<span class="insert">-tags and Last-Modified Dates . . 10</span></td><td class="lineno" valign="top"></td></tr> |
---|
138 | <tr><td class="lineno" valign="top"></td><td class="left"> 6. Header Field Definitions . . . . . . . . . . . . . . . . . . . 12</td><td> </td><td class="right"> 6. Header Field Definitions . . . . . . . . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr> |
---|
139 | <tr><td><a name="diff0009" /></td></tr> |
---|
140 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 6.1. ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<span class="delete">3</span></td><td> </td><td class="rblock"> 6.1. ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> |
---|
141 | <tr><td class="lineno" valign="top"></td><td class="left"> 6.2. If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 13</td><td> </td><td class="right"> 6.2. If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 13</td><td class="lineno" valign="top"></td></tr> |
---|
142 | <tr><td class="lineno" valign="top"></td><td class="left"> 6.3. If-Modified-Since . . . . . . . . . . . . . . . . . . . . 14</td><td> </td><td class="right"> 6.3. If-Modified-Since . . . . . . . . . . . . . . . . . . . . 14</td><td class="lineno" valign="top"></td></tr> |
---|
143 | <tr><td class="lineno" valign="top"></td><td class="left"> 6.4. If-None-Match . . . . . . . . . . . . . . . . . . . . . . 16</td><td> </td><td class="right"> 6.4. If-None-Match . . . . . . . . . . . . . . . . . . . . . . 16</td><td class="lineno" valign="top"></td></tr> |
---|
144 | <tr><td class="lineno" valign="top"></td><td class="left"> 6.5. If-Unmodified-Since . . . . . . . . . . . . . . . . . . . 17</td><td> </td><td class="right"> 6.5. If-Unmodified-Since . . . . . . . . . . . . . . . . . . . 17</td><td class="lineno" valign="top"></td></tr> |
---|
145 | <tr><td class="lineno" valign="top"></td><td class="left"> 6.6. Last-Modified . . . . . . . . . . . . . . . . . . . . . . 18</td><td> </td><td class="right"> 6.6. Last-Modified . . . . . . . . . . . . . . . . . . . . . . 18</td><td class="lineno" valign="top"></td></tr> |
---|
146 | <tr><td><a name="diff0010" /></td></tr> |
---|
147 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 1<span class="delete">9</span></td><td> </td><td class="rblock"> 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 1<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> |
---|
148 | <tr><td class="lineno" valign="top"></td><td class="left"> 7.1. Status Code Registration . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right"> 7.1. Status Code Registration . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr> |
---|
149 | <tr><td><a name="diff0011" /></td></tr> |
---|
150 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 7.2. <span class="delete">Message Header Registration </span> . . . . . . . . . . . . . . . 19</td><td> </td><td class="rblock"> 7.2. <span class="insert">Header Field Registration .</span> . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr> |
---|
151 | <tr><td class="lineno" valign="top"></td><td class="left"> 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right"> 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr> |
---|
152 | <tr><td class="lineno" valign="top"></td><td class="left"> 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right"> 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr> |
---|
153 | <tr><td class="lineno" valign="top"></td><td class="left"> 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right"> 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr> |
---|
154 | <tr><td class="lineno" valign="top"></td><td class="left"> 10.1. Normative References . . . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right"> 10.1. Normative References . . . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr> |
---|
155 | <tr><td class="lineno" valign="top"></td><td class="left"> 10.2. Informative References . . . . . . . . . . . . . . . . . . 20</td><td> </td><td class="right"> 10.2. Informative References . . . . . . . . . . . . . . . . . . 20</td><td class="lineno" valign="top"></td></tr> |
---|
156 | <tr><td><a name="diff0012" /></td></tr> |
---|
157 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Appendix A. <span class="delete">Compatibility with Previous Versions . . . . . . . . 20</span></td><td> </td><td class="rblock"> Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 20</td><td class="lineno" valign="top"></td></tr> |
---|
158 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> A.1.</span> Changes from RFC 2616 . . . . . . . . . . . . . . . . <span class="delete">. .</span> 20</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
159 | <tr><td class="lineno" valign="top"></td><td class="left"> Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 21</td><td> </td><td class="right"> Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 21</td><td class="lineno" valign="top"></td></tr> |
---|
160 | <tr><td class="lineno" valign="top"></td><td class="left"> Appendix C. Change Log (to be removed by RFC Editor before</td><td> </td><td class="right"> Appendix C. Change Log (to be removed by RFC Editor before</td><td class="lineno" valign="top"></td></tr> |
---|
161 | <tr><td class="lineno" valign="top"></td><td class="left"> publication) . . . . . . . . . . . . . . . . . . . . 21</td><td> </td><td class="right"> publication) . . . . . . . . . . . . . . . . . . . . 21</td><td class="lineno" valign="top"></td></tr> |
---|
162 | <tr><td class="lineno" valign="top"></td><td class="left"> C.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 21</td><td> </td><td class="right"> C.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 21</td><td class="lineno" valign="top"></td></tr> |
---|
163 | <tr><td class="lineno" valign="top"></td><td class="left"> C.2. Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 22</td><td> </td><td class="right"> C.2. Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 22</td><td class="lineno" valign="top"></td></tr> |
---|
164 | <tr><td class="lineno" valign="top"></td><td class="left"> C.3. Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 22</td><td> </td><td class="right"> C.3. Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 22</td><td class="lineno" valign="top"></td></tr> |
---|
165 | <tr><td class="lineno" valign="top"></td><td class="left"> C.4. Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 22</td><td> </td><td class="right"> C.4. Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 22</td><td class="lineno" valign="top"></td></tr> |
---|
166 | <tr><td class="lineno" valign="top"></td><td class="left"> C.5. Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 22</td><td> </td><td class="right"> C.5. Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 22</td><td class="lineno" valign="top"></td></tr> |
---|
167 | <tr><td class="lineno" valign="top"></td><td class="left"> C.6. Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 23</td><td> </td><td class="right"> C.6. Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr> |
---|
168 | <tr><td class="lineno" valign="top"></td><td class="left"> C.7. Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 23</td><td> </td><td class="right"> C.7. Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr> |
---|
169 | <tr><td class="lineno" valign="top"></td><td class="left"> C.8. Since draft-ietf-httpbis-p4-conditional-06 . . . . . . . . 23</td><td> </td><td class="right"> C.8. Since draft-ietf-httpbis-p4-conditional-06 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr> |
---|
170 | <tr><td class="lineno" valign="top"></td><td class="left"> C.9. Since draft-ietf-httpbis-p4-conditional-07 . . . . . . . . 23</td><td> </td><td class="right"> C.9. Since draft-ietf-httpbis-p4-conditional-07 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr> |
---|
171 | <tr><td class="lineno" valign="top"></td><td class="left"> C.10. Since draft-ietf-httpbis-p4-conditional-08 . . . . . . . . 23</td><td> </td><td class="right"> C.10. Since draft-ietf-httpbis-p4-conditional-08 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr> |
---|
172 | <tr><td class="lineno" valign="top"></td><td class="left"> C.11. Since draft-ietf-httpbis-p4-conditional-09 . . . . . . . . 23</td><td> </td><td class="right"> C.11. Since draft-ietf-httpbis-p4-conditional-09 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr> |
---|
173 | <tr><td><a name="diff0013" /></td></tr> |
---|
174 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> C.12. Since draft-ietf-httpbis-p4-conditional-10 . . . . . . . . 24</span></td><td class="lineno" valign="top"></td></tr> |
---|
175 | <tr><td class="lineno" valign="top"></td><td class="left"> Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24</td><td> </td><td class="right"> Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24</td><td class="lineno" valign="top"></td></tr> |
---|
176 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
177 | <tr><td class="lineno" valign="top"></td><td class="left">1. Introduction</td><td> </td><td class="right">1. Introduction</td><td class="lineno" valign="top"></td></tr> |
---|
178 | <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 | <tr><td class="lineno" valign="top"></td><td class="left"> This document defines HTTP/1.1 response metadata for indicating</td><td> </td><td class="right"> This document defines HTTP/1.1 response metadata for indicating</td><td class="lineno" valign="top"></td></tr> |
---|
180 | <tr><td class="lineno" valign="top"></td><td class="left"> potential changes to payload content, including modification time</td><td> </td><td class="right"> potential changes to payload content, including modification time</td><td class="lineno" valign="top"></td></tr> |
---|
181 | <tr><td class="lineno" valign="top"></td><td class="left"> stamps and opaque entity-tags, and the HTTP conditional request</td><td> </td><td class="right"> stamps and opaque entity-tags, and the HTTP conditional request</td><td class="lineno" valign="top"></td></tr> |
---|
182 | <tr><td class="lineno" valign="top"></td><td class="left"> mechanisms that allow preconditions to be placed on a request method.</td><td> </td><td class="right"> mechanisms that allow preconditions to be placed on a request method.</td><td class="lineno" valign="top"></td></tr> |
---|
183 | <tr><td class="lineno" valign="top"></td><td class="left"> Conditional GET requests allow for efficient cache updates. Other</td><td> </td><td class="right"> Conditional GET requests allow for efficient cache updates. Other</td><td class="lineno" valign="top"></td></tr> |
---|
184 | <tr><td class="lineno" valign="top"></td><td class="left"> conditional request methods are used to protect against overwriting</td><td> </td><td class="right"> conditional request methods are used to protect against overwriting</td><td class="lineno" valign="top"></td></tr> |
---|
185 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
186 | <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 5, line 21</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 5, line 21</em></th><td></td></tr> |
---|
187 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
188 | <tr><td class="lineno" valign="top"></td><td class="left"> quoted-string = <quoted-string, defined in [Part1], Section 1.2.2></td><td> </td><td class="right"> quoted-string = <quoted-string, defined in [Part1], Section 1.2.2></td><td class="lineno" valign="top"></td></tr> |
---|
189 | <tr><td class="lineno" valign="top"></td><td class="left"> OWS = <OWS, defined in [Part1], Section 1.2.2></td><td> </td><td class="right"> OWS = <OWS, defined in [Part1], Section 1.2.2></td><td class="lineno" valign="top"></td></tr> |
---|
190 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
191 | <tr><td class="lineno" valign="top"></td><td class="left">1.2.2. ABNF Rules defined in other Parts of the Specification</td><td> </td><td class="right">1.2.2. ABNF Rules defined in other Parts of the Specification</td><td class="lineno" valign="top"></td></tr> |
---|
192 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
193 | <tr><td class="lineno" valign="top"></td><td class="left"> The ABNF rules below are defined in other parts:</td><td> </td><td class="right"> The ABNF rules below are defined in other parts:</td><td class="lineno" valign="top"></td></tr> |
---|
194 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
195 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP-date = <HTTP-date, defined in [Part1], Section 6.1></td><td> </td><td class="right"> HTTP-date = <HTTP-date, defined in [Part1], Section 6.1></td><td class="lineno" valign="top"></td></tr> |
---|
196 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
197 | <tr><td><a name="diff0014" /></td></tr> |
---|
198 | <tr><td class="lineno" valign="top"></td><td class="lblock">2. Entity<span class="delete"> </span>Tags</td><td> </td><td class="rblock">2. Entity<span class="insert">-</span>Tags</td><td class="lineno" valign="top"></td></tr> |
---|
199 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
200 | <tr><td><a name="diff0015" /></td></tr> |
---|
201 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Entity tags</span> are used for comparing two or more <span class="delete">entities from</span> the same</td><td> </td><td class="rblock"> <span class="insert">Entity-tags</span> are used for comparing two or more <span class="insert">representations of</span> the</td><td class="lineno" valign="top"></td></tr> |
---|
202 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">requested</span> resource. HTTP/1.1 uses <span class="delete">entity tags</span> in the ETag</td><td> </td><td class="rblock"> same resource. HTTP/1.1 uses <span class="insert">entity-tags</span> in the ETag (Section 6.1),</td><td class="lineno" valign="top"></td></tr> |
---|
203 | <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section 6.1), If-Match (Section 6.2), If-None-Match (Section 6.4),</td><td> </td><td class="rblock"> If-Match (Section 6.2), If-None-Match (Section 6.4), and If-Range</td><td class="lineno" valign="top"></td></tr> |
---|
204 | <tr><td class="lineno" valign="top"></td><td class="lblock"> and If-Range (Section 5.3 of [Part5]) header fields. The definition</td><td> </td><td class="rblock"> (Section 5.3 of [Part5]) header fields. The definition of how they</td><td class="lineno" valign="top"></td></tr> |
---|
205 | <tr><td class="lineno" valign="top"></td><td class="lblock"> of how they are used and compared as cache validators is in</td><td> </td><td class="rblock"> are used and compared as cache validators is in Section 4. An</td><td class="lineno" valign="top"></td></tr> |
---|
206 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Section 4. An <span class="delete">entity tag</span> consists of an opaque quoted string,</td><td> </td><td class="rblock"> <span class="insert">entity-tag</span> consists of an opaque quoted string, possibly prefixed by</td><td class="lineno" valign="top"></td></tr> |
---|
207 | <tr><td class="lineno" valign="top"></td><td class="lblock"> possibly prefixed by a weakness indicator.</td><td> </td><td class="rblock"> a weakness indicator.</td><td class="lineno" valign="top"></td></tr> |
---|
208 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
209 | <tr><td class="lineno" valign="top"></td><td class="left"> entity-tag = [ weak ] opaque-tag</td><td> </td><td class="right"> entity-tag = [ weak ] opaque-tag</td><td class="lineno" valign="top"></td></tr> |
---|
210 | <tr><td class="lineno" valign="top"></td><td class="left"> weak = %x57.2F ; "W/", case-sensitive</td><td> </td><td class="right"> weak = %x57.2F ; "W/", case-sensitive</td><td class="lineno" valign="top"></td></tr> |
---|
211 | <tr><td class="lineno" valign="top"></td><td class="left"> opaque-tag = quoted-string</td><td> </td><td class="right"> opaque-tag = quoted-string</td><td class="lineno" valign="top"></td></tr> |
---|
212 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
213 | <tr><td><a name="diff0016" /></td></tr> |
---|
214 | <tr><td class="lineno" valign="top"></td><td class="lblock"> A "strong <span class="delete">entity tag"</span> MAY be shared by two <span class="delete">entities</span> of a resource</td><td> </td><td class="rblock"> A "strong <span class="insert">entity-tag"</span> MAY be shared by two <span class="insert">representations</span> of a</td><td class="lineno" valign="top"></td></tr> |
---|
215 | <tr><td class="lineno" valign="top"></td><td class="lblock"> only if they are equivalent by octet equality.</td><td> </td><td class="rblock"> resource only if they are equivalent by octet equality.</td><td class="lineno" valign="top"></td></tr> |
---|
216 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
217 | <tr><td><a name="diff0017" /></td></tr> |
---|
218 | <tr><td class="lineno" valign="top"></td><td class="lblock"> A "weak <span class="delete">entity tag,"</span> indicated by the "W/" prefix, MAY be shared by</td><td> </td><td class="rblock"> A "weak <span class="insert">entity-tag",</span> indicated by the "W/" prefix, MAY be shared by</td><td class="lineno" valign="top"></td></tr> |
---|
219 | <tr><td class="lineno" valign="top"></td><td class="lblock"> two <span class="delete">entities</span> of a resource only if the <span class="delete">entities</span> are equivalent and</td><td> </td><td class="rblock"> two <span class="insert">representations</span> of a resource only if the <span class="insert">representations</span> are</td><td class="lineno" valign="top"></td></tr> |
---|
220 | <tr><td class="lineno" valign="top"></td><td class="lblock"> could be substituted for each other with no significant change in</td><td> </td><td class="rblock"> equivalent and could be substituted for each other with no</td><td class="lineno" valign="top"></td></tr> |
---|
221 | <tr><td class="lineno" valign="top"></td><td class="lblock"> semantics. A weak <span class="delete">entity tag</span> can only be used for weak comparison.</td><td> </td><td class="rblock"> significant change in semantics. A weak <span class="insert">entity-tag</span> can only be used</td><td class="lineno" valign="top"></td></tr> |
---|
222 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> for weak comparison.</td><td class="lineno" valign="top"></td></tr> |
---|
223 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
224 | <tr><td><a name="diff0018" /></td></tr> |
---|
225 | <tr><td class="lineno" valign="top"></td><td class="lblock"> An <span class="delete">entity tag</span> MUST be unique across all versions of all <span class="delete">entities</span></td><td> </td><td class="rblock"> An <span class="insert">entity-tag</span> MUST be unique across all versions of all</td><td class="lineno" valign="top"></td></tr> |
---|
226 | <tr><td class="lineno" valign="top"></td><td class="lblock"> associated with a particular resource. A given <span class="delete">entity tag</span> value MAY</td><td> </td><td class="rblock"> <span class="insert">representations</span> associated with a particular resource. A given</td><td class="lineno" valign="top"></td></tr> |
---|
227 | <tr><td class="lineno" valign="top"></td><td class="lblock"> be used for <span class="delete">entities</span> obtained by requests on different URIs. The use</td><td> </td><td class="rblock"> <span class="insert">entity-tag</span> value MAY be used for <span class="insert">representations</span> obtained by requests</td><td class="lineno" valign="top"></td></tr> |
---|
228 | <tr><td class="lineno" valign="top"></td><td class="lblock"> of the same <span class="delete">entity tag</span> value in conjunction with <span class="delete">entities</span> obtained by</td><td> </td><td class="rblock"> on different URIs. The use of the same <span class="insert">entity-tag</span> value in</td><td class="lineno" valign="top"></td></tr> |
---|
229 | <tr><td class="lineno" valign="top"></td><td class="lblock"> requests on different URIs does not imply the equivalence of those</td><td> </td><td class="rblock"> conjunction with <span class="insert">representations</span> obtained by requests on different</td><td class="lineno" valign="top"></td></tr> |
---|
230 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">entities.</span></td><td> </td><td class="rblock"> URIs does not imply the equivalence of those <span class="insert">representations.</span></td><td class="lineno" valign="top"></td></tr> |
---|
231 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
232 | <tr><td><a name="diff0019" /></td></tr> |
---|
233 | <tr><td class="lineno" valign="top"></td><td class="lblock">2.1. Example: Entity<span class="delete"> T</span>ags varying on Content-Negotiated Resources</td><td> </td><td class="rblock">2.1. Example: Entity<span class="insert">-t</span>ags varying on Content-Negotiated Resources</td><td class="lineno" valign="top"></td></tr> |
---|
234 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
235 | <tr><td><a name="diff0020" /></td></tr> |
---|
236 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Consider a resource that is subject to content negotiation (Section <span class="delete">4</span></td><td> </td><td class="rblock"> Consider a resource that is subject to content negotiation (Section <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> |
---|
237 | <tr><td class="lineno" valign="top"></td><td class="left"> of [Part3]), and where the representations returned upon a GET</td><td> </td><td class="right"> of [Part3]), and where the representations returned upon a GET</td><td class="lineno" valign="top"></td></tr> |
---|
238 | <tr><td class="lineno" valign="top"></td><td class="left"> request vary based on the Accept-Encoding request header field</td><td> </td><td class="right"> request vary based on the Accept-Encoding request header field</td><td class="lineno" valign="top"></td></tr> |
---|
239 | <tr><td><a name="diff0021" /></td></tr> |
---|
240 | <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">5</span>.3 of [Part3]):</td><td> </td><td class="rblock"> (Section <span class="insert">6</span>.3 of [Part3]):</td><td class="lineno" valign="top"></td></tr> |
---|
241 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
242 | <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> |
---|
243 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
244 | <tr><td class="lineno" valign="top"></td><td class="left"> GET /index HTTP/1.1</td><td> </td><td class="right"> GET /index HTTP/1.1</td><td class="lineno" valign="top"></td></tr> |
---|
245 | <tr><td class="lineno" valign="top"></td><td class="left"> Host: www.example.com</td><td> </td><td class="right"> Host: www.example.com</td><td class="lineno" valign="top"></td></tr> |
---|
246 | <tr><td class="lineno" valign="top"></td><td class="left"> Accept-Encoding: gzip</td><td> </td><td class="right"> Accept-Encoding: gzip</td><td class="lineno" valign="top"></td></tr> |
---|
247 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
248 | <tr><td><a name="diff0022" /></td></tr> |
---|
249 | <tr><td class="lineno" valign="top"></td><td class="lblock"> In this case, the response <span class="delete">may</span> use the gzip <span class="delete">Content Coding or not.</span></td><td> </td><td class="rblock"> In this case, the response <span class="insert">might or might not</span> use the gzip <span class="insert">content</span></td><td class="lineno" valign="top"></td></tr> |
---|
250 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If it <span class="delete">does, it</span> might look <span class="delete">like that:</span></td><td> </td><td class="rblock"><span class="insert"> coding.</span> If it <span class="insert">does not, the response</span> might look <span class="insert">like:</span></td><td class="lineno" valign="top"></td></tr> |
---|
251 | <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 class="lineno" valign="top"></td><td class="left"> >> Response:</td><td> </td><td class="right"> >> Response:</td><td class="lineno" valign="top"></td></tr> |
---|
253 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
254 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.1 200 OK</td><td> </td><td class="right"> HTTP/1.1 200 OK</td><td class="lineno" valign="top"></td></tr> |
---|
255 | <tr><td class="lineno" valign="top"></td><td class="left"> Date: Thu, 26 Mar 2010 00:05:00 GMT</td><td> </td><td class="right"> Date: Thu, 26 Mar 2010 00:05:00 GMT</td><td class="lineno" valign="top"></td></tr> |
---|
256 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag: "123-a"</td><td> </td><td class="right"> ETag: "123-a"</td><td class="lineno" valign="top"></td></tr> |
---|
257 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Length: 70</td><td> </td><td class="right"> Content-Length: 70</td><td class="lineno" valign="top"></td></tr> |
---|
258 | <tr><td class="lineno" valign="top"></td><td class="left"> Vary: Accept-Encoding</td><td> </td><td class="right"> Vary: Accept-Encoding</td><td class="lineno" valign="top"></td></tr> |
---|
259 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Type: text/plain</td><td> </td><td class="right"> Content-Type: text/plain</td><td class="lineno" valign="top"></td></tr> |
---|
260 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
261 | <tr><td class="lineno" valign="top"></td><td class="left"> Hello World!</td><td> </td><td class="right"> Hello World!</td><td class="lineno" valign="top"></td></tr> |
---|
262 | <tr><td class="lineno" valign="top"></td><td class="left"> Hello World!</td><td> </td><td class="right"> Hello World!</td><td class="lineno" valign="top"></td></tr> |
---|
263 | <tr><td class="lineno" valign="top"></td><td class="left"> Hello World!</td><td> </td><td class="right"> Hello World!</td><td class="lineno" valign="top"></td></tr> |
---|
264 | <tr><td class="lineno" valign="top"></td><td class="left"> Hello World!</td><td> </td><td class="right"> Hello World!</td><td class="lineno" valign="top"></td></tr> |
---|
265 | <tr><td class="lineno" valign="top"></td><td class="left"> Hello World!</td><td> </td><td class="right"> Hello World!</td><td class="lineno" valign="top"></td></tr> |
---|
266 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
267 | <tr><td><a name="diff0023" /></td></tr> |
---|
268 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">A variant</span> that does use gzip <span class="delete">Content Coding</span> would be:</td><td> </td><td class="rblock"> <span class="insert">An alternative representation</span> that does use gzip <span class="insert">content coding</span> would</td><td class="lineno" valign="top"></td></tr> |
---|
269 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> be:</td><td class="lineno" valign="top"></td></tr> |
---|
270 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
271 | <tr><td class="lineno" valign="top"></td><td class="left"> >> Response:</td><td> </td><td class="right"> >> Response:</td><td class="lineno" valign="top"></td></tr> |
---|
272 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
273 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.1 200 OK</td><td> </td><td class="right"> HTTP/1.1 200 OK</td><td class="lineno" valign="top"></td></tr> |
---|
274 | <tr><td class="lineno" valign="top"></td><td class="left"> Date: Thu, 26 Mar 2010 00:05:00 GMT</td><td> </td><td class="right"> Date: Thu, 26 Mar 2010 00:05:00 GMT</td><td class="lineno" valign="top"></td></tr> |
---|
275 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag: "123-b"</td><td> </td><td class="right"> ETag: "123-b"</td><td class="lineno" valign="top"></td></tr> |
---|
276 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Length: 43</td><td> </td><td class="right"> Content-Length: 43</td><td class="lineno" valign="top"></td></tr> |
---|
277 | <tr><td class="lineno" valign="top"></td><td class="left"> Vary: Accept-Encoding</td><td> </td><td class="right"> Vary: Accept-Encoding</td><td class="lineno" valign="top"></td></tr> |
---|
278 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Type: text/plain</td><td> </td><td class="right"> Content-Type: text/plain</td><td class="lineno" valign="top"></td></tr> |
---|
279 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Encoding: gzip</td><td> </td><td class="right"> Content-Encoding: gzip</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
281 | <tr><td class="lineno" valign="top"></td><td class="left"> ...binary data...</td><td> </td><td class="right"> ...binary data...</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
283 | <tr><td><a name="diff0024" /></td></tr> |
---|
284 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Note: Content <span class="delete">Codings</span> are a property of the <span class="delete">response entity, thus</span></td><td> </td><td class="rblock"> Note: Content <span class="insert">codings</span> are a property of the <span class="insert">representation, so</span></td><td class="lineno" valign="top"></td></tr> |
---|
285 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> affect the Entity Tag. An alternative are Transfer Codings</span></td><td> </td><td class="rblock"><span class="insert"> therefore an entity-tag of an encoded representation must be</span></td><td class="lineno" valign="top"></td></tr> |
---|
286 | <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section 6.2 of [Part1]) <span class="delete">which</span> apply only <span class="delete">to the</span> transfer <span class="delete">of the</span></td><td> </td><td class="rblock"><span class="insert"> distinct from an unencoded representation to prevent conflicts</span></td><td class="lineno" valign="top"></td></tr> |
---|
287 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> message,</span> and <span class="delete">thus</span> do not require <span class="delete">assigning</span> distinct <span class="delete">entity tags.</span></td><td> </td><td class="rblock"><span class="insert"> during cache updates and range requests. In contrast, transfer</span></td><td class="lineno" valign="top"></td></tr> |
---|
288 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> codings</span> (Section 6.2 of [Part1]) apply only <span class="insert">during message</span></td><td class="lineno" valign="top"></td></tr> |
---|
289 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> transfer and do not require distinct <span class="insert">entity-tags.</span></td><td class="lineno" valign="top"></td></tr> |
---|
290 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
291 | <tr><td class="lineno" valign="top"></td><td class="left">3. Status Code Definitions</td><td> </td><td class="right">3. Status Code Definitions</td><td class="lineno" valign="top"></td></tr> |
---|
292 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
293 | <tr><td class="lineno" valign="top"></td><td class="left">3.1. 304 Not Modified</td><td> </td><td class="right">3.1. 304 Not Modified</td><td class="lineno" valign="top"></td></tr> |
---|
294 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
295 | <tr><td class="lineno" valign="top"></td><td class="left"> If the client has performed a conditional GET request and access is</td><td> </td><td class="right"> If the client has performed a conditional GET request and access is</td><td class="lineno" valign="top"></td></tr> |
---|
296 | <tr><td class="lineno" valign="top"></td><td class="left"> allowed, but the document has not been modified, the server SHOULD</td><td> </td><td class="right"> allowed, but the document has not been modified, the server SHOULD</td><td class="lineno" valign="top"></td></tr> |
---|
297 | <tr><td class="lineno" valign="top"></td><td class="left"> respond with this status code. The 304 response MUST NOT contain a</td><td> </td><td class="right"> respond with this status code. The 304 response MUST NOT contain a</td><td class="lineno" valign="top"></td></tr> |
---|
298 | <tr><td class="lineno" valign="top"></td><td class="left"> message-body, and thus is always terminated by the first empty line</td><td> </td><td class="right"> message-body, and thus is always terminated by the first empty line</td><td class="lineno" valign="top"></td></tr> |
---|
299 | <tr><td class="lineno" valign="top"></td><td class="left"> after the header fields.</td><td> </td><td class="right"> after the header fields.</td><td class="lineno" valign="top"></td></tr> |
---|
300 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
301 | <tr><td><a name="diff0025" /></td></tr> |
---|
302 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The</span> response MUST include <span class="delete">the following</span> header <span class="delete">fields:</span></td><td> </td><td class="rblock"> <span class="insert">A 304</span> response MUST include <span class="insert">a Date</span> header <span class="insert">field (Section 9.3 of</span></td><td class="lineno" valign="top"></td></tr> |
---|
303 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert"> [Part1])</span> unless its omission is required by Section 9.3.1 of [Part1].</td><td class="lineno" valign="top"></td></tr> |
---|
304 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> o Date,</span> unless its omission is required by Section 9.3.1 of [Part1].</td><td> </td><td class="rblock"> If a 200 response to the same <span class="insert">request would have included any of the</span></td><td class="lineno" valign="top"></td></tr> |
---|
305 | <tr><td class="lineno" valign="top"></td><td class="lblock"> </td><td> </td><td class="rblock"><span class="insert"> header fields</span> Cache-Control, <span class="insert">Content-Location, ETag, Expires, Last-</span></td><td class="lineno" valign="top"></td></tr> |
---|
306 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If a <span class="delete">clockless origin server obeys these rules, and proxies and</span></td><td> </td><td class="rblock"><span class="insert"> Modified, or</span> Vary, <span class="insert">then those same header fields MUST be</span> sent in <span class="insert">a</span></td><td class="lineno" valign="top"></td></tr> |
---|
307 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> clients add their own Date to any response received without one</span></td><td> </td><td class="rblock"><span class="insert"> 304 response.</span></td><td class="lineno" valign="top"></td></tr> |
---|
308 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> (as already specified by Section 9.3 of [Part1], caches will</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
309 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> operate correctly.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
310 | <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> |
---|
311 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> o ETag and/or Content-Location, if the header would have been sent</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
312 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> in a</span> 200 response to the same <span class="delete">request.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
313 | <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> |
---|
314 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> o Expires,</span> Cache-Control, <span class="delete">and/or</span> Vary, <span class="delete">if the field-value might</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
315 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> differ from that</span> sent in <span class="delete">any previous response for the same</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
316 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> variant.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
317 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
318 | <tr><td><a name="diff0026" /></td></tr> |
---|
319 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">If</span> the <span class="delete">conditional GET used</span> a <span class="delete">strong cache validator (see Section 4),</span></td><td> </td><td class="rblock"> <span class="insert">Since</span> the <span class="insert">goal of</span> a <span class="insert">304 response is to minimize information transfer</span></td><td class="lineno" valign="top"></td></tr> |
---|
320 | <tr><td class="lineno" valign="top"></td><td class="lblock"> the response SHOULD NOT include other <span class="delete">entity-headers. Otherwise</span></td><td> </td><td class="rblock"><span class="insert"> when the recipient already has one or more cached representations,</span></td><td class="lineno" valign="top"></td></tr> |
---|
321 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> (i.e.,</span> the <span class="delete">conditional GET used a weak validator),</span> the <span class="delete">response MUST</span></td><td> </td><td class="rblock"> the response SHOULD NOT include <span class="insert">representation metadata</span> other <span class="insert">than</span></td><td class="lineno" valign="top"></td></tr> |
---|
322 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> NOT include other entity-headers; this prevents inconsistencies</span></td><td> </td><td class="rblock"> the <span class="insert">above listed fields unless said metadata exists for</span> the <span class="insert">purpose</span></td><td class="lineno" valign="top"></td></tr> |
---|
323 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> between cached entity-bodies and updated headers.</span></td><td> </td><td class="rblock"><span class="insert"> of guiding cache updates (e.g., future HTTP extensions).</span></td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
325 | <tr><td><a name="diff0027" /></td></tr> |
---|
326 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If a 304 response <span class="delete">indicates</span> an <span class="delete">entity</span> not currently cached, then the</td><td> </td><td class="rblock"> If a 304 response <span class="insert">includes</span> an <span class="insert">entity-tag that indicates a</span></td><td class="lineno" valign="top"></td></tr> |
---|
327 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">cache</span> MUST disregard the response and repeat the request without the</td><td> </td><td class="rblock"><span class="insert"> representation</span> not currently cached, then the <span class="insert">recipient</span> MUST <span class="insert">NOT use</span></td><td class="lineno" valign="top"></td></tr> |
---|
328 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> the 304 to update its own cache. If that conditional request</span></td><td class="lineno" valign="top"></td></tr> |
---|
329 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> originated with an outbound client, such as a user agent with its own</span></td><td class="lineno" valign="top"></td></tr> |
---|
330 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> cache sending a conditional GET to a shared proxy, then the 304</span></td><td class="lineno" valign="top"></td></tr> |
---|
331 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> response MAY be forwarded to the outbound client. Otherwise,</span></td><td class="lineno" valign="top"></td></tr> |
---|
332 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> disregard the response and repeat the request without the</td><td class="lineno" valign="top"></td></tr> |
---|
333 | <tr><td class="lineno" valign="top"></td><td class="left"> conditional.</td><td> </td><td class="right"> conditional.</td><td class="lineno" valign="top"></td></tr> |
---|
334 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
335 | <tr><td class="lineno" valign="top"></td><td class="left"> If a cache uses a received 304 response to update a cache entry, the</td><td> </td><td class="right"> If a cache uses a received 304 response to update a cache entry, the</td><td class="lineno" valign="top"></td></tr> |
---|
336 | <tr><td class="lineno" valign="top"></td><td class="left"> cache MUST update the entry to reflect any new field values given in</td><td> </td><td class="right"> cache MUST update the entry to reflect any new field values given in</td><td class="lineno" valign="top"></td></tr> |
---|
337 | <tr><td class="lineno" valign="top"></td><td class="left"> the response.</td><td> </td><td class="right"> the response.</td><td class="lineno" valign="top"></td></tr> |
---|
338 | <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 class="lineno" valign="top"></td><td class="left">3.2. 412 Precondition Failed</td><td> </td><td class="right">3.2. 412 Precondition Failed</td><td class="lineno" valign="top"></td></tr> |
---|
340 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
341 | <tr><td class="lineno" valign="top"></td><td class="left"> The precondition given in one or more of the request-header fields</td><td> </td><td class="right"> The precondition given in one or more of the request-header fields</td><td class="lineno" valign="top"></td></tr> |
---|
342 | <tr><td class="lineno" valign="top"></td><td class="left"> evaluated to false when it was tested on the server. This response</td><td> </td><td class="right"> evaluated to false when it was tested on the server. This response</td><td class="lineno" valign="top"></td></tr> |
---|
343 | <tr><td class="lineno" valign="top"></td><td class="left"> code allows the client to place preconditions on the current resource</td><td> </td><td class="right"> code allows the client to place preconditions on the current resource</td><td class="lineno" valign="top"></td></tr> |
---|
344 | <tr><td><a name="diff0028" /></td></tr> |
---|
345 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">metainformation</span> (header field data) and thus prevent the requested</td><td> </td><td class="rblock"> <span class="insert">metadata</span> (header field data) and thus prevent the requested method</td><td class="lineno" valign="top"></td></tr> |
---|
346 | <tr><td class="lineno" valign="top"></td><td class="lblock"> method from being applied to a resource other than the one intended.</td><td> </td><td class="rblock"> from being applied to a resource other than the one intended.</td><td class="lineno" valign="top"></td></tr> |
---|
347 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
348 | <tr><td class="lineno" valign="top"></td><td class="left">4. Weak and Strong Validators</td><td> </td><td class="right">4. Weak and Strong Validators</td><td class="lineno" valign="top"></td></tr> |
---|
349 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
350 | <tr><td class="lineno" valign="top"></td><td class="left"> Since both origin servers and caches will compare two validators to</td><td> </td><td class="right"> Since both origin servers and caches will compare two validators to</td><td class="lineno" valign="top"></td></tr> |
---|
351 | <tr><td><a name="diff0029" /></td></tr> |
---|
352 | <tr><td class="lineno" valign="top"></td><td class="lblock"> decide if they represent the same or different <span class="delete">entities,</span> one normally</td><td> </td><td class="rblock"> decide if they represent the same or different <span class="insert">representations,</span> one</td><td class="lineno" valign="top"></td></tr> |
---|
353 | <tr><td class="lineno" valign="top"></td><td class="lblock"> would expect that if the <span class="delete">entity (the entity-body or any entity-</span></td><td> </td><td class="rblock"> normally would expect that if the <span class="insert">representation (including both</span></td><td class="lineno" valign="top"></td></tr> |
---|
354 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> headers)</span> changes in any way, then the associated validator would</td><td> </td><td class="rblock"><span class="insert"> representation header fields and representation body)</span> changes in any</td><td class="lineno" valign="top"></td></tr> |
---|
355 | <tr><td class="lineno" valign="top"></td><td class="lblock"> change as well. If this is true, then we call this validator a</td><td> </td><td class="rblock"> way, then the associated validator would change as well. If this is</td><td class="lineno" valign="top"></td></tr> |
---|
356 | <tr><td class="lineno" valign="top"></td><td class="lblock"> "strong <span class="delete">validator."</span></td><td> </td><td class="rblock"> true, then we call this validator a "strong <span class="insert">validator".</span></td><td class="lineno" valign="top"></td></tr> |
---|
357 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
358 | <tr><td class="lineno" valign="top"></td><td class="left"> However, there might be cases when a server prefers to change the</td><td> </td><td class="right"> However, there might be cases when a server prefers to change the</td><td class="lineno" valign="top"></td></tr> |
---|
359 | <tr><td class="lineno" valign="top"></td><td class="left"> validator only on semantically significant changes, and not when</td><td> </td><td class="right"> validator only on semantically significant changes, and not when</td><td class="lineno" valign="top"></td></tr> |
---|
360 | <tr><td><a name="diff0030" /></td></tr> |
---|
361 | <tr><td class="lineno" valign="top"></td><td class="lblock"> insignificant aspects of the <span class="delete">entity</span> change. A validator that does</td><td> </td><td class="rblock"> insignificant aspects of the <span class="insert">representation</span> change. A validator that</td><td class="lineno" valign="top"></td></tr> |
---|
362 | <tr><td class="lineno" valign="top"></td><td class="lblock"> not always change when the <span class="delete">resource</span> changes is a "weak <span class="delete">validator."</span></td><td> </td><td class="rblock"> does not always change when the <span class="insert">representation</span> changes is a "weak</td><td class="lineno" valign="top"></td></tr> |
---|
363 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">validator".</span></td><td class="lineno" valign="top"></td></tr> |
---|
364 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
365 | <tr><td><a name="diff0031" /></td></tr> |
---|
366 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Entity tags are</span> normally <span class="delete">"strong validators,"</span> but the protocol</td><td> </td><td class="rblock"> <span class="insert">An entity-tag is</span> normally <span class="insert">a strong validator,</span> but the protocol</td><td class="lineno" valign="top"></td></tr> |
---|
367 | <tr><td class="lineno" valign="top"></td><td class="lblock"> provides a mechanism to tag an <span class="delete">entity tag</span> as <span class="delete">"weak."</span> One can think</td><td> </td><td class="rblock"> provides a mechanism to tag an <span class="insert">entity-tag</span> as <span class="insert">"weak".</span> One can think</td><td class="lineno" valign="top"></td></tr> |
---|
368 | <tr><td class="lineno" valign="top"></td><td class="lblock"> of a strong validator as one that changes whenever the <span class="delete">bits</span> of <span class="delete">an</span></td><td> </td><td class="rblock"> of a strong validator as one that changes whenever the <span class="insert">sequence</span> of</td><td class="lineno" valign="top"></td></tr> |
---|
369 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> entity</span> changes, while a weak value changes whenever the meaning of <span class="delete">an</span></td><td> </td><td class="rblock"> <span class="insert">bits in a representation</span> changes, while a weak value changes whenever</td><td class="lineno" valign="top"></td></tr> |
---|
370 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> entity</span> changes. Alternatively, one can think of a strong validator</td><td> </td><td class="rblock"> the meaning of <span class="insert">a representation</span> changes. Alternatively, one can</td><td class="lineno" valign="top"></td></tr> |
---|
371 | <tr><td class="lineno" valign="top"></td><td class="lblock"> as part of an identifier for a specific <span class="delete">entity, while</span> a weak</td><td> </td><td class="rblock"> think of a strong validator as part of an identifier for a specific</td><td class="lineno" valign="top"></td></tr> |
---|
372 | <tr><td class="lineno" valign="top"></td><td class="lblock"> validator is part of an identifier for a set of semantically</td><td> </td><td class="rblock"> <span class="insert">representation, whereas</span> a weak validator is part of an identifier for</td><td class="lineno" valign="top"></td></tr> |
---|
373 | <tr><td class="lineno" valign="top"></td><td class="lblock"> equivalent <span class="delete">entities.</span></td><td> </td><td class="rblock"> a set of semantically equivalent <span class="insert">representations.</span></td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
375 | <tr><td class="lineno" valign="top"></td><td class="left"> Note: One example of a strong validator is an integer that is</td><td> </td><td class="right"> Note: One example of a strong validator is an integer that is</td><td class="lineno" valign="top"></td></tr> |
---|
376 | <tr><td><a name="diff0032" /></td></tr> |
---|
377 | <tr><td class="lineno" valign="top"></td><td class="lblock"> incremented in stable storage every time <span class="delete">an entity</span> is changed.</td><td> </td><td class="rblock"> incremented in stable storage every time <span class="insert">a representation</span> is</td><td class="lineno" valign="top"></td></tr> |
---|
378 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> changed.</td><td class="lineno" valign="top"></td></tr> |
---|
379 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
380 | <tr><td><a name="diff0033" /></td></tr> |
---|
381 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">An entity's</span> modification time, if <span class="delete">represented</span> with <span class="delete">one-second</span></td><td> </td><td class="rblock"> <span class="insert">A representation's</span> modification time, if <span class="insert">defined</span> with <span class="insert">only one-</span></td><td class="lineno" valign="top"></td></tr> |
---|
382 | <tr><td class="lineno" valign="top"></td><td class="lblock"> resolution, could be a weak validator, since it is possible that</td><td> </td><td class="rblock"><span class="insert"> second</span> resolution, could be a weak validator, since it is possible</td><td class="lineno" valign="top"></td></tr> |
---|
383 | <tr><td class="lineno" valign="top"></td><td class="lblock"> the <span class="delete">resource</span> might be modified twice during a single second.</td><td> </td><td class="rblock"> that the <span class="insert">representation</span> might be modified twice during a single</td><td class="lineno" valign="top"></td></tr> |
---|
384 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> second.</td><td class="lineno" valign="top"></td></tr> |
---|
385 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
386 | <tr><td class="lineno" valign="top"></td><td class="left"> Support for weak validators is optional. However, weak validators</td><td> </td><td class="right"> Support for weak validators is optional. However, weak validators</td><td class="lineno" valign="top"></td></tr> |
---|
387 | <tr><td class="lineno" valign="top"></td><td class="left"> allow for more efficient caching of equivalent objects; for</td><td> </td><td class="right"> allow for more efficient caching of equivalent objects; for</td><td class="lineno" valign="top"></td></tr> |
---|
388 | <tr><td class="lineno" valign="top"></td><td class="left"> example, a hit counter on a site is probably good enough if it is</td><td> </td><td class="right"> example, a hit counter on a site is probably good enough if it is</td><td class="lineno" valign="top"></td></tr> |
---|
389 | <tr><td class="lineno" valign="top"></td><td class="left"> updated every few days or weeks, and any value during that period</td><td> </td><td class="right"> updated every few days or weeks, and any value during that period</td><td class="lineno" valign="top"></td></tr> |
---|
390 | <tr><td class="lineno" valign="top"></td><td class="left"> is likely "good enough" to be equivalent.</td><td> </td><td class="right"> is likely "good enough" to be equivalent.</td><td class="lineno" valign="top"></td></tr> |
---|
391 | <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 class="lineno" valign="top"></td><td class="left"> A "use" of a validator is either when a client generates a request</td><td> </td><td class="right"> A "use" of a validator is either when a client generates a request</td><td class="lineno" valign="top"></td></tr> |
---|
393 | <tr><td class="lineno" valign="top"></td><td class="left"> and includes the validator in a validating header field, or when a</td><td> </td><td class="right"> and includes the validator in a validating header field, or when a</td><td class="lineno" valign="top"></td></tr> |
---|
394 | <tr><td class="lineno" valign="top"></td><td class="left"> server compares two validators.</td><td> </td><td class="right"> server compares two validators.</td><td class="lineno" valign="top"></td></tr> |
---|
395 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
396 | <tr><td class="lineno" valign="top"></td><td class="left"> Strong validators are usable in any context. Weak validators are</td><td> </td><td class="right"> Strong validators are usable in any context. Weak validators are</td><td class="lineno" valign="top"></td></tr> |
---|
397 | <tr><td><a name="diff0034" /></td></tr> |
---|
398 | <tr><td class="lineno" valign="top"></td><td class="lblock"> only usable in contexts that do not depend on exact equality of <span class="delete">an</span></td><td> </td><td class="rblock"> only usable in contexts that do not depend on exact equality of <span class="insert">a</span></td><td class="lineno" valign="top"></td></tr> |
---|
399 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> entity.</span> For example, either kind is usable for a conditional <span class="delete">GET of</span></td><td> </td><td class="rblock"><span class="insert"> representation.</span> For example, either kind is usable for a <span class="insert">normal</span></td><td class="lineno" valign="top"></td></tr> |
---|
400 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> a full entity.</span> However, only a strong validator is usable for a <span class="delete">sub-</span></td><td> </td><td class="rblock"> conditional <span class="insert">GET.</span> However, only a strong validator is usable for a</td><td class="lineno" valign="top"></td></tr> |
---|
401 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> range</span> retrieval, since otherwise the client might end up with an</td><td> </td><td class="rblock"> <span class="insert">sub-range</span> retrieval, since otherwise the client might end up with an</td><td class="lineno" valign="top"></td></tr> |
---|
402 | <tr><td class="lineno" valign="top"></td><td class="lblock"> internally inconsistent <span class="delete">entity.</span></td><td> </td><td class="rblock"> internally inconsistent <span class="insert">representation.</span></td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
404 | <tr><td class="lineno" valign="top"></td><td class="left"> Clients MUST NOT use weak validators in range requests ([Part5]).</td><td> </td><td class="right"> Clients MUST NOT use weak validators in range requests ([Part5]).</td><td class="lineno" valign="top"></td></tr> |
---|
405 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
406 | <tr><td class="lineno" valign="top"></td><td class="left"> The only function that HTTP/1.1 defines on validators is comparison.</td><td> </td><td class="right"> The only function that HTTP/1.1 defines on validators is comparison.</td><td class="lineno" valign="top"></td></tr> |
---|
407 | <tr><td class="lineno" valign="top"></td><td class="left"> There are two validator comparison functions, depending on whether</td><td> </td><td class="right"> There are two validator comparison functions, depending on whether</td><td class="lineno" valign="top"></td></tr> |
---|
408 | <tr><td class="lineno" valign="top"></td><td class="left"> the comparison context allows the use of weak validators or not:</td><td> </td><td class="right"> the comparison context allows the use of weak validators or not:</td><td class="lineno" valign="top"></td></tr> |
---|
409 | <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 class="lineno" valign="top"></td><td class="left"> o The strong comparison function: in order to be considered equal,</td><td> </td><td class="right"> o The strong comparison function: in order to be considered equal,</td><td class="lineno" valign="top"></td></tr> |
---|
411 | <tr><td class="lineno" valign="top"></td><td class="left"> both opaque-tags MUST be identical character-by-character, and</td><td> </td><td class="right"> both opaque-tags MUST be identical character-by-character, and</td><td class="lineno" valign="top"></td></tr> |
---|
412 | <tr><td class="lineno" valign="top"></td><td class="left"> both MUST NOT be weak.</td><td> </td><td class="right"> both MUST NOT be weak.</td><td class="lineno" valign="top"></td></tr> |
---|
413 | <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 | <tr><td class="lineno" valign="top"></td><td class="left"> o The weak comparison function: in order to be considered equal,</td><td> </td><td class="right"> o The weak comparison function: in order to be considered equal,</td><td class="lineno" valign="top"></td></tr> |
---|
415 | <tr><td class="lineno" valign="top"></td><td class="left"> both opaque-tags MUST be identical character-by-character, but</td><td> </td><td class="right"> both opaque-tags MUST be identical character-by-character, but</td><td class="lineno" valign="top"></td></tr> |
---|
416 | <tr><td class="lineno" valign="top"></td><td class="left"> either or both of them MAY be tagged as "weak" without affecting</td><td> </td><td class="right"> either or both of them MAY be tagged as "weak" without affecting</td><td class="lineno" valign="top"></td></tr> |
---|
417 | <tr><td class="lineno" valign="top"></td><td class="left"> the result.</td><td> </td><td class="right"> the result.</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
419 | <tr><td><a name="diff0035" /></td></tr> |
---|
420 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The example below shows the results for a set of entity<span class="delete"> </span>tag pairs,</td><td> </td><td class="rblock"> The example below shows the results for a set of entity<span class="insert">-</span>tag pairs,</td><td class="lineno" valign="top"></td></tr> |
---|
421 | <tr><td class="lineno" valign="top"></td><td class="left"> and both the weak and strong comparison function results:</td><td> </td><td class="right"> and both the weak and strong comparison function results:</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
423 | <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 | <tr><td class="lineno" valign="top"></td><td class="left"> | ETag 1 | ETag 2 | Strong Comparison | Weak Comparison |</td><td> </td><td class="right"> | ETag 1 | ETag 2 | Strong Comparison | Weak Comparison |</td><td class="lineno" valign="top"></td></tr> |
---|
425 | <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 class="lineno" valign="top"></td><td class="left"> | W/"1" | W/"1" | no match | match |</td><td> </td><td class="right"> | W/"1" | W/"1" | no match | match |</td><td class="lineno" valign="top"></td></tr> |
---|
427 | <tr><td class="lineno" valign="top"></td><td class="left"> | W/"1" | W/"2" | no match | no match |</td><td> </td><td class="right"> | W/"1" | W/"2" | no match | no match |</td><td class="lineno" valign="top"></td></tr> |
---|
428 | <tr><td class="lineno" valign="top"></td><td class="left"> | W/"1" | "1" | no match | match |</td><td> </td><td class="right"> | W/"1" | "1" | no match | match |</td><td class="lineno" valign="top"></td></tr> |
---|
429 | <tr><td class="lineno" valign="top"></td><td class="left"> | "1" | "1" | match | match |</td><td> </td><td class="right"> | "1" | "1" | match | match |</td><td class="lineno" valign="top"></td></tr> |
---|
430 | <tr><td class="lineno" valign="top"></td><td class="left"> +--------+--------+-------------------+-----------------+</td><td> </td><td class="right"> +--------+--------+-------------------+-----------------+</td><td class="lineno" valign="top"></td></tr> |
---|
431 | <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="diff0036" /></td></tr> |
---|
433 | <tr><td class="lineno" valign="top"></td><td class="lblock"> An <span class="delete">entity tag</span> is strong unless it is explicitly tagged as weak.</td><td> </td><td class="rblock"> An <span class="insert">entity-tag</span> is strong unless it is explicitly tagged as weak.</td><td class="lineno" valign="top"></td></tr> |
---|
434 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Section 2 gives the syntax for <span class="delete">entity tags.</span></td><td> </td><td class="rblock"> Section 2 gives the syntax for <span class="insert">entity-tags.</span></td><td class="lineno" valign="top"></td></tr> |
---|
435 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
436 | <tr><td class="lineno" valign="top"></td><td class="left"> A Last-Modified time, when used as a validator in a request, is</td><td> </td><td class="right"> A Last-Modified time, when used as a validator in a request, is</td><td class="lineno" valign="top"></td></tr> |
---|
437 | <tr><td class="lineno" valign="top"></td><td class="left"> implicitly weak unless it is possible to deduce that it is strong,</td><td> </td><td class="right"> implicitly weak unless it is possible to deduce that it is strong,</td><td class="lineno" valign="top"></td></tr> |
---|
438 | <tr><td class="lineno" valign="top"></td><td class="left"> using the following rules:</td><td> </td><td class="right"> using the following rules:</td><td class="lineno" valign="top"></td></tr> |
---|
439 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
440 | <tr><td class="lineno" valign="top"></td><td class="left"> o The validator is being compared by an origin server to the actual</td><td> </td><td class="right"> o The validator is being compared by an origin server to the actual</td><td class="lineno" valign="top"></td></tr> |
---|
441 | <tr><td><a name="diff0037" /></td></tr> |
---|
442 | <tr><td class="lineno" valign="top"></td><td class="lblock"> current validator for the <span class="delete">entity</span> and,</td><td> </td><td class="rblock"> current validator for the <span class="insert">representation</span> and,</td><td class="lineno" valign="top"></td></tr> |
---|
443 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
444 | <tr><td><a name="diff0038" /></td></tr> |
---|
445 | <tr><td class="lineno" valign="top"></td><td class="lblock"> o That origin server reliably knows that the associated <span class="delete">entity</span> did</td><td> </td><td class="rblock"> o That origin server reliably knows that the associated</td><td class="lineno" valign="top"></td></tr> |
---|
446 | <tr><td class="lineno" valign="top"></td><td class="lblock"> not change twice during the second covered by the presented</td><td> </td><td class="rblock"> <span class="insert">representation</span> did not change twice during the second covered by</td><td class="lineno" valign="top"></td></tr> |
---|
447 | <tr><td class="lineno" valign="top"></td><td class="lblock"> validator.</td><td> </td><td class="rblock"> the presented validator.</td><td class="lineno" valign="top"></td></tr> |
---|
448 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
449 | <tr><td class="lineno" valign="top"></td><td class="left"> or</td><td> </td><td class="right"> or</td><td class="lineno" valign="top"></td></tr> |
---|
450 | <tr><td><a name="diff0039" /></td></tr> |
---|
451 | <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> |
---|
452 | <tr><td class="lineno" valign="top"></td><td class="left"> o The validator is about to be used by a client in an If-Modified-</td><td> </td><td class="right"> o The validator is about to be used by a client in an If-Modified-</td><td class="lineno" valign="top"></td></tr> |
---|
453 | <tr><td class="lineno" valign="top"></td><td class="left"> Since or If-Unmodified-Since header, because the client has a</td><td> </td><td class="right"> Since or If-Unmodified-Since header, because the client has a</td><td class="lineno" valign="top"></td></tr> |
---|
454 | <tr><td><a name="diff0040" /></td></tr> |
---|
455 | <tr><td class="lineno" valign="top"></td><td class="lblock"> cache entry for the associated <span class="delete">entity</span>, and</td><td> </td><td class="rblock"> cache entry for the associated <span class="insert">representation</span>, and</td><td class="lineno" valign="top"></td></tr> |
---|
456 | <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 class="lineno" valign="top"></td><td class="left"> o That cache entry includes a Date value, which gives the time when</td><td> </td><td class="right"> o That cache entry includes a Date value, which gives the time when</td><td class="lineno" valign="top"></td></tr> |
---|
458 | <tr><td class="lineno" valign="top"></td><td class="left"> the origin server sent the original response, and</td><td> </td><td class="right"> the origin server sent the original response, and</td><td class="lineno" valign="top"></td></tr> |
---|
459 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
460 | <tr><td class="lineno" valign="top"></td><td class="left"> o The presented Last-Modified time is at least 60 seconds before the</td><td> </td><td class="right"> o The presented Last-Modified time is at least 60 seconds before the</td><td class="lineno" valign="top"></td></tr> |
---|
461 | <tr><td class="lineno" valign="top"></td><td class="left"> Date value.</td><td> </td><td class="right"> Date value.</td><td class="lineno" valign="top"></td></tr> |
---|
462 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
463 | <tr><td class="lineno" valign="top"></td><td class="left"> or</td><td> </td><td class="right"> or</td><td class="lineno" valign="top"></td></tr> |
---|
464 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
465 | <tr><td class="lineno" valign="top"></td><td class="left"> o The validator is being compared by an intermediate cache to the</td><td> </td><td class="right"> o The validator is being compared by an intermediate cache to the</td><td class="lineno" valign="top"></td></tr> |
---|
466 | <tr><td><a name="diff0041" /></td></tr> |
---|
467 | <tr><td class="lineno" valign="top"></td><td class="lblock"> validator stored in its cache entry for the <span class="delete">entity</span>, and</td><td> </td><td class="rblock"> validator stored in its cache entry for the <span class="insert">representation</span>, and</td><td class="lineno" valign="top"></td></tr> |
---|
468 | <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 class="lineno" valign="top"></td><td class="left"> o That cache entry includes a Date value, which gives the time when</td><td> </td><td class="right"> o That cache entry includes a Date value, which gives the time when</td><td class="lineno" valign="top"></td></tr> |
---|
470 | <tr><td class="lineno" valign="top"></td><td class="left"> the origin server sent the original response, and</td><td> </td><td class="right"> the origin server sent the original response, and</td><td class="lineno" valign="top"></td></tr> |
---|
471 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
472 | <tr><td class="lineno" valign="top"></td><td class="left"> o The presented Last-Modified time is at least 60 seconds before the</td><td> </td><td class="right"> o The presented Last-Modified time is at least 60 seconds before the</td><td class="lineno" valign="top"></td></tr> |
---|
473 | <tr><td class="lineno" valign="top"></td><td class="left"> Date value.</td><td> </td><td class="right"> Date value.</td><td class="lineno" valign="top"></td></tr> |
---|
474 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
475 | <tr><td class="lineno" valign="top"></td><td class="left"> This method relies on the fact that if two different responses were</td><td> </td><td class="right"> This method relies on the fact that if two different responses were</td><td class="lineno" valign="top"></td></tr> |
---|
476 | <tr><td class="lineno" valign="top"></td><td class="left"> sent by the origin server during the same second, but both had the</td><td> </td><td class="right"> sent by the origin server during the same second, but both had the</td><td class="lineno" valign="top"></td></tr> |
---|
477 | <tr><td class="lineno" valign="top"></td><td class="left"> same Last-Modified time, then at least one of those responses would</td><td> </td><td class="right"> same Last-Modified time, then at least one of those responses would</td><td class="lineno" valign="top"></td></tr> |
---|
478 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
479 | <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 11, line 5</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 10, line 48</em></th><td></td></tr> |
---|
480 | <tr><td class="lineno" valign="top"></td><td class="left"> described here.</td><td> </td><td class="right"> described here.</td><td class="lineno" valign="top"></td></tr> |
---|
481 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
482 | <tr><td class="lineno" valign="top"></td><td class="left"> A cache or origin server receiving a conditional range request</td><td> </td><td class="right"> A cache or origin server receiving a conditional range request</td><td class="lineno" valign="top"></td></tr> |
---|
483 | <tr><td class="lineno" valign="top"></td><td class="left"> ([Part5]) MUST use the strong comparison function to evaluate the</td><td> </td><td class="right"> ([Part5]) MUST use the strong comparison function to evaluate the</td><td class="lineno" valign="top"></td></tr> |
---|
484 | <tr><td class="lineno" valign="top"></td><td class="left"> condition.</td><td> </td><td class="right"> condition.</td><td class="lineno" valign="top"></td></tr> |
---|
485 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
486 | <tr><td class="lineno" valign="top"></td><td class="left"> These rules allow HTTP/1.1 caches and clients to safely perform sub-</td><td> </td><td class="right"> These rules allow HTTP/1.1 caches and clients to safely perform sub-</td><td class="lineno" valign="top"></td></tr> |
---|
487 | <tr><td class="lineno" valign="top"></td><td class="left"> range retrievals on values that have been obtained from HTTP/1.0</td><td> </td><td class="right"> range retrievals on values that have been obtained from HTTP/1.0</td><td class="lineno" valign="top"></td></tr> |
---|
488 | <tr><td class="lineno" valign="top"></td><td class="left"> servers.</td><td> </td><td class="right"> servers.</td><td class="lineno" valign="top"></td></tr> |
---|
489 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
490 | <tr><td><a name="diff0042" /></td></tr> |
---|
491 | <tr><td class="lineno" valign="top"></td><td class="lblock">5. Rules for When to Use Entity<span class="delete"> T</span>ags and Last-Modified Dates</td><td> </td><td class="rblock">5. Rules for When to Use Entity<span class="insert">-t</span>ags and Last-Modified Dates</td><td class="lineno" valign="top"></td></tr> |
---|
492 | <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 class="lineno" valign="top"></td><td class="left"> We adopt a set of rules and recommendations for origin servers,</td><td> </td><td class="right"> We adopt a set of rules and recommendations for origin servers,</td><td class="lineno" valign="top"></td></tr> |
---|
494 | <tr><td class="lineno" valign="top"></td><td class="left"> clients, and caches regarding when various validator types ought to</td><td> </td><td class="right"> clients, and caches regarding when various validator types ought to</td><td class="lineno" valign="top"></td></tr> |
---|
495 | <tr><td class="lineno" valign="top"></td><td class="left"> be used, and for what purposes.</td><td> </td><td class="right"> be used, and for what purposes.</td><td class="lineno" valign="top"></td></tr> |
---|
496 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
497 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.1 origin servers:</td><td> </td><td class="right"> HTTP/1.1 origin servers:</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
499 | <tr><td><a name="diff0043" /></td></tr> |
---|
500 | <tr><td class="lineno" valign="top"></td><td class="lblock"> o SHOULD send an entity<span class="delete"> </span>tag validator unless it is not feasible to</td><td> </td><td class="rblock"> o SHOULD send an entity<span class="insert">-</span>tag validator unless it is not feasible to</td><td class="lineno" valign="top"></td></tr> |
---|
501 | <tr><td class="lineno" valign="top"></td><td class="left"> generate one.</td><td> </td><td class="right"> generate one.</td><td class="lineno" valign="top"></td></tr> |
---|
502 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
503 | <tr><td><a name="diff0044" /></td></tr> |
---|
504 | <tr><td class="lineno" valign="top"></td><td class="lblock"> o MAY send a weak <span class="delete">entity tag</span> instead of a strong <span class="delete">entity tag,</span> if</td><td> </td><td class="rblock"> o MAY send a weak <span class="insert">entity-tag</span> instead of a strong <span class="insert">entity-tag,</span> if</td><td class="lineno" valign="top"></td></tr> |
---|
505 | <tr><td class="lineno" valign="top"></td><td class="lblock"> performance considerations support the use of weak <span class="delete">entity tags,</span> or</td><td> </td><td class="rblock"> performance considerations support the use of weak <span class="insert">entity-tags,</span> or</td><td class="lineno" valign="top"></td></tr> |
---|
506 | <tr><td class="lineno" valign="top"></td><td class="lblock"> if it is unfeasible to send a strong <span class="delete">entity tag.</span></td><td> </td><td class="rblock"> if it is unfeasible to send a strong <span class="insert">entity-tag.</span></td><td class="lineno" valign="top"></td></tr> |
---|
507 | <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 class="lineno" valign="top"></td><td class="left"> o SHOULD send a Last-Modified value if it is feasible to send one,</td><td> </td><td class="right"> o SHOULD send a Last-Modified value if it is feasible to send one,</td><td class="lineno" valign="top"></td></tr> |
---|
509 | <tr><td class="lineno" valign="top"></td><td class="left"> unless the risk of a breakdown in semantic transparency that could</td><td> </td><td class="right"> unless the risk of a breakdown in semantic transparency that could</td><td class="lineno" valign="top"></td></tr> |
---|
510 | <tr><td class="lineno" valign="top"></td><td class="left"> result from using this date in an If-Modified-Since header would</td><td> </td><td class="right"> result from using this date in an If-Modified-Since header would</td><td class="lineno" valign="top"></td></tr> |
---|
511 | <tr><td class="lineno" valign="top"></td><td class="left"> lead to serious problems.</td><td> </td><td class="right"> lead to serious problems.</td><td class="lineno" valign="top"></td></tr> |
---|
512 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
513 | <tr><td class="lineno" valign="top"></td><td class="left"> In other words, the preferred behavior for an HTTP/1.1 origin server</td><td> </td><td class="right"> In other words, the preferred behavior for an HTTP/1.1 origin server</td><td class="lineno" valign="top"></td></tr> |
---|
514 | <tr><td><a name="diff0045" /></td></tr> |
---|
515 | <tr><td class="lineno" valign="top"></td><td class="lblock"> is to send both a strong entity<span class="delete"> </span>tag and a Last-Modified value.</td><td> </td><td class="rblock"> is to send both a strong entity<span class="insert">-</span>tag and a Last-Modified value.</td><td class="lineno" valign="top"></td></tr> |
---|
516 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
517 | <tr><td><a name="diff0046" /></td></tr> |
---|
518 | <tr><td class="lineno" valign="top"></td><td class="lblock"> In order to be legal, a strong <span class="delete">entity tag</span> MUST change whenever the</td><td> </td><td class="rblock"> In order to be legal, a strong <span class="insert">entity-tag</span> MUST change whenever the</td><td class="lineno" valign="top"></td></tr> |
---|
519 | <tr><td class="lineno" valign="top"></td><td class="lblock"> associated <span class="delete">entity</span> changes in any way. A weak <span class="delete">entity tag</span> SHOULD</td><td> </td><td class="rblock"> associated <span class="insert">representation</span> changes in any way. A weak <span class="insert">entity-tag</span></td><td class="lineno" valign="top"></td></tr> |
---|
520 | <tr><td class="lineno" valign="top"></td><td class="lblock"> change whenever the associated <span class="delete">entity</span> changes in a semantically</td><td> </td><td class="rblock"> SHOULD change whenever the associated <span class="insert">representation</span> changes in a</td><td class="lineno" valign="top"></td></tr> |
---|
521 | <tr><td class="lineno" valign="top"></td><td class="lblock"> significant way.</td><td> </td><td class="rblock"> semantically significant way.</td><td class="lineno" valign="top"></td></tr> |
---|
522 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
523 | <tr><td class="lineno" valign="top"></td><td class="left"> Note: In order to provide semantically transparent caching, an</td><td> </td><td class="right"> Note: In order to provide semantically transparent caching, an</td><td class="lineno" valign="top"></td></tr> |
---|
524 | <tr><td><a name="diff0047" /></td></tr> |
---|
525 | <tr><td class="lineno" valign="top"></td><td class="lblock"> origin server must avoid reusing a specific strong <span class="delete">entity tag</span></td><td> </td><td class="rblock"> origin server must avoid reusing a specific strong <span class="insert">entity-tag</span></td><td class="lineno" valign="top"></td></tr> |
---|
526 | <tr><td class="lineno" valign="top"></td><td class="lblock"> value for two different <span class="delete">entities,</span> or reusing a specific weak</td><td> </td><td class="rblock"> value for two different <span class="insert">representations,</span> or reusing a specific</td><td class="lineno" valign="top"></td></tr> |
---|
527 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">entity tag</span> value for two semantically different <span class="delete">entities.</span> Cache</td><td> </td><td class="rblock"> weak <span class="insert">entity-tag</span> value for two semantically different</td><td class="lineno" valign="top"></td></tr> |
---|
528 | <tr><td class="lineno" valign="top"></td><td class="lblock"> entries might persist for arbitrarily long periods, regardless of</td><td> </td><td class="rblock"> <span class="insert">representations.</span> Cache entries might persist for arbitrarily long</td><td class="lineno" valign="top"></td></tr> |
---|
529 | <tr><td class="lineno" valign="top"></td><td class="lblock"> expiration times, so it might be inappropriate to expect that a</td><td> </td><td class="rblock"> periods, regardless of expiration times, so it might be</td><td class="lineno" valign="top"></td></tr> |
---|
530 | <tr><td class="lineno" valign="top"></td><td class="lblock"> cache will never again attempt to validate an entry using a</td><td> </td><td class="rblock"> inappropriate to expect that a cache will never again attempt to</td><td class="lineno" valign="top"></td></tr> |
---|
531 | <tr><td class="lineno" valign="top"></td><td class="lblock"> validator that it obtained at some point in the past.</td><td> </td><td class="rblock"> validate an entry using a validator that it obtained at some point</td><td class="lineno" valign="top"></td></tr> |
---|
532 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> in the past.</td><td class="lineno" valign="top"></td></tr> |
---|
533 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
534 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.1 clients:</td><td> </td><td class="right"> HTTP/1.1 clients:</td><td class="lineno" valign="top"></td></tr> |
---|
535 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
536 | <tr><td><a name="diff0048" /></td></tr> |
---|
537 | <tr><td class="lineno" valign="top"></td><td class="lblock"> o MUST use that <span class="delete">entity tag</span> in any cache-conditional request (using</td><td> </td><td class="rblock"> o MUST use that <span class="insert">entity-tag</span> in any cache-conditional request (using</td><td class="lineno" valign="top"></td></tr> |
---|
538 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Match or If-None-Match) if an <span class="delete">entity tag</span> has been provided by</td><td> </td><td class="rblock"> If-Match or If-None-Match) if an <span class="insert">entity-tag</span> has been provided by</td><td class="lineno" valign="top"></td></tr> |
---|
539 | <tr><td class="lineno" valign="top"></td><td class="left"> the origin server.</td><td> </td><td class="right"> the origin server.</td><td class="lineno" valign="top"></td></tr> |
---|
540 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
541 | <tr><td class="lineno" valign="top"></td><td class="left"> o SHOULD use the Last-Modified value in non-subrange cache-</td><td> </td><td class="right"> o SHOULD use the Last-Modified value in non-subrange cache-</td><td class="lineno" valign="top"></td></tr> |
---|
542 | <tr><td class="lineno" valign="top"></td><td class="left"> conditional requests (using If-Modified-Since) if only a Last-</td><td> </td><td class="right"> conditional requests (using If-Modified-Since) if only a Last-</td><td class="lineno" valign="top"></td></tr> |
---|
543 | <tr><td class="lineno" valign="top"></td><td class="left"> Modified value has been provided by the origin server.</td><td> </td><td class="right"> Modified value has been provided by the origin server.</td><td class="lineno" valign="top"></td></tr> |
---|
544 | <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 class="lineno" valign="top"></td><td class="left"> o MAY use the Last-Modified value in subrange cache-conditional</td><td> </td><td class="right"> o MAY use the Last-Modified value in subrange cache-conditional</td><td class="lineno" valign="top"></td></tr> |
---|
546 | <tr><td class="lineno" valign="top"></td><td class="left"> requests (using If-Unmodified-Since) if only a Last-Modified value</td><td> </td><td class="right"> requests (using If-Unmodified-Since) if only a Last-Modified value</td><td class="lineno" valign="top"></td></tr> |
---|
547 | <tr><td class="lineno" valign="top"></td><td class="left"> has been provided by an HTTP/1.0 origin server. The user agent</td><td> </td><td class="right"> has been provided by an HTTP/1.0 origin server. The user agent</td><td class="lineno" valign="top"></td></tr> |
---|
548 | <tr><td class="lineno" valign="top"></td><td class="left"> SHOULD provide a way to disable this, in case of difficulty.</td><td> </td><td class="right"> SHOULD provide a way to disable this, in case of difficulty.</td><td class="lineno" valign="top"></td></tr> |
---|
549 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
550 | <tr><td class="lineno" valign="top"></td><td class="left"> o SHOULD use both validators in cache-conditional requests if both</td><td> </td><td class="right"> o SHOULD use both validators in cache-conditional requests if both</td><td class="lineno" valign="top"></td></tr> |
---|
551 | <tr><td><a name="diff0049" /></td></tr> |
---|
552 | <tr><td class="lineno" valign="top"></td><td class="lblock"> an entity<span class="delete"> </span>tag and a Last-Modified value have been provided by the</td><td> </td><td class="rblock"> an entity<span class="insert">-</span>tag and a Last-Modified value have been provided by the</td><td class="lineno" valign="top"></td></tr> |
---|
553 | <tr><td class="lineno" valign="top"></td><td class="left"> origin server. This allows both HTTP/1.0 and HTTP/1.1 caches to</td><td> </td><td class="right"> origin server. This allows both HTTP/1.0 and HTTP/1.1 caches to</td><td class="lineno" valign="top"></td></tr> |
---|
554 | <tr><td class="lineno" valign="top"></td><td class="left"> respond appropriately.</td><td> </td><td class="right"> respond appropriately.</td><td class="lineno" valign="top"></td></tr> |
---|
555 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
556 | <tr><td class="lineno" valign="top"></td><td class="left"> An HTTP/1.1 origin server, upon receiving a conditional request that</td><td> </td><td class="right"> An HTTP/1.1 origin server, upon receiving a conditional request that</td><td class="lineno" valign="top"></td></tr> |
---|
557 | <tr><td class="lineno" valign="top"></td><td class="left"> includes both a Last-Modified date (e.g., in an If-Modified-Since or</td><td> </td><td class="right"> includes both a Last-Modified date (e.g., in an If-Modified-Since or</td><td class="lineno" valign="top"></td></tr> |
---|
558 | <tr><td><a name="diff0050" /></td></tr> |
---|
559 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Unmodified-Since header field) and one or more entity<span class="delete"> </span>tags (e.g.,</td><td> </td><td class="rblock"> If-Unmodified-Since header field) and one or more entity<span class="insert">-</span>tags (e.g.,</td><td class="lineno" valign="top"></td></tr> |
---|
560 | <tr><td class="lineno" valign="top"></td><td class="left"> in an If-Match, If-None-Match, or If-Range header field) as cache</td><td> </td><td class="right"> in an If-Match, If-None-Match, or If-Range header field) as cache</td><td class="lineno" valign="top"></td></tr> |
---|
561 | <tr><td><a name="diff0051" /></td></tr> |
---|
562 | <tr><td class="lineno" valign="top"></td><td class="lblock"> validators, MUST NOT return a response status of 304 (Not Modified)</td><td> </td><td class="rblock"> validators, MUST NOT return a response status <span class="insert">code</span> of 304 (Not</td><td class="lineno" valign="top"></td></tr> |
---|
563 | <tr><td class="lineno" valign="top"></td><td class="lblock"> unless doing so is consistent with all of the conditional header</td><td> </td><td class="rblock"> Modified) unless doing so is consistent with all of the conditional</td><td class="lineno" valign="top"></td></tr> |
---|
564 | <tr><td class="lineno" valign="top"></td><td class="lblock"> fields in the request.</td><td> </td><td class="rblock"> header fields in the request.</td><td class="lineno" valign="top"></td></tr> |
---|
565 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
566 | <tr><td class="lineno" valign="top"></td><td class="left"> An HTTP/1.1 caching proxy, upon receiving a conditional request that</td><td> </td><td class="right"> An HTTP/1.1 caching proxy, upon receiving a conditional request that</td><td class="lineno" valign="top"></td></tr> |
---|
567 | <tr><td><a name="diff0052" /></td></tr> |
---|
568 | <tr><td class="lineno" valign="top"></td><td class="lblock"> includes both a Last-Modified date and one or more entity<span class="delete"> </span>tags as</td><td> </td><td class="rblock"> includes both a Last-Modified date and one or more entity<span class="insert">-</span>tags as</td><td class="lineno" valign="top"></td></tr> |
---|
569 | <tr><td class="lineno" valign="top"></td><td class="left"> cache validators, MUST NOT return a locally cached response to the</td><td> </td><td class="right"> cache validators, MUST NOT return a locally cached response to the</td><td class="lineno" valign="top"></td></tr> |
---|
570 | <tr><td class="lineno" valign="top"></td><td class="left"> client unless that cached response is consistent with all of the</td><td> </td><td class="right"> client unless that cached response is consistent with all of the</td><td class="lineno" valign="top"></td></tr> |
---|
571 | <tr><td class="lineno" valign="top"></td><td class="left"> conditional header fields in the request.</td><td> </td><td class="right"> conditional header fields in the request.</td><td class="lineno" valign="top"></td></tr> |
---|
572 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
573 | <tr><td class="lineno" valign="top"></td><td class="left"> Note: The general principle behind these rules is that HTTP/1.1</td><td> </td><td class="right"> Note: The general principle behind these rules is that HTTP/1.1</td><td class="lineno" valign="top"></td></tr> |
---|
574 | <tr><td><a name="diff0053" /></td></tr> |
---|
575 | <tr><td class="lineno" valign="top"></td><td class="lblock"> servers and clients <span class="delete">should</span> transmit as much non-redundant</td><td> </td><td class="rblock"> servers and clients <span class="insert">ought to</span> transmit as much non-redundant</td><td class="lineno" valign="top"></td></tr> |
---|
576 | <tr><td class="lineno" valign="top"></td><td class="left"> information as is available in their responses and requests.</td><td> </td><td class="right"> information as is available in their responses and requests.</td><td class="lineno" valign="top"></td></tr> |
---|
577 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.1 systems receiving this information will make the most</td><td> </td><td class="right"> HTTP/1.1 systems receiving this information will make the most</td><td class="lineno" valign="top"></td></tr> |
---|
578 | <tr><td class="lineno" valign="top"></td><td class="left"> conservative assumptions about the validators they receive.</td><td> </td><td class="right"> conservative assumptions about the validators they receive.</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
580 | <tr><td><a name="diff0054" /></td></tr> |
---|
581 | <tr><td class="lineno" valign="top"></td><td class="lblock"> HTTP/1.0 clients and caches will ignore entity<span class="delete"> </span>tags. Generally,</td><td> </td><td class="rblock"> HTTP/1.0 clients and caches will ignore entity<span class="insert">-</span>tags. Generally,</td><td class="lineno" valign="top"></td></tr> |
---|
582 | <tr><td class="lineno" valign="top"></td><td class="left"> last-modified values received or used by these systems will</td><td> </td><td class="right"> last-modified values received or used by these systems will</td><td class="lineno" valign="top"></td></tr> |
---|
583 | <tr><td class="lineno" valign="top"></td><td class="left"> support transparent and efficient caching, and so HTTP/1.1 origin</td><td> </td><td class="right"> support transparent and efficient caching, and so HTTP/1.1 origin</td><td class="lineno" valign="top"></td></tr> |
---|
584 | <tr><td class="lineno" valign="top"></td><td class="left"> servers should provide Last-Modified values. In those rare cases</td><td> </td><td class="right"> servers should provide Last-Modified values. In those rare cases</td><td class="lineno" valign="top"></td></tr> |
---|
585 | <tr><td class="lineno" valign="top"></td><td class="left"> where the use of a Last-Modified value as a validator by an</td><td> </td><td class="right"> where the use of a Last-Modified value as a validator by an</td><td class="lineno" valign="top"></td></tr> |
---|
586 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.0 system could result in a serious problem, then HTTP/1.1</td><td> </td><td class="right"> HTTP/1.0 system could result in a serious problem, then HTTP/1.1</td><td class="lineno" valign="top"></td></tr> |
---|
587 | <tr><td class="lineno" valign="top"></td><td class="left"> origin servers should not provide one.</td><td> </td><td class="right"> origin servers should not provide one.</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
589 | <tr><td class="lineno" valign="top"></td><td class="left">6. Header Field Definitions</td><td> </td><td class="right">6. Header Field Definitions</td><td class="lineno" valign="top"></td></tr> |
---|
590 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
591 | <tr><td class="lineno" valign="top"></td><td class="left"> This section defines the syntax and semantics of HTTP/1.1 header</td><td> </td><td class="right"> This section defines the syntax and semantics of HTTP/1.1 header</td><td class="lineno" valign="top"></td></tr> |
---|
592 | <tr><td class="lineno" valign="top"></td><td class="left"> fields related to conditional requests.</td><td> </td><td class="right"> fields related to conditional requests.</td><td class="lineno" valign="top"></td></tr> |
---|
593 | <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="diff0055" /></td></tr> |
---|
595 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">For entity-header fields, both sender and recipient refer to either</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
596 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> the client or the server, depending on who sends and who receives the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
597 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> entity.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
598 | <tr><td class="lineno" valign="top"></td><td class="lblock"> </td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
599 | <tr><td class="lineno" valign="top"></td><td class="left">6.1. ETag</td><td> </td><td class="right">6.1. ETag</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
601 | <tr><td class="lineno" valign="top"></td><td class="left"> The "ETag" response-header field provides the current value of the</td><td> </td><td class="right"> The "ETag" response-header field provides the current value of the</td><td class="lineno" valign="top"></td></tr> |
---|
602 | <tr><td><a name="diff0056" /></td></tr> |
---|
603 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">entity tag</span> (see Section 2) for the <span class="delete">requested variant, which may be</span></td><td> </td><td class="rblock"> <span class="insert">entity-tag</span> (see Section 2) for <span class="insert">one representation of</span> the <span class="insert">target</span></td><td class="lineno" valign="top"></td></tr> |
---|
604 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> used</span> for <span class="delete">comparison with other entities from</span> the same resource (see</td><td> </td><td class="rblock"><span class="insert"> resource. An entity-tag is intended</span> for <span class="insert">use as a resource-local</span></td><td class="lineno" valign="top"></td></tr> |
---|
605 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> identifier for differentiating between representations of</span> the same</td><td class="lineno" valign="top"></td></tr> |
---|
606 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> resource <span class="insert">that vary over time or via content negotiation</span> (see</td><td class="lineno" valign="top"></td></tr> |
---|
607 | <tr><td class="lineno" valign="top"></td><td class="left"> Section 4).</td><td> </td><td class="right"> Section 4).</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
609 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag = "ETag" ":" OWS ETag-v</td><td> </td><td class="right"> ETag = "ETag" ":" OWS ETag-v</td><td class="lineno" valign="top"></td></tr> |
---|
610 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag-v = entity-tag</td><td> </td><td class="right"> ETag-v = entity-tag</td><td class="lineno" valign="top"></td></tr> |
---|
611 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
612 | <tr><td class="lineno" valign="top"></td><td class="left"> Examples:</td><td> </td><td class="right"> Examples:</td><td class="lineno" valign="top"></td></tr> |
---|
613 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
614 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag: "xyzzy"</td><td> </td><td class="right"> ETag: "xyzzy"</td><td class="lineno" valign="top"></td></tr> |
---|
615 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag: W/"xyzzy"</td><td> </td><td class="right"> ETag: W/"xyzzy"</td><td class="lineno" valign="top"></td></tr> |
---|
616 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag: ""</td><td> </td><td class="right"> ETag: ""</td><td class="lineno" valign="top"></td></tr> |
---|
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 | <tr><td><a name="diff0057" /></td></tr> |
---|
619 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The ETag response-header field value, an entity tag,</span> provides <span class="delete">for</span> an</td><td> </td><td class="rblock"> <span class="insert">An entity-tag</span> provides an "opaque" cache <span class="insert">validator that allows for</span></td><td class="lineno" valign="top"></td></tr> |
---|
620 | <tr><td class="lineno" valign="top"></td><td class="lblock"> "opaque" cache <span class="delete">validator. This might allow</span> more reliable validation</td><td> </td><td class="rblock"> more reliable validation <span class="insert">than modification dates</span> in situations where</td><td class="lineno" valign="top"></td></tr> |
---|
621 | <tr><td class="lineno" valign="top"></td><td class="lblock"> in situations where it is inconvenient to store modification dates,</td><td> </td><td class="rblock"> it is inconvenient to store modification dates, where the one-second</td><td class="lineno" valign="top"></td></tr> |
---|
622 | <tr><td class="lineno" valign="top"></td><td class="lblock"> where the one-second resolution of HTTP date values is not</td><td> </td><td class="rblock"> resolution of HTTP date values is not sufficient, or where the origin</td><td class="lineno" valign="top"></td></tr> |
---|
623 | <tr><td class="lineno" valign="top"></td><td class="lblock"> sufficient, or where the origin server wishes to avoid certain</td><td> </td><td class="rblock"> server wishes to avoid certain paradoxes that might arise from the</td><td class="lineno" valign="top"></td></tr> |
---|
624 | <tr><td class="lineno" valign="top"></td><td class="lblock"> paradoxes that might arise from the use of modification dates.</td><td> </td><td class="rblock"> use of modification dates.</td><td class="lineno" valign="top"></td></tr> |
---|
625 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
626 | <tr><td><a name="diff0058" /></td></tr> |
---|
627 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The principle behind entity<span class="delete"> </span>tags is that only the service author</td><td> </td><td class="rblock"> The principle behind entity<span class="insert">-</span>tags is that only the service author</td><td class="lineno" valign="top"></td></tr> |
---|
628 | <tr><td class="lineno" valign="top"></td><td class="left"> knows the semantics of a resource well enough to select an</td><td> </td><td class="right"> knows the semantics of a resource well enough to select an</td><td class="lineno" valign="top"></td></tr> |
---|
629 | <tr><td class="lineno" valign="top"></td><td class="left"> appropriate cache validation mechanism, and the specification of any</td><td> </td><td class="right"> appropriate cache validation mechanism, and the specification of any</td><td class="lineno" valign="top"></td></tr> |
---|
630 | <tr><td class="lineno" valign="top"></td><td class="left"> validator comparison function more complex than byte-equality would</td><td> </td><td class="right"> validator comparison function more complex than byte-equality would</td><td class="lineno" valign="top"></td></tr> |
---|
631 | <tr><td class="lineno" valign="top"></td><td class="left"> open up a can of worms. Thus, comparisons of any other headers</td><td> </td><td class="right"> open up a can of worms. Thus, comparisons of any other headers</td><td class="lineno" valign="top"></td></tr> |
---|
632 | <tr><td class="lineno" valign="top"></td><td class="left"> (except Last-Modified, for compatibility with HTTP/1.0) are never</td><td> </td><td class="right"> (except Last-Modified, for compatibility with HTTP/1.0) are never</td><td class="lineno" valign="top"></td></tr> |
---|
633 | <tr><td class="lineno" valign="top"></td><td class="left"> used for purposes of validating a cache entry.</td><td> </td><td class="right"> used for purposes of validating a cache entry.</td><td class="lineno" valign="top"></td></tr> |
---|
634 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
635 | <tr><td class="lineno" valign="top"></td><td class="left">6.2. If-Match</td><td> </td><td class="right">6.2. If-Match</td><td class="lineno" valign="top"></td></tr> |
---|
636 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
637 | <tr><td class="lineno" valign="top"></td><td class="left"> The "If-Match" request-header field is used to make a request method</td><td> </td><td class="right"> The "If-Match" request-header field is used to make a request method</td><td class="lineno" valign="top"></td></tr> |
---|
638 | <tr><td><a name="diff0059" /></td></tr> |
---|
639 | <tr><td class="lineno" valign="top"></td><td class="lblock"> conditional. A client that has one or more <span class="delete">entities</span> previously</td><td> </td><td class="rblock"> conditional. A client that has one or more <span class="insert">representations</span></td><td class="lineno" valign="top"></td></tr> |
---|
640 | <tr><td class="lineno" valign="top"></td><td class="lblock"> obtained from the resource can verify that one of those <span class="delete">entities</span> is</td><td> </td><td class="rblock"> previously obtained from the resource can verify that one of those</td><td class="lineno" valign="top"></td></tr> |
---|
641 | <tr><td class="lineno" valign="top"></td><td class="lblock"> current by including a list of their associated <span class="delete">entity tags</span> in the</td><td> </td><td class="rblock"> <span class="insert">representations</span> is current by including a list of their associated</td><td class="lineno" valign="top"></td></tr> |
---|
642 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Match header field.</td><td> </td><td class="rblock"> <span class="insert">entity-tags</span> in the If-Match header field.</td><td class="lineno" valign="top"></td></tr> |
---|
643 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
644 | <tr><td class="lineno" valign="top"></td><td class="left"> This allows efficient updates of cached information with a minimum</td><td> </td><td class="right"> This allows efficient updates of cached information with a minimum</td><td class="lineno" valign="top"></td></tr> |
---|
645 | <tr><td class="lineno" valign="top"></td><td class="left"> amount of transaction overhead. It is also used when updating</td><td> </td><td class="right"> amount of transaction overhead. It is also used when updating</td><td class="lineno" valign="top"></td></tr> |
---|
646 | <tr><td class="lineno" valign="top"></td><td class="left"> resources, to prevent inadvertent modification of the wrong version</td><td> </td><td class="right"> resources, to prevent inadvertent modification of the wrong version</td><td class="lineno" valign="top"></td></tr> |
---|
647 | <tr><td class="lineno" valign="top"></td><td class="left"> of a resource. As a special case, the value "*" matches any current</td><td> </td><td class="right"> of a resource. As a special case, the value "*" matches any current</td><td class="lineno" valign="top"></td></tr> |
---|
648 | <tr><td><a name="diff0060" /></td></tr> |
---|
649 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">entity</span> of the resource.</td><td> </td><td class="rblock"> <span class="insert">representation</span> of the resource.</td><td class="lineno" valign="top"></td></tr> |
---|
650 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
651 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match = "If-Match" ":" OWS If-Match-v</td><td> </td><td class="right"> If-Match = "If-Match" ":" OWS If-Match-v</td><td class="lineno" valign="top"></td></tr> |
---|
652 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match-v = "*" / 1#entity-tag</td><td> </td><td class="right"> If-Match-v = "*" / 1#entity-tag</td><td class="lineno" valign="top"></td></tr> |
---|
653 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
654 | <tr><td><a name="diff0061" /></td></tr> |
---|
655 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If any of the <span class="delete">entity tags</span> match the <span class="delete">entity tag</span> of the <span class="delete">entity</span> that</td><td> </td><td class="rblock"> If any of the <span class="insert">entity-tags</span> match the <span class="insert">entity-tag</span> of the <span class="insert">representation</span></td><td class="lineno" valign="top"></td></tr> |
---|
656 | <tr><td class="lineno" valign="top"></td><td class="lblock"> would have been returned in the response to a similar GET request</td><td> </td><td class="rblock"> that would have been returned in the response to a similar GET</td><td class="lineno" valign="top"></td></tr> |
---|
657 | <tr><td class="lineno" valign="top"></td><td class="lblock"> (without the If-Match header) on that resource, or if "*" is given</td><td> </td><td class="rblock"> request (without the If-Match header) on that resource, or if "*" is</td><td class="lineno" valign="top"></td></tr> |
---|
658 | <tr><td class="lineno" valign="top"></td><td class="lblock"> and any current <span class="delete">entity</span> exists for that resource, then the server MAY</td><td> </td><td class="rblock"> given and any current <span class="insert">representation</span> exists for that resource, then</td><td class="lineno" valign="top"></td></tr> |
---|
659 | <tr><td class="lineno" valign="top"></td><td class="lblock"> perform the requested method as if the If-Match header field did not</td><td> </td><td class="rblock"> the server MAY perform the requested method as if the If-Match header</td><td class="lineno" valign="top"></td></tr> |
---|
660 | <tr><td class="lineno" valign="top"></td><td class="lblock"> exist.</td><td> </td><td class="rblock"> field did not exist.</td><td class="lineno" valign="top"></td></tr> |
---|
661 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
662 | <tr><td><a name="diff0062" /></td></tr> |
---|
663 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If none of the <span class="delete">entity tags</span> match, or if "*" is given and no current</td><td> </td><td class="rblock"> If none of the <span class="insert">entity-tags</span> match, or if "*" is given and no current</td><td class="lineno" valign="top"></td></tr> |
---|
664 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">entity</span> exists, the server MUST NOT perform the requested method, and</td><td> </td><td class="rblock"> <span class="insert">representation</span> exists, the server MUST NOT perform the requested</td><td class="lineno" valign="top"></td></tr> |
---|
665 | <tr><td class="lineno" valign="top"></td><td class="lblock"> MUST return a 412 (Precondition Failed) response. This behavior is</td><td> </td><td class="rblock"> method, and MUST return a 412 (Precondition Failed) response. This</td><td class="lineno" valign="top"></td></tr> |
---|
666 | <tr><td class="lineno" valign="top"></td><td class="lblock"> most useful when the client wants to prevent an updating method, such</td><td> </td><td class="rblock"> behavior is most useful when the client wants to prevent an updating</td><td class="lineno" valign="top"></td></tr> |
---|
667 | <tr><td class="lineno" valign="top"></td><td class="lblock"> as PUT, from modifying a resource that has changed since the client</td><td> </td><td class="rblock"> method, such as PUT, from modifying a resource that has changed since</td><td class="lineno" valign="top"></td></tr> |
---|
668 | <tr><td class="lineno" valign="top"></td><td class="lblock"> last retrieved it.</td><td> </td><td class="rblock"> the client last retrieved it.</td><td class="lineno" valign="top"></td></tr> |
---|
669 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
670 | <tr><td class="lineno" valign="top"></td><td class="left"> If the request would, without the If-Match header field, result in</td><td> </td><td class="right"> If the request would, without the If-Match header field, result in</td><td class="lineno" valign="top"></td></tr> |
---|
671 | <tr><td><a name="diff0063" /></td></tr> |
---|
672 | <tr><td class="lineno" valign="top"></td><td class="lblock"> anything other than a 2xx or 412 <span class="delete">status,</span> then the If-Match header</td><td> </td><td class="rblock"> anything other than a 2xx or 412 <span class="insert">status code,</span> then the If-Match</td><td class="lineno" valign="top"></td></tr> |
---|
673 | <tr><td class="lineno" valign="top"></td><td class="lblock"> MUST be ignored.</td><td> </td><td class="rblock"> header MUST be ignored.</td><td class="lineno" valign="top"></td></tr> |
---|
674 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
675 | <tr><td class="lineno" valign="top"></td><td class="left"> The meaning of "If-Match: *" is that the method SHOULD be performed</td><td> </td><td class="right"> The meaning of "If-Match: *" is that the method SHOULD be performed</td><td class="lineno" valign="top"></td></tr> |
---|
676 | <tr><td class="lineno" valign="top"></td><td class="left"> if the representation selected by the origin server (or by a cache,</td><td> </td><td class="right"> if the representation selected by the origin server (or by a cache,</td><td class="lineno" valign="top"></td></tr> |
---|
677 | <tr><td class="lineno" valign="top"></td><td class="left"> possibly using the Vary mechanism, see Section 3.5 of [Part6])</td><td> </td><td class="right"> possibly using the Vary mechanism, see Section 3.5 of [Part6])</td><td class="lineno" valign="top"></td></tr> |
---|
678 | <tr><td class="lineno" valign="top"></td><td class="left"> exists, and MUST NOT be performed if the representation does not</td><td> </td><td class="right"> exists, and MUST NOT be performed if the representation does not</td><td class="lineno" valign="top"></td></tr> |
---|
679 | <tr><td class="lineno" valign="top"></td><td class="left"> exist.</td><td> </td><td class="right"> exist.</td><td class="lineno" valign="top"></td></tr> |
---|
680 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
681 | <tr><td class="lineno" valign="top"></td><td class="left"> A request intended to update a resource (e.g., a PUT) MAY include an</td><td> </td><td class="right"> A request intended to update a resource (e.g., a PUT) MAY include an</td><td class="lineno" valign="top"></td></tr> |
---|
682 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match header field to signal that the request method MUST NOT be</td><td> </td><td class="right"> If-Match header field to signal that the request method MUST NOT be</td><td class="lineno" valign="top"></td></tr> |
---|
683 | <tr><td><a name="diff0064" /></td></tr> |
---|
684 | <tr><td class="lineno" valign="top"></td><td class="lblock"> applied if the <span class="delete">entity</span> corresponding to the If-Match value (a single</td><td> </td><td class="rblock"> applied if the <span class="insert">representation</span> corresponding to the If-Match value (a</td><td class="lineno" valign="top"></td></tr> |
---|
685 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">entity tag)</span> is no longer a representation of that resource. This</td><td> </td><td class="rblock"> single <span class="insert">entity-tag)</span> is no longer a representation of that resource.</td><td class="lineno" valign="top"></td></tr> |
---|
686 | <tr><td class="lineno" valign="top"></td><td class="lblock"> allows the user to indicate that they do not wish the request to be</td><td> </td><td class="rblock"> This allows the user to indicate that they do not wish the request to</td><td class="lineno" valign="top"></td></tr> |
---|
687 | <tr><td class="lineno" valign="top"></td><td class="lblock"> successful if the resource has been changed without their knowledge.</td><td> </td><td class="rblock"> be successful if the resource has been changed without their</td><td class="lineno" valign="top"></td></tr> |
---|
688 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Examples:</td><td> </td><td class="rblock"> knowledge. Examples:</td><td class="lineno" valign="top"></td></tr> |
---|
689 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
690 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match: "xyzzy"</td><td> </td><td class="right"> If-Match: "xyzzy"</td><td class="lineno" valign="top"></td></tr> |
---|
691 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"</td><td> </td><td class="right"> If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"</td><td class="lineno" valign="top"></td></tr> |
---|
692 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match: *</td><td> </td><td class="right"> If-Match: *</td><td class="lineno" valign="top"></td></tr> |
---|
693 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
694 | <tr><td class="lineno" valign="top"></td><td class="left"> The result of a request having both an If-Match header field and</td><td> </td><td class="right"> The result of a request having both an If-Match header field and</td><td class="lineno" valign="top"></td></tr> |
---|
695 | <tr><td class="lineno" valign="top"></td><td class="left"> either an If-None-Match or an If-Modified-Since header fields is</td><td> </td><td class="right"> either an If-None-Match or an If-Modified-Since header fields is</td><td class="lineno" valign="top"></td></tr> |
---|
696 | <tr><td class="lineno" valign="top"></td><td class="left"> undefined by this specification.</td><td> </td><td class="right"> undefined by this specification.</td><td class="lineno" valign="top"></td></tr> |
---|
697 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
698 | <tr><td class="lineno" valign="top"></td><td class="left">6.3. If-Modified-Since</td><td> </td><td class="right">6.3. If-Modified-Since</td><td class="lineno" valign="top"></td></tr> |
---|
699 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
700 | <tr><td class="lineno" valign="top"></td><td class="left"> The "If-Modified-Since" request-header field is used to make a</td><td> </td><td class="right"> The "If-Modified-Since" request-header field is used to make a</td><td class="lineno" valign="top"></td></tr> |
---|
701 | <tr><td><a name="diff0065" /></td></tr> |
---|
702 | <tr><td class="lineno" valign="top"></td><td class="lblock"> request method <span class="delete">conditional:</span> if the <span class="delete">requested variant</span> has not been</td><td> </td><td class="rblock"> request method <span class="insert">conditional by date:</span> if the <span class="insert">representation that would</span></td><td class="lineno" valign="top"></td></tr> |
---|
703 | <tr><td class="lineno" valign="top"></td><td class="lblock"> modified since the time specified in this field, <span class="delete">the server will</span> not</td><td> </td><td class="rblock"><span class="insert"> have been transferred in a 200 response to a GET request</span> has not been</td><td class="lineno" valign="top"></td></tr> |
---|
704 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">return an entity;</span> instead, <span class="delete">a 304 (Not Modified) response will be</span></td><td> </td><td class="rblock"> modified since the time specified in this field, <span class="insert">then do</span> not <span class="insert">perform</span></td><td class="lineno" valign="top"></td></tr> |
---|
705 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> returned.</span></td><td> </td><td class="rblock"><span class="insert"> the method;</span> instead, <span class="insert">respond as detailed below.</span></td><td class="lineno" valign="top"></td></tr> |
---|
706 | <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 class="lineno" valign="top"></td><td class="left"> If-Modified-Since = "If-Modified-Since" ":" OWS</td><td> </td><td class="right"> If-Modified-Since = "If-Modified-Since" ":" OWS</td><td class="lineno" valign="top"></td></tr> |
---|
708 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Modified-Since-v</td><td> </td><td class="right"> If-Modified-Since-v</td><td class="lineno" valign="top"></td></tr> |
---|
709 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Modified-Since-v = HTTP-date</td><td> </td><td class="right"> If-Modified-Since-v = HTTP-date</td><td class="lineno" valign="top"></td></tr> |
---|
710 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
711 | <tr><td class="lineno" valign="top"></td><td class="left"> An example of the field is:</td><td> </td><td class="right"> An example of the field is:</td><td class="lineno" valign="top"></td></tr> |
---|
712 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
713 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT</td><td> </td><td class="right"> If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT</td><td class="lineno" valign="top"></td></tr> |
---|
714 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
715 | <tr><td class="lineno" valign="top"></td><td class="left"> A GET method with an If-Modified-Since header and no Range header</td><td> </td><td class="right"> A GET method with an If-Modified-Since header and no Range header</td><td class="lineno" valign="top"></td></tr> |
---|
716 | <tr><td><a name="diff0066" /></td></tr> |
---|
717 | <tr><td class="lineno" valign="top"></td><td class="lblock"> requests that the <span class="delete">identified entity</span> be transferred only if it has</td><td> </td><td class="rblock"> requests that the <span class="insert">representation</span> be transferred only if it has been</td><td class="lineno" valign="top"></td></tr> |
---|
718 | <tr><td class="lineno" valign="top"></td><td class="lblock"> been modified since the date given by the If-Modified-Since header.</td><td> </td><td class="rblock"> modified since the date given by the If-Modified-Since header. The</td><td class="lineno" valign="top"></td></tr> |
---|
719 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The algorithm for determining this includes the following cases:</td><td> </td><td class="rblock"> algorithm for determining this includes the following cases:</td><td class="lineno" valign="top"></td></tr> |
---|
720 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
721 | <tr><td class="lineno" valign="top"></td><td class="left"> 1. If the request would normally result in anything other than a 200</td><td> </td><td class="right"> 1. If the request would normally result in anything other than a 200</td><td class="lineno" valign="top"></td></tr> |
---|
722 | <tr><td><a name="diff0067" /></td></tr> |
---|
723 | <tr><td class="lineno" valign="top"></td><td class="lblock"> (OK) <span class="delete">status,</span> or if the passed If-Modified-Since date is invalid,</td><td> </td><td class="rblock"> (OK) <span class="insert">status code,</span> or if the passed If-Modified-Since date is</td><td class="lineno" valign="top"></td></tr> |
---|
724 | <tr><td class="lineno" valign="top"></td><td class="lblock"> the response is exactly the same as for a normal GET. A date</td><td> </td><td class="rblock"> invalid, the response is exactly the same as for a normal GET. A</td><td class="lineno" valign="top"></td></tr> |
---|
725 | <tr><td class="lineno" valign="top"></td><td class="lblock"> which is later than the server's current time is invalid.</td><td> </td><td class="rblock"> date which is later than the server's current time is invalid.</td><td class="lineno" valign="top"></td></tr> |
---|
726 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
727 | <tr><td><a name="diff0068" /></td></tr> |
---|
728 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2. If the <span class="delete">variant</span> has been modified since the <span class="delete">If-Modified-Since</span></td><td> </td><td class="rblock"> 2. If the <span class="insert">representation</span> has been modified since the <span class="insert">If-Modified-</span></td><td class="lineno" valign="top"></td></tr> |
---|
729 | <tr><td class="lineno" valign="top"></td><td class="lblock"> date, the response is exactly the same as for a normal GET.</td><td> </td><td class="rblock"><span class="insert"> Since</span> date, the response is exactly the same as for a normal GET.</td><td class="lineno" valign="top"></td></tr> |
---|
730 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
731 | <tr><td><a name="diff0069" /></td></tr> |
---|
732 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3. If the <span class="delete">variant</span> has not been modified since a valid <span class="delete">If-Modified-</span></td><td> </td><td class="rblock"> 3. If the <span class="insert">representation</span> has not been modified since a valid <span class="insert">If-</span></td><td class="lineno" valign="top"></td></tr> |
---|
733 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Since</span> date, the server SHOULD return a 304 (Not Modified)</td><td> </td><td class="rblock"><span class="insert"> Modified-Since</span> date, the server SHOULD return a 304 (Not</td><td class="lineno" valign="top"></td></tr> |
---|
734 | <tr><td class="lineno" valign="top"></td><td class="lblock"> response.</td><td> </td><td class="rblock"> Modified) response.</td><td class="lineno" valign="top"></td></tr> |
---|
735 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
736 | <tr><td class="lineno" valign="top"></td><td class="left"> The purpose of this feature is to allow efficient updates of cached</td><td> </td><td class="right"> The purpose of this feature is to allow efficient updates of cached</td><td class="lineno" valign="top"></td></tr> |
---|
737 | <tr><td class="lineno" valign="top"></td><td class="left"> information with a minimum amount of transaction overhead.</td><td> </td><td class="right"> information with a minimum amount of transaction overhead.</td><td class="lineno" valign="top"></td></tr> |
---|
738 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
739 | <tr><td class="lineno" valign="top"></td><td class="left"> Note: The Range request-header field modifies the meaning of If-</td><td> </td><td class="right"> Note: The Range request-header field modifies the meaning of If-</td><td class="lineno" valign="top"></td></tr> |
---|
740 | <tr><td class="lineno" valign="top"></td><td class="left"> Modified-Since; see Section 5.4 of [Part5] for full details.</td><td> </td><td class="right"> Modified-Since; see Section 5.4 of [Part5] for full details.</td><td class="lineno" valign="top"></td></tr> |
---|
741 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
742 | <tr><td class="lineno" valign="top"></td><td class="left"> Note: If-Modified-Since times are interpreted by the server, whose</td><td> </td><td class="right"> Note: If-Modified-Since times are interpreted by the server, whose</td><td class="lineno" valign="top"></td></tr> |
---|
743 | <tr><td class="lineno" valign="top"></td><td class="left"> clock might not be synchronized with the client.</td><td> </td><td class="right"> clock might not be synchronized with the client.</td><td class="lineno" valign="top"></td></tr> |
---|
744 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
745 | <tr><td class="lineno" valign="top"></td><td class="left"> Note: When handling an If-Modified-Since header field, some</td><td> </td><td class="right"> Note: When handling an If-Modified-Since header field, some</td><td class="lineno" valign="top"></td></tr> |
---|
746 | <tr><td class="lineno" valign="top"></td><td class="left"> servers will use an exact date comparison function, rather than a</td><td> </td><td class="right"> servers will use an exact date comparison function, rather than a</td><td class="lineno" valign="top"></td></tr> |
---|
747 | <tr><td class="lineno" valign="top"></td><td class="left"> less-than function, for deciding whether to send a 304 (Not</td><td> </td><td class="right"> less-than function, for deciding whether to send a 304 (Not</td><td class="lineno" valign="top"></td></tr> |
---|
748 | <tr><td class="lineno" valign="top"></td><td class="left"> Modified) response. To get best results when sending an If-</td><td> </td><td class="right"> Modified) response. To get best results when sending an If-</td><td class="lineno" valign="top"></td></tr> |
---|
749 | <tr><td class="lineno" valign="top"></td><td class="left"> Modified-Since header field for cache validation, clients are</td><td> </td><td class="right"> Modified-Since header field for cache validation, clients are</td><td class="lineno" valign="top"></td></tr> |
---|
750 | <tr><td class="lineno" valign="top"></td><td class="left"> advised to use the exact date string received in a previous Last-</td><td> </td><td class="right"> advised to use the exact date string received in a previous Last-</td><td class="lineno" valign="top"></td></tr> |
---|
751 | <tr><td class="lineno" valign="top"></td><td class="left"> Modified header field whenever possible.</td><td> </td><td class="right"> Modified header field whenever possible.</td><td class="lineno" valign="top"></td></tr> |
---|
752 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
753 | <tr><td class="lineno" valign="top"></td><td class="left"> Note: If a client uses an arbitrary date in the If-Modified-Since</td><td> </td><td class="right"> Note: If a client uses an arbitrary date in the If-Modified-Since</td><td class="lineno" valign="top"></td></tr> |
---|
754 | <tr><td class="lineno" valign="top"></td><td class="left"> header instead of a date taken from the Last-Modified header for</td><td> </td><td class="right"> header instead of a date taken from the Last-Modified header for</td><td class="lineno" valign="top"></td></tr> |
---|
755 | <tr><td><a name="diff0070" /></td></tr> |
---|
756 | <tr><td class="lineno" valign="top"></td><td class="lblock"> the same request, the client <span class="delete">should</span> be aware <span class="delete">of the fact</span> that this</td><td> </td><td class="rblock"> the same request, the client <span class="insert">needs to</span> be aware that this date is</td><td class="lineno" valign="top"></td></tr> |
---|
757 | <tr><td class="lineno" valign="top"></td><td class="lblock"> date is interpreted in the server's understanding of time. <span class="delete">The</span></td><td> </td><td class="rblock"> interpreted in the server's understanding of time. <span class="insert">Unsynchronized</span></td><td class="lineno" valign="top"></td></tr> |
---|
758 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> client should consider unsynchronized</span> clocks and rounding <span class="delete">problems</span></td><td> </td><td class="rblock"> clocks and rounding <span class="insert">problems,</span> due to the different encodings of</td><td class="lineno" valign="top"></td></tr> |
---|
759 | <tr><td class="lineno" valign="top"></td><td class="lblock"> due to the different encodings of time between the client and</td><td> </td><td class="rblock"> time between the client and <span class="insert">server, are concerns.</span> This includes</td><td class="lineno" valign="top"></td></tr> |
---|
760 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">server.</span> This includes the possibility of race conditions if the</td><td> </td><td class="rblock"> the possibility of race conditions if the document has changed</td><td class="lineno" valign="top"></td></tr> |
---|
761 | <tr><td class="lineno" valign="top"></td><td class="lblock"> document has changed between the time it was first requested and</td><td> </td><td class="rblock"> between the time it was first requested and the If-Modified-Since</td><td class="lineno" valign="top"></td></tr> |
---|
762 | <tr><td class="lineno" valign="top"></td><td class="lblock"> the If-Modified-Since date of a subsequent request, and the</td><td> </td><td class="rblock"> date of a subsequent request, and the possibility of <span class="insert">clock-skew-</span></td><td class="lineno" valign="top"></td></tr> |
---|
763 | <tr><td class="lineno" valign="top"></td><td class="lblock"> possibility of <span class="delete">clock-skew-related</span> problems if the <span class="delete">If-Modified-</span></td><td> </td><td class="rblock"><span class="insert"> related</span> problems if the <span class="insert">If-Modified-Since</span> date is derived from the</td><td class="lineno" valign="top"></td></tr> |
---|
764 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Since</span> date is derived from the client's clock without correction</td><td> </td><td class="rblock"> client's clock without correction to the server's clock.</td><td class="lineno" valign="top"></td></tr> |
---|
765 | <tr><td class="lineno" valign="top"></td><td class="lblock"> to the server's clock. Corrections for different time bases</td><td> </td><td class="rblock"> Corrections for different time bases between client and server are</td><td class="lineno" valign="top"></td></tr> |
---|
766 | <tr><td class="lineno" valign="top"></td><td class="lblock"> between client and server are at best approximate due to network</td><td> </td><td class="rblock"> at best approximate due to network latency.</td><td class="lineno" valign="top"></td></tr> |
---|
767 | <tr><td class="lineno" valign="top"></td><td class="lblock"> latency.</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 class="lineno" valign="top"></td><td class="left"> The result of a request having both an If-Modified-Since header field</td><td> </td><td class="right"> The result of a request having both an If-Modified-Since header field</td><td class="lineno" valign="top"></td></tr> |
---|
770 | <tr><td class="lineno" valign="top"></td><td class="left"> and either an If-Match or an If-Unmodified-Since header fields is</td><td> </td><td class="right"> and either an If-Match or an If-Unmodified-Since header fields is</td><td class="lineno" valign="top"></td></tr> |
---|
771 | <tr><td class="lineno" valign="top"></td><td class="left"> undefined by this specification.</td><td> </td><td class="right"> undefined by this specification.</td><td class="lineno" valign="top"></td></tr> |
---|
772 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
773 | <tr><td class="lineno" valign="top"></td><td class="left">6.4. If-None-Match</td><td> </td><td class="right">6.4. If-None-Match</td><td class="lineno" valign="top"></td></tr> |
---|
774 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
775 | <tr><td class="lineno" valign="top"></td><td class="left"> The "If-None-Match" request-header field is used to make a request</td><td> </td><td class="right"> The "If-None-Match" request-header field is used to make a request</td><td class="lineno" valign="top"></td></tr> |
---|
776 | <tr><td><a name="diff0071" /></td></tr> |
---|
777 | <tr><td class="lineno" valign="top"></td><td class="lblock"> method conditional. A client that has one or more <span class="delete">entitie</span>s</td><td> </td><td class="rblock"> method conditional. A client that has one or more <span class="insert">representation</span>s</td><td class="lineno" valign="top"></td></tr> |
---|
778 | <tr><td class="lineno" valign="top"></td><td class="left"> previously obtained from the resource can verify that none of those</td><td> </td><td class="right"> previously obtained from the resource can verify that none of those</td><td class="lineno" valign="top"></td></tr> |
---|
779 | <tr><td><a name="diff0072" /></td></tr> |
---|
780 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">entities</span> is current by including a list of their associated <span class="delete">entity</span></td><td> </td><td class="rblock"> <span class="insert">representations</span> is current by including a list of their associated</td><td class="lineno" valign="top"></td></tr> |
---|
781 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> tags</span> in the If-None-Match header field.</td><td> </td><td class="rblock"> <span class="insert">entity-tags</span> in the If-None-Match header field.</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
783 | <tr><td class="lineno" valign="top"></td><td class="left"> This allows efficient updates of cached information with a minimum</td><td> </td><td class="right"> This allows efficient updates of cached information with a minimum</td><td class="lineno" valign="top"></td></tr> |
---|
784 | <tr><td class="lineno" valign="top"></td><td class="left"> amount of transaction overhead. It is also used to prevent a method</td><td> </td><td class="right"> amount of transaction overhead. It is also used to prevent a method</td><td class="lineno" valign="top"></td></tr> |
---|
785 | <tr><td class="lineno" valign="top"></td><td class="left"> (e.g., PUT) from inadvertently modifying an existing resource when</td><td> </td><td class="right"> (e.g., PUT) from inadvertently modifying an existing resource when</td><td class="lineno" valign="top"></td></tr> |
---|
786 | <tr><td class="lineno" valign="top"></td><td class="left"> the client believes that the resource does not exist.</td><td> </td><td class="right"> the client believes that the resource does not exist.</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
788 | <tr><td><a name="diff0073" /></td></tr> |
---|
789 | <tr><td class="lineno" valign="top"></td><td class="lblock"> As a special case, the value "*" matches any current <span class="delete">entity</span> of the</td><td> </td><td class="rblock"> As a special case, the value "*" matches any current <span class="insert">representation</span></td><td class="lineno" valign="top"></td></tr> |
---|
790 | <tr><td class="lineno" valign="top"></td><td class="lblock"> resource.</td><td> </td><td class="rblock"> of the resource.</td><td class="lineno" valign="top"></td></tr> |
---|
791 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
792 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match = "If-None-Match" ":" OWS If-None-Match-v</td><td> </td><td class="right"> If-None-Match = "If-None-Match" ":" OWS If-None-Match-v</td><td class="lineno" valign="top"></td></tr> |
---|
793 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match-v = "*" / 1#entity-tag</td><td> </td><td class="right"> If-None-Match-v = "*" / 1#entity-tag</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
795 | <tr><td><a name="diff0074" /></td></tr> |
---|
796 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If any of the <span class="delete">entity tags</span> match the <span class="delete">entity tag</span> of the <span class="delete">entity</span> that</td><td> </td><td class="rblock"> If any of the <span class="insert">entity-tags</span> match the <span class="insert">entity-tag</span> of the <span class="insert">representation</span></td><td class="lineno" valign="top"></td></tr> |
---|
797 | <tr><td class="lineno" valign="top"></td><td class="lblock"> would have been returned in the response to a similar GET request</td><td> </td><td class="rblock"> that would have been returned in the response to a similar GET</td><td class="lineno" valign="top"></td></tr> |
---|
798 | <tr><td class="lineno" valign="top"></td><td class="lblock"> (without the If-None-Match header) on that resource, or if "*" is</td><td> </td><td class="rblock"> request (without the If-None-Match header) on that resource, or if</td><td class="lineno" valign="top"></td></tr> |
---|
799 | <tr><td class="lineno" valign="top"></td><td class="lblock"> given and any current <span class="delete">entity</span> exists for that resource, then the</td><td> </td><td class="rblock"> "*" is given and any current <span class="insert">representation</span> exists for that resource,</td><td class="lineno" valign="top"></td></tr> |
---|
800 | <tr><td class="lineno" valign="top"></td><td class="lblock"> server MUST NOT perform the requested method, unless required to do</td><td> </td><td class="rblock"> then the server MUST NOT perform the requested method, unless</td><td class="lineno" valign="top"></td></tr> |
---|
801 | <tr><td class="lineno" valign="top"></td><td class="lblock"> so because the resource's modification date fails to match that</td><td> </td><td class="rblock"> required to do so because the resource's modification date fails to</td><td class="lineno" valign="top"></td></tr> |
---|
802 | <tr><td class="lineno" valign="top"></td><td class="lblock"> supplied in an If-Modified-Since header field in the request.</td><td> </td><td class="rblock"> match that supplied in an If-Modified-Since header field in the</td><td class="lineno" valign="top"></td></tr> |
---|
803 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Instead, if the request method was GET or HEAD, the server SHOULD</td><td> </td><td class="rblock"> request. Instead, if the request method was GET or HEAD, the server</td><td class="lineno" valign="top"></td></tr> |
---|
804 | <tr><td class="lineno" valign="top"></td><td class="lblock"> respond with a 304 (Not Modified) response, including the <span class="delete">cache-</span></td><td> </td><td class="rblock"> SHOULD respond with a 304 (Not Modified) response, including the</td><td class="lineno" valign="top"></td></tr> |
---|
805 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> related</span> header fields (particularly ETag) of one of the <span class="delete">entities</span> that</td><td> </td><td class="rblock"> <span class="insert">cache-related</span> header fields (particularly ETag) of one of the</td><td class="lineno" valign="top"></td></tr> |
---|
806 | <tr><td class="lineno" valign="top"></td><td class="lblock"> matched. For all other request methods, the server MUST respond with</td><td> </td><td class="rblock"> <span class="insert">representations</span> that matched. For all other request methods, the</td><td class="lineno" valign="top"></td></tr> |
---|
807 | <tr><td class="lineno" valign="top"></td><td class="lblock"> a <span class="delete">status of</span> 412 (Precondition <span class="delete">Failed).</span></td><td> </td><td class="rblock"> server MUST respond with a 412 (Precondition <span class="insert">Failed) status code.</span></td><td class="lineno" valign="top"></td></tr> |
---|
808 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
809 | <tr><td><a name="diff0075" /></td></tr> |
---|
810 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If none of the entity<span class="delete"> </span>tags match, then the server MAY perform the</td><td> </td><td class="rblock"> If none of the entity<span class="insert">-</span>tags match, then the server MAY perform the</td><td class="lineno" valign="top"></td></tr> |
---|
811 | <tr><td class="lineno" valign="top"></td><td class="left"> requested method as if the If-None-Match header field did not exist,</td><td> </td><td class="right"> requested method as if the If-None-Match header field did not exist,</td><td class="lineno" valign="top"></td></tr> |
---|
812 | <tr><td class="lineno" valign="top"></td><td class="left"> but MUST also ignore any If-Modified-Since header field(s) in the</td><td> </td><td class="right"> but MUST also ignore any If-Modified-Since header field(s) in the</td><td class="lineno" valign="top"></td></tr> |
---|
813 | <tr><td><a name="diff0076" /></td></tr> |
---|
814 | <tr><td class="lineno" valign="top"></td><td class="lblock"> request. That is, if no entity<span class="delete"> </span>tags match, then the server MUST NOT</td><td> </td><td class="rblock"> request. That is, if no entity<span class="insert">-</span>tags match, then the server MUST NOT</td><td class="lineno" valign="top"></td></tr> |
---|
815 | <tr><td class="lineno" valign="top"></td><td class="left"> return a 304 (Not Modified) response.</td><td> </td><td class="right"> return a 304 (Not Modified) response.</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
817 | <tr><td class="lineno" valign="top"></td><td class="left"> If the request would, without the If-None-Match header field, result</td><td> </td><td class="right"> If the request would, without the If-None-Match header field, result</td><td class="lineno" valign="top"></td></tr> |
---|
818 | <tr><td><a name="diff0077" /></td></tr> |
---|
819 | <tr><td class="lineno" valign="top"></td><td class="lblock"> in anything other than a 2xx or 304 <span class="delete">status,</span> then the <span class="delete">If-None-Match</span></td><td> </td><td class="rblock"> in anything other than a 2xx or 304 <span class="insert">status code,</span> then the <span class="insert">If-None-</span></td><td class="lineno" valign="top"></td></tr> |
---|
820 | <tr><td class="lineno" valign="top"></td><td class="lblock"> header MUST be ignored. (See Section 5 for a discussion of server</td><td> </td><td class="rblock"><span class="insert"> Match</span> header MUST be ignored. (See Section 5 for a discussion of</td><td class="lineno" valign="top"></td></tr> |
---|
821 | <tr><td class="lineno" valign="top"></td><td class="lblock"> behavior when both If-Modified-Since and If-None-Match appear in the</td><td> </td><td class="rblock"> server behavior when both If-Modified-Since and If-None-Match appear</td><td class="lineno" valign="top"></td></tr> |
---|
822 | <tr><td class="lineno" valign="top"></td><td class="lblock"> same request.)</td><td> </td><td class="rblock"> in the same request.)</td><td class="lineno" valign="top"></td></tr> |
---|
823 | <tr><td class="lineno" valign="top"></td><td class="lblock"> </td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
824 | <tr><td class="lineno" valign="top"></td><td class="left"> The meaning of "If-None-Match: *" is that the method MUST NOT be</td><td> </td><td class="right"> The meaning of "If-None-Match: *" is that the method MUST NOT be</td><td class="lineno" valign="top"></td></tr> |
---|
825 | <tr><td class="lineno" valign="top"></td><td class="left"> performed if the representation selected by the origin server (or by</td><td> </td><td class="right"> performed if the representation selected by the origin server (or by</td><td class="lineno" valign="top"></td></tr> |
---|
826 | <tr><td class="lineno" valign="top"></td><td class="left"> a cache, possibly using the Vary mechanism, see Section 3.5 of</td><td> </td><td class="right"> a cache, possibly using the Vary mechanism, see Section 3.5 of</td><td class="lineno" valign="top"></td></tr> |
---|
827 | <tr><td class="lineno" valign="top"></td><td class="left"> [Part6]) exists, and SHOULD be performed if the representation does</td><td> </td><td class="right"> [Part6]) exists, and SHOULD be performed if the representation does</td><td class="lineno" valign="top"></td></tr> |
---|
828 | <tr><td class="lineno" valign="top"></td><td class="left"> not exist. This feature is intended to be useful in preventing races</td><td> </td><td class="right"> not exist. This feature is intended to be useful in preventing races</td><td class="lineno" valign="top"></td></tr> |
---|
829 | <tr><td class="lineno" valign="top"></td><td class="left"> between PUT operations.</td><td> </td><td class="right"> between PUT operations.</td><td class="lineno" valign="top"></td></tr> |
---|
830 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
831 | <tr><td class="lineno" valign="top"></td><td class="left"> Examples:</td><td> </td><td class="right"> Examples:</td><td class="lineno" valign="top"></td></tr> |
---|
832 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
833 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match: "xyzzy"</td><td> </td><td class="right"> If-None-Match: "xyzzy"</td><td class="lineno" valign="top"></td></tr> |
---|
834 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
835 | <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 17, line 35</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 17, line 26</em></th><td></td></tr> |
---|
836 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match: W/"xyzzy", W/"r2d2xxxx", W/"c3piozzzz"</td><td> </td><td class="right"> If-None-Match: W/"xyzzy", W/"r2d2xxxx", W/"c3piozzzz"</td><td class="lineno" valign="top"></td></tr> |
---|
837 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match: *</td><td> </td><td class="right"> If-None-Match: *</td><td class="lineno" valign="top"></td></tr> |
---|
838 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
839 | <tr><td class="lineno" valign="top"></td><td class="left"> The result of a request having both an If-None-Match header field and</td><td> </td><td class="right"> The result of a request having both an If-None-Match header field and</td><td class="lineno" valign="top"></td></tr> |
---|
840 | <tr><td class="lineno" valign="top"></td><td class="left"> either an If-Match or an If-Unmodified-Since header fields is</td><td> </td><td class="right"> either an If-Match or an If-Unmodified-Since header fields is</td><td class="lineno" valign="top"></td></tr> |
---|
841 | <tr><td class="lineno" valign="top"></td><td class="left"> undefined by this specification.</td><td> </td><td class="right"> undefined by this specification.</td><td class="lineno" valign="top"></td></tr> |
---|
842 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
843 | <tr><td class="lineno" valign="top"></td><td class="left">6.5. If-Unmodified-Since</td><td> </td><td class="right">6.5. If-Unmodified-Since</td><td class="lineno" valign="top"></td></tr> |
---|
844 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
845 | <tr><td class="lineno" valign="top"></td><td class="left"> The "If-Unmodified-Since" request-header field is used to make a</td><td> </td><td class="right"> The "If-Unmodified-Since" request-header field is used to make a</td><td class="lineno" valign="top"></td></tr> |
---|
846 | <tr><td><a name="diff0078" /></td></tr> |
---|
847 | <tr><td class="lineno" valign="top"></td><td class="lblock"> request method conditional. If the <span class="delete">requested</span> resource has not been</td><td> </td><td class="rblock"> request method conditional. If the <span class="insert">representation that would have</span></td><td class="lineno" valign="top"></td></tr> |
---|
848 | <tr><td class="lineno" valign="top"></td><td class="lblock"> modified since the time specified in this field, the server SHOULD</td><td> </td><td class="rblock"><span class="insert"> been transferred in a 200 response to a GET request on the same</span></td><td class="lineno" valign="top"></td></tr> |
---|
849 | <tr><td class="lineno" valign="top"></td><td class="lblock"> perform the requested operation as if the If-Unmodified-Since header</td><td> </td><td class="rblock"> resource has not been modified since the time specified in this</td><td class="lineno" valign="top"></td></tr> |
---|
850 | <tr><td class="lineno" valign="top"></td><td class="lblock"> were not present.</td><td> </td><td class="rblock"> field, the server SHOULD perform the requested operation as if the</td><td class="lineno" valign="top"></td></tr> |
---|
851 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> If-Unmodified-Since header were not present.</td><td class="lineno" valign="top"></td></tr> |
---|
852 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
853 | <tr><td><a name="diff0079" /></td></tr> |
---|
854 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If the <span class="delete">requested variant</span> has been modified since the specified time,</td><td> </td><td class="rblock"> If the <span class="insert">representation</span> has been modified since the specified time, the</td><td class="lineno" valign="top"></td></tr> |
---|
855 | <tr><td class="lineno" valign="top"></td><td class="lblock"> the server MUST NOT perform the requested operation, and MUST return</td><td> </td><td class="rblock"> server MUST NOT perform the requested operation, and MUST return a</td><td class="lineno" valign="top"></td></tr> |
---|
856 | <tr><td class="lineno" valign="top"></td><td class="lblock"> a 412 (Precondition Failed).</td><td> </td><td class="rblock"> 412 (Precondition Failed).</td><td class="lineno" valign="top"></td></tr> |
---|
857 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
858 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since = "If-Unmodified-Since" ":" OWS</td><td> </td><td class="right"> If-Unmodified-Since = "If-Unmodified-Since" ":" OWS</td><td class="lineno" valign="top"></td></tr> |
---|
859 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since-v</td><td> </td><td class="right"> If-Unmodified-Since-v</td><td class="lineno" valign="top"></td></tr> |
---|
860 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since-v = HTTP-date</td><td> </td><td class="right"> If-Unmodified-Since-v = HTTP-date</td><td class="lineno" valign="top"></td></tr> |
---|
861 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
862 | <tr><td class="lineno" valign="top"></td><td class="left"> An example of the field is:</td><td> </td><td class="right"> An example of the field is:</td><td class="lineno" valign="top"></td></tr> |
---|
863 | <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 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT</td><td> </td><td class="right"> If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT</td><td class="lineno" valign="top"></td></tr> |
---|
865 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
866 | <tr><td class="lineno" valign="top"></td><td class="left"> If the request normally (i.e., without the If-Unmodified-Since</td><td> </td><td class="right"> If the request normally (i.e., without the If-Unmodified-Since</td><td class="lineno" valign="top"></td></tr> |
---|
867 | <tr><td><a name="diff0080" /></td></tr> |
---|
868 | <tr><td class="lineno" valign="top"></td><td class="lblock"> header) would result in anything other than a 2xx or 412 <span class="delete">status,</span> the</td><td> </td><td class="rblock"> header) would result in anything other than a 2xx or 412 <span class="insert">status code,</span></td><td class="lineno" valign="top"></td></tr> |
---|
869 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Unmodified-Since header SHOULD be ignored.</td><td> </td><td class="rblock"> the If-Unmodified-Since header SHOULD be ignored.</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
871 | <tr><td class="lineno" valign="top"></td><td class="left"> If the specified date is invalid, the header is ignored.</td><td> </td><td class="right"> If the specified date is invalid, the header is ignored.</td><td class="lineno" valign="top"></td></tr> |
---|
872 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
873 | <tr><td class="lineno" valign="top"></td><td class="left"> The result of a request having both an If-Unmodified-Since header</td><td> </td><td class="right"> The result of a request having both an If-Unmodified-Since header</td><td class="lineno" valign="top"></td></tr> |
---|
874 | <tr><td class="lineno" valign="top"></td><td class="left"> field and either an If-None-Match or an If-Modified-Since header</td><td> </td><td class="right"> field and either an If-None-Match or an If-Modified-Since header</td><td class="lineno" valign="top"></td></tr> |
---|
875 | <tr><td class="lineno" valign="top"></td><td class="left"> fields is undefined by this specification.</td><td> </td><td class="right"> fields is undefined by this specification.</td><td class="lineno" valign="top"></td></tr> |
---|
876 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
877 | <tr><td class="lineno" valign="top"></td><td class="left">6.6. Last-Modified</td><td> </td><td class="right">6.6. Last-Modified</td><td class="lineno" valign="top"></td></tr> |
---|
878 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
879 | <tr><td><a name="diff0081" /></td></tr> |
---|
880 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The "Last-Modified" <span class="delete">entity-header</span> field indicates the date and time</td><td> </td><td class="rblock"> The "Last-Modified" <span class="insert">header</span> field indicates the date and time at which</td><td class="lineno" valign="top"></td></tr> |
---|
881 | <tr><td class="lineno" valign="top"></td><td class="lblock"> at which the origin server believes the <span class="delete">variant</span> was last modified.</td><td> </td><td class="rblock"> the origin server believes the <span class="insert">representation</span> was last modified.</td><td class="lineno" valign="top"></td></tr> |
---|
882 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
883 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified = "Last-Modified" ":" OWS Last-Modified-v</td><td> </td><td class="right"> Last-Modified = "Last-Modified" ":" OWS Last-Modified-v</td><td class="lineno" valign="top"></td></tr> |
---|
884 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified-v = HTTP-date</td><td> </td><td class="right"> Last-Modified-v = HTTP-date</td><td class="lineno" valign="top"></td></tr> |
---|
885 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
886 | <tr><td class="lineno" valign="top"></td><td class="left"> An example of its use is</td><td> </td><td class="right"> An example of its use is</td><td class="lineno" valign="top"></td></tr> |
---|
887 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
888 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT</td><td> </td><td class="right"> Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT</td><td class="lineno" valign="top"></td></tr> |
---|
889 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
890 | <tr><td class="lineno" valign="top"></td><td class="left"> The exact meaning of this header field depends on the implementation</td><td> </td><td class="right"> The exact meaning of this header field depends on the implementation</td><td class="lineno" valign="top"></td></tr> |
---|
891 | <tr><td class="lineno" valign="top"></td><td class="left"> of the origin server and the nature of the original resource. For</td><td> </td><td class="right"> of the origin server and the nature of the original resource. For</td><td class="lineno" valign="top"></td></tr> |
---|
892 | <tr><td><a name="diff0082" /></td></tr> |
---|
893 | <tr><td class="lineno" valign="top"></td><td class="lblock"> files, it <span class="delete">may</span> be just the file system last-modified time. For</td><td> </td><td class="rblock"> files, it <span class="insert">might</span> be just the file system last-modified time. For</td><td class="lineno" valign="top"></td></tr> |
---|
894 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">entities</span> with dynamically included parts, it <span class="delete">may</span> be the most recent</td><td> </td><td class="rblock"> <span class="insert">representations</span> with dynamically included parts, it <span class="insert">might</span> be the most</td><td class="lineno" valign="top"></td></tr> |
---|
895 | <tr><td class="lineno" valign="top"></td><td class="lblock"> of the set of last-modify times for its component parts. For</td><td> </td><td class="rblock"> recent of the set of last-modify times for its component parts. For</td><td class="lineno" valign="top"></td></tr> |
---|
896 | <tr><td class="lineno" valign="top"></td><td class="lblock"> database gateways, it <span class="delete">may</span> be the last-update time stamp of the</td><td> </td><td class="rblock"> database gateways, it <span class="insert">might</span> be the last-update time stamp of the</td><td class="lineno" valign="top"></td></tr> |
---|
897 | <tr><td class="lineno" valign="top"></td><td class="lblock"> record. For virtual objects, it <span class="delete">may</span> be the last time the internal</td><td> </td><td class="rblock"> record. For virtual objects, it <span class="insert">might</span> be the last time the internal</td><td class="lineno" valign="top"></td></tr> |
---|
898 | <tr><td class="lineno" valign="top"></td><td class="left"> state changed.</td><td> </td><td class="right"> state changed.</td><td class="lineno" valign="top"></td></tr> |
---|
899 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
900 | <tr><td class="lineno" valign="top"></td><td class="left"> An origin server MUST NOT send a Last-Modified date which is later</td><td> </td><td class="right"> An origin server MUST NOT send a Last-Modified date which is later</td><td class="lineno" valign="top"></td></tr> |
---|
901 | <tr><td class="lineno" valign="top"></td><td class="left"> than the server's time of message origination. In such cases, where</td><td> </td><td class="right"> than the server's time of message origination. In such cases, where</td><td class="lineno" valign="top"></td></tr> |
---|
902 | <tr><td class="lineno" valign="top"></td><td class="left"> the resource's last modification would indicate some time in the</td><td> </td><td class="right"> the resource's last modification would indicate some time in the</td><td class="lineno" valign="top"></td></tr> |
---|
903 | <tr><td class="lineno" valign="top"></td><td class="left"> future, the server MUST replace that date with the message</td><td> </td><td class="right"> future, the server MUST replace that date with the message</td><td class="lineno" valign="top"></td></tr> |
---|
904 | <tr><td class="lineno" valign="top"></td><td class="left"> origination date.</td><td> </td><td class="right"> origination date.</td><td class="lineno" valign="top"></td></tr> |
---|
905 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
906 | <tr><td><a name="diff0083" /></td></tr> |
---|
907 | <tr><td class="lineno" valign="top"></td><td class="lblock"> An origin server SHOULD obtain the Last-Modified value of the <span class="delete">entity</span></td><td> </td><td class="rblock"> An origin server SHOULD obtain the Last-Modified value of the</td><td class="lineno" valign="top"></td></tr> |
---|
908 | <tr><td class="lineno" valign="top"></td><td class="lblock"> as close as possible to the time that it generates the Date value of</td><td> </td><td class="rblock"> <span class="insert">representation</span> as close as possible to the time that it generates the</td><td class="lineno" valign="top"></td></tr> |
---|
909 | <tr><td class="lineno" valign="top"></td><td class="lblock"> its response. This allows a recipient to make an accurate assessment</td><td> </td><td class="rblock"> Date value of its response. This allows a recipient to make an</td><td class="lineno" valign="top"></td></tr> |
---|
910 | <tr><td class="lineno" valign="top"></td><td class="lblock"> of the <span class="delete">entity's</span> modification time, especially if the <span class="delete">entity</span> changes</td><td> </td><td class="rblock"> accurate assessment of the <span class="insert">representation's</span> modification time,</td><td class="lineno" valign="top"></td></tr> |
---|
911 | <tr><td class="lineno" valign="top"></td><td class="lblock"> near the time that the response is generated.</td><td> </td><td class="rblock"> especially if the <span class="insert">representation</span> changes near the time that the</td><td class="lineno" valign="top"></td></tr> |
---|
912 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> response is generated.</td><td class="lineno" valign="top"></td></tr> |
---|
913 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
914 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.1 servers SHOULD send Last-Modified whenever feasible.</td><td> </td><td class="right"> HTTP/1.1 servers SHOULD send Last-Modified whenever feasible.</td><td class="lineno" valign="top"></td></tr> |
---|
915 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
916 | <tr><td><a name="diff0084" /></td></tr> |
---|
917 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The Last-Modified <span class="delete">entity-</span>header field value is often used as a cache</td><td> </td><td class="rblock"> The Last-Modified header field value is often used as a cache</td><td class="lineno" valign="top"></td></tr> |
---|
918 | <tr><td class="lineno" valign="top"></td><td class="left"> validator. In simple terms, a cache entry is considered to be valid</td><td> </td><td class="right"> validator. In simple terms, a cache entry is considered to be valid</td><td class="lineno" valign="top"></td></tr> |
---|
919 | <tr><td><a name="diff0085" /></td></tr> |
---|
920 | <tr><td class="lineno" valign="top"></td><td class="lblock"> if the <span class="delete">entity</span> has not been modified since the Last-Modified value.</td><td> </td><td class="rblock"> if the <span class="insert">representation</span> has not been modified since the Last-Modified</td><td class="lineno" valign="top"></td></tr> |
---|
921 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> value.</td><td class="lineno" valign="top"></td></tr> |
---|
922 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
923 | <tr><td class="lineno" valign="top"></td><td class="left">7. IANA Considerations</td><td> </td><td class="right">7. IANA Considerations</td><td class="lineno" valign="top"></td></tr> |
---|
924 | <tr><td><a name="diff0086" /></td></tr> |
---|
925 | <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> |
---|
926 | <tr><td class="lineno" valign="top"></td><td class="left">7.1. Status Code Registration</td><td> </td><td class="right">7.1. Status Code Registration</td><td class="lineno" valign="top"></td></tr> |
---|
927 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
928 | <tr><td class="lineno" valign="top"></td><td class="left"> The HTTP Status Code Registry located at</td><td> </td><td class="right"> The HTTP Status Code Registry located at</td><td class="lineno" valign="top"></td></tr> |
---|
929 | <tr><td><a name="diff0087" /></td></tr> |
---|
930 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <http://www.iana.org/assignments/http-status-codes> sh<span class="delete">ould</span> be updated</td><td> </td><td class="rblock"> <http://www.iana.org/assignments/http-status-codes> sh<span class="insert">all</span> be updated</td><td class="lineno" valign="top"></td></tr> |
---|
931 | <tr><td class="lineno" valign="top"></td><td class="left"> with the registrations below:</td><td> </td><td class="right"> with the registrations below:</td><td class="lineno" valign="top"></td></tr> |
---|
932 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
933 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------+---------------------+-------------+</td><td> </td><td class="right"> +-------+---------------------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
934 | <tr><td class="lineno" valign="top"></td><td class="left"> | Value | Description | Reference |</td><td> </td><td class="right"> | Value | Description | Reference |</td><td class="lineno" valign="top"></td></tr> |
---|
935 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------+---------------------+-------------+</td><td> </td><td class="right"> +-------+---------------------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
936 | <tr><td class="lineno" valign="top"></td><td class="left"> | 304 | Not Modified | Section 3.1 |</td><td> </td><td class="right"> | 304 | Not Modified | Section 3.1 |</td><td class="lineno" valign="top"></td></tr> |
---|
937 | <tr><td class="lineno" valign="top"></td><td class="left"> | 412 | Precondition Failed | Section 3.2 |</td><td> </td><td class="right"> | 412 | Precondition Failed | Section 3.2 |</td><td class="lineno" valign="top"></td></tr> |
---|
938 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------+---------------------+-------------+</td><td> </td><td class="right"> +-------+---------------------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
939 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
940 | <tr><td><a name="diff0088" /></td></tr> |
---|
941 | <tr><td class="lineno" valign="top"></td><td class="lblock">7.2. <span class="delete">Message Header</span> Registration</td><td> </td><td class="rblock">7.2. <span class="insert">Header Field</span> Registration</td><td class="lineno" valign="top"></td></tr> |
---|
942 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
943 | <tr><td><a name="diff0089" /></td></tr> |
---|
944 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The Message Header Registry located at <http://www.iana.org/</td><td> </td><td class="rblock"> The Message Header <span class="insert">Field</span> Registry located at <http://www.iana.org/</td><td class="lineno" valign="top"></td></tr> |
---|
945 | <tr><td class="lineno" valign="top"></td><td class="lblock"> assignments/message-headers/message-header-index.html> <span class="delete">should</span> be</td><td> </td><td class="rblock"> assignments/message-headers/message-header-index.html> <span class="insert">shall</span> be</td><td class="lineno" valign="top"></td></tr> |
---|
946 | <tr><td class="lineno" valign="top"></td><td class="left"> updated with the permanent registrations below (see [RFC3864]):</td><td> </td><td class="right"> updated with the permanent registrations below (see [RFC3864]):</td><td class="lineno" valign="top"></td></tr> |
---|
947 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
948 | <tr><td class="lineno" valign="top"></td><td class="left"> +---------------------+----------+----------+-------------+</td><td> </td><td class="right"> +---------------------+----------+----------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
949 | <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> |
---|
950 | <tr><td class="lineno" valign="top"></td><td class="left"> +---------------------+----------+----------+-------------+</td><td> </td><td class="right"> +---------------------+----------+----------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
951 | <tr><td class="lineno" valign="top"></td><td class="left"> | ETag | http | standard | Section 6.1 |</td><td> </td><td class="right"> | ETag | http | standard | Section 6.1 |</td><td class="lineno" valign="top"></td></tr> |
---|
952 | <tr><td class="lineno" valign="top"></td><td class="left"> | If-Match | http | standard | Section 6.2 |</td><td> </td><td class="right"> | If-Match | http | standard | Section 6.2 |</td><td class="lineno" valign="top"></td></tr> |
---|
953 | <tr><td class="lineno" valign="top"></td><td class="left"> | If-Modified-Since | http | standard | Section 6.3 |</td><td> </td><td class="right"> | If-Modified-Since | http | standard | Section 6.3 |</td><td class="lineno" valign="top"></td></tr> |
---|
954 | <tr><td class="lineno" valign="top"></td><td class="left"> | If-None-Match | http | standard | Section 6.4 |</td><td> </td><td class="right"> | If-None-Match | http | standard | Section 6.4 |</td><td class="lineno" valign="top"></td></tr> |
---|
955 | <tr><td class="lineno" valign="top"></td><td class="left"> | If-Unmodified-Since | http | standard | Section 6.5 |</td><td> </td><td class="right"> | If-Unmodified-Since | http | standard | Section 6.5 |</td><td class="lineno" valign="top"></td></tr> |
---|
956 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
957 | <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 20, line 5</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 19, line 51</em></th><td></td></tr> |
---|
958 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
959 | <tr><td class="lineno" valign="top"></td><td class="left">9. Acknowledgments</td><td> </td><td class="right">9. Acknowledgments</td><td class="lineno" valign="top"></td></tr> |
---|
960 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
961 | <tr><td class="lineno" valign="top"></td><td class="left">10. References</td><td> </td><td class="right">10. References</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
963 | <tr><td class="lineno" valign="top"></td><td class="left">10.1. Normative References</td><td> </td><td class="right">10.1. Normative References</td><td class="lineno" valign="top"></td></tr> |
---|
964 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
965 | <tr><td class="lineno" valign="top"></td><td class="left"> [Part1] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [Part1] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> |
---|
966 | <tr><td class="lineno" valign="top"></td><td class="left"> Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,</td><td> </td><td class="right"> Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,</td><td class="lineno" valign="top"></td></tr> |
---|
967 | <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 1: URIs, Connections,</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 1: URIs, Connections,</td><td class="lineno" valign="top"></td></tr> |
---|
968 | <tr><td><a name="diff0090" /></td></tr> |
---|
969 | <tr><td class="lineno" valign="top"></td><td class="lblock"> and Message Parsing", <span class="delete">draft-ietf-httpbis-p1-messaging-10</span></td><td> </td><td class="rblock"> and Message Parsing", <span class="insert">draft-ietf-httpbis-p1-messaging-11</span></td><td class="lineno" valign="top"></td></tr> |
---|
970 | <tr><td class="lineno" valign="top"></td><td class="lblock"> (work in progress), <span class="delete">July</span> 2010.</td><td> </td><td class="rblock"> (work in progress), <span class="insert">August</span> 2010.</td><td class="lineno" valign="top"></td></tr> |
---|
971 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
972 | <tr><td class="lineno" valign="top"></td><td class="left"> [Part3] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [Part3] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> |
---|
973 | <tr><td class="lineno" valign="top"></td><td class="left"> Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,</td><td> </td><td class="right"> Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,</td><td class="lineno" valign="top"></td></tr> |
---|
974 | <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 3: Message Payload</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 3: Message Payload</td><td class="lineno" valign="top"></td></tr> |
---|
975 | <tr><td><a name="diff0091" /></td></tr> |
---|
976 | <tr><td class="lineno" valign="top"></td><td class="lblock"> and Content Negotiation", <span class="delete">draft-ietf-httpbis-p3-payload-10</span></td><td> </td><td class="rblock"> and Content Negotiation", <span class="insert">draft-ietf-httpbis-p3-payload-11</span></td><td class="lineno" valign="top"></td></tr> |
---|
977 | <tr><td class="lineno" valign="top"></td><td class="lblock"> (work in progress), <span class="delete">July</span> 2010.</td><td> </td><td class="rblock"> (work in progress), <span class="insert">August</span> 2010.</td><td class="lineno" valign="top"></td></tr> |
---|
978 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
979 | <tr><td class="lineno" valign="top"></td><td class="left"> [Part5] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [Part5] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> |
---|
980 | <tr><td class="lineno" valign="top"></td><td class="left"> Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,</td><td> </td><td class="right"> Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,</td><td class="lineno" valign="top"></td></tr> |
---|
981 | <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 5: Range Requests and</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 5: Range Requests and</td><td class="lineno" valign="top"></td></tr> |
---|
982 | <tr><td><a name="diff0092" /></td></tr> |
---|
983 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Partial Responses", <span class="delete">draft-ietf-httpbis-p5-range-10</span> (work</td><td> </td><td class="rblock"> Partial Responses", <span class="insert">draft-ietf-httpbis-p5-range-11</span> (work</td><td class="lineno" valign="top"></td></tr> |
---|
984 | <tr><td class="lineno" valign="top"></td><td class="lblock"> in progress), <span class="delete">July</span> 2010.</td><td> </td><td class="rblock"> in progress), <span class="insert">August</span> 2010.</td><td class="lineno" valign="top"></td></tr> |
---|
985 | <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 | <tr><td class="lineno" valign="top"></td><td class="left"> [Part6] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [Part6] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> |
---|
987 | <tr><td class="lineno" valign="top"></td><td class="left"> Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,</td><td> </td><td class="right"> Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,</td><td class="lineno" valign="top"></td></tr> |
---|
988 | <tr><td class="lineno" valign="top"></td><td class="left"> Nottingham, M., Ed., and J. Reschke, Ed., "HTTP/1.1, part</td><td> </td><td class="right"> Nottingham, M., Ed., and J. Reschke, Ed., "HTTP/1.1, part</td><td class="lineno" valign="top"></td></tr> |
---|
989 | <tr><td><a name="diff0093" /></td></tr> |
---|
990 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 6: Caching", <span class="delete">draft-ietf-httpbis-p6-cache-10</span> (work in</td><td> </td><td class="rblock"> 6: Caching", <span class="insert">draft-ietf-httpbis-p6-cache-11</span> (work in</td><td class="lineno" valign="top"></td></tr> |
---|
991 | <tr><td class="lineno" valign="top"></td><td class="lblock"> progress), <span class="delete">July</span> 2010.</td><td> </td><td class="rblock"> progress), <span class="insert">August</span> 2010.</td><td class="lineno" valign="top"></td></tr> |
---|
992 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
993 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate</td><td> </td><td class="right"> [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate</td><td class="lineno" valign="top"></td></tr> |
---|
994 | <tr><td class="lineno" valign="top"></td><td class="left"> Requirement Levels", BCP 14, RFC 2119, March 1997.</td><td> </td><td class="right"> Requirement Levels", BCP 14, RFC 2119, March 1997.</td><td class="lineno" valign="top"></td></tr> |
---|
995 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
996 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax</td><td> </td><td class="right"> [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax</td><td class="lineno" valign="top"></td></tr> |
---|
997 | <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> |
---|
998 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
999 | <tr><td class="lineno" valign="top"></td><td class="left">10.2. Informative References</td><td> </td><td class="right">10.2. Informative References</td><td class="lineno" valign="top"></td></tr> |
---|
1000 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1001 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> |
---|
1002 | <tr><td class="lineno" valign="top"></td><td class="left"> Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext</td><td> </td><td class="right"> Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext</td><td class="lineno" valign="top"></td></tr> |
---|
1003 | <tr><td class="lineno" valign="top"></td><td class="left"> Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.</td><td> </td><td class="right"> Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.</td><td class="lineno" valign="top"></td></tr> |
---|
1004 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1005 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration</td><td> </td><td class="right"> [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration</td><td class="lineno" valign="top"></td></tr> |
---|
1006 | <tr><td class="lineno" valign="top"></td><td class="left"> Procedures for Message Header Fields", BCP 90, RFC 3864,</td><td> </td><td class="right"> Procedures for Message Header Fields", BCP 90, RFC 3864,</td><td class="lineno" valign="top"></td></tr> |
---|
1007 | <tr><td class="lineno" valign="top"></td><td class="left"> September 2004.</td><td> </td><td class="right"> September 2004.</td><td class="lineno" valign="top"></td></tr> |
---|
1008 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1009 | <tr><td><a name="diff0094" /></td></tr> |
---|
1010 | <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix A. <span class="delete">Compatibility with Previous Versions</span></td><td> </td><td class="rblock">Appendix A. Changes from RFC 2616</td><td class="lineno" valign="top"></td></tr> |
---|
1011 | <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> |
---|
1012 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">A.1.</span> Changes from RFC 2616</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
1013 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1014 | <tr><td><a name="diff0095" /></td></tr> |
---|
1015 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Allow weak entity<span class="delete"> </span>tags in all requests except range requests</td><td> </td><td class="rblock"> Allow weak entity<span class="insert">-</span>tags in all requests except range requests</td><td class="lineno" valign="top"></td></tr> |
---|
1016 | <tr><td class="lineno" valign="top"></td><td class="left"> (Sections 4 and 6.4).</td><td> </td><td class="right"> (Sections 4 and 6.4).</td><td class="lineno" valign="top"></td></tr> |
---|
1017 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1018 | <tr><td class="lineno" valign="top"></td><td class="left">Appendix B. Collected ABNF</td><td> </td><td class="right">Appendix B. Collected ABNF</td><td class="lineno" valign="top"></td></tr> |
---|
1019 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1020 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag = "ETag:" OWS ETag-v</td><td> </td><td class="right"> ETag = "ETag:" OWS ETag-v</td><td class="lineno" valign="top"></td></tr> |
---|
1021 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag-v = entity-tag</td><td> </td><td class="right"> ETag-v = entity-tag</td><td class="lineno" valign="top"></td></tr> |
---|
1022 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1023 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP-date = <HTTP-date, defined in [Part1], Section 6.1></td><td> </td><td class="right"> HTTP-date = <HTTP-date, defined in [Part1], Section 6.1></td><td class="lineno" valign="top"></td></tr> |
---|
1024 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1025 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match = "If-Match:" OWS If-Match-v</td><td> </td><td class="right"> If-Match = "If-Match:" OWS If-Match-v</td><td class="lineno" valign="top"></td></tr> |
---|
1026 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
1027 | <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 24, line 5</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 24, line 5</em></th><td></td></tr> |
---|
1028 | <tr><td class="lineno" valign="top"></td><td class="left"> registrations for optional status codes"</td><td> </td><td class="right"> registrations for optional status codes"</td><td class="lineno" valign="top"></td></tr> |
---|
1029 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1030 | <tr><td class="lineno" valign="top"></td><td class="left">C.10. Since draft-ietf-httpbis-p4-conditional-08</td><td> </td><td class="right">C.10. Since draft-ietf-httpbis-p4-conditional-08</td><td class="lineno" valign="top"></td></tr> |
---|
1031 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1032 | <tr><td class="lineno" valign="top"></td><td class="left"> No significant changes.</td><td> </td><td class="right"> No significant changes.</td><td class="lineno" valign="top"></td></tr> |
---|
1033 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1034 | <tr><td class="lineno" valign="top"></td><td class="left">C.11. Since draft-ietf-httpbis-p4-conditional-09</td><td> </td><td class="right">C.11. Since draft-ietf-httpbis-p4-conditional-09</td><td class="lineno" valign="top"></td></tr> |
---|
1035 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1036 | <tr><td class="lineno" valign="top"></td><td class="left"> No significant changes.</td><td> </td><td class="right"> No significant changes.</td><td class="lineno" valign="top"></td></tr> |
---|
1037 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1038 | <tr><td><a name="diff0096" /></td></tr> |
---|
1039 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">C.12. Since draft-ietf-httpbis-p4-conditional-10</span></td><td class="lineno" valign="top"></td></tr> |
---|
1040 | <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> |
---|
1041 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Closed issues:</span></td><td class="lineno" valign="top"></td></tr> |
---|
1042 | <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> |
---|
1043 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> o <http://tools.ietf.org/wg/httpbis/trac/ticket/69>: "Clarify</span></td><td class="lineno" valign="top"></td></tr> |
---|
1044 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> 'Requested Variant'"</span></td><td class="lineno" valign="top"></td></tr> |
---|
1045 | <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> |
---|
1046 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> o <http://tools.ietf.org/wg/httpbis/trac/ticket/109>: "Clarify</span></td><td class="lineno" valign="top"></td></tr> |
---|
1047 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> entity / representation / variant terminology"</span></td><td class="lineno" valign="top"></td></tr> |
---|
1048 | <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> |
---|
1049 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> o <http://tools.ietf.org/wg/httpbis/trac/ticket/220>: "consider</span></td><td class="lineno" valign="top"></td></tr> |
---|
1050 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> removing the 'changes from 2068' sections"</span></td><td class="lineno" valign="top"></td></tr> |
---|
1051 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr> |
---|
1052 | <tr><td class="lineno" valign="top"></td><td class="left">Index</td><td> </td><td class="right">Index</td><td class="lineno" valign="top"></td></tr> |
---|
1053 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1054 | <tr><td class="lineno" valign="top"></td><td class="left"> 3</td><td> </td><td class="right"> 3</td><td class="lineno" valign="top"></td></tr> |
---|
1055 | <tr><td class="lineno" valign="top"></td><td class="left"> 304 Not Modified (status code) 7</td><td> </td><td class="right"> 304 Not Modified (status code) 7</td><td class="lineno" valign="top"></td></tr> |
---|
1056 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1057 | <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> |
---|
1058 | <tr><td><a name="diff0097" /></td></tr> |
---|
1059 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 412 Precondition Failed (status code) <span class="delete">8</span></td><td> </td><td class="rblock"> 412 Precondition Failed (status code) <span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> |
---|
1060 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1061 | <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> |
---|
1062 | <tr><td><a name="diff0098" /></td></tr> |
---|
1063 | <tr><td class="lineno" valign="top"></td><td class="lblock"> ETag header 1<span class="delete">3</span></td><td> </td><td class="rblock"> ETag header 1<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> |
---|
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 | <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> |
---|
1066 | <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> |
---|
1067 | <tr><td class="lineno" valign="top"></td><td class="left"> entity-tag 5</td><td> </td><td class="right"> entity-tag 5</td><td class="lineno" valign="top"></td></tr> |
---|
1068 | <tr><td><a name="diff0099" /></td></tr> |
---|
1069 | <tr><td class="lineno" valign="top"></td><td class="lblock"> ETag <span class="delete">13</span></td><td> </td><td class="rblock"> ETag <span class="insert">12</span></td><td class="lineno" valign="top"></td></tr> |
---|
1070 | <tr><td class="lineno" valign="top"></td><td class="lblock"> ETag-v <span class="delete">13</span></td><td> </td><td class="rblock"> ETag-v <span class="insert">12</span></td><td class="lineno" valign="top"></td></tr> |
---|
1071 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match 13</td><td> </td><td class="right"> If-Match 13</td><td class="lineno" valign="top"></td></tr> |
---|
1072 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match-v 13</td><td> </td><td class="right"> If-Match-v 13</td><td class="lineno" valign="top"></td></tr> |
---|
1073 | <tr><td><a name="diff0100" /></td></tr> |
---|
1074 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Modified-Since <span class="delete">15</span></td><td> </td><td class="rblock"> If-Modified-Since <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr> |
---|
1075 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Modified-Since-v <span class="delete">15</span></td><td> </td><td class="rblock"> If-Modified-Since-v <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr> |
---|
1076 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match 16</td><td> </td><td class="right"> If-None-Match 16</td><td class="lineno" valign="top"></td></tr> |
---|
1077 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match-v 16</td><td> </td><td class="right"> If-None-Match-v 16</td><td class="lineno" valign="top"></td></tr> |
---|
1078 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since 17</td><td> </td><td class="right"> If-Unmodified-Since 17</td><td class="lineno" valign="top"></td></tr> |
---|
1079 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since-v 17</td><td> </td><td class="right"> If-Unmodified-Since-v 17</td><td class="lineno" valign="top"></td></tr> |
---|
1080 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified 18</td><td> </td><td class="right"> Last-Modified 18</td><td class="lineno" valign="top"></td></tr> |
---|
1081 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified-v 18</td><td> </td><td class="right"> Last-Modified-v 18</td><td class="lineno" valign="top"></td></tr> |
---|
1082 | <tr><td class="lineno" valign="top"></td><td class="left"> opaque-tag 5</td><td> </td><td class="right"> opaque-tag 5</td><td class="lineno" valign="top"></td></tr> |
---|
1083 | <tr><td class="lineno" valign="top"></td><td class="left"> weak 5</td><td> </td><td class="right"> weak 5</td><td class="lineno" valign="top"></td></tr> |
---|
1084 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1085 | <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> |
---|
1086 | <tr><td class="lineno" valign="top"></td><td class="left"> Headers</td><td> </td><td class="right"> Headers</td><td class="lineno" valign="top"></td></tr> |
---|
1087 | <tr><td><a name="diff0101" /></td></tr> |
---|
1088 | <tr><td class="lineno" valign="top"></td><td class="lblock"> ETag 1<span class="delete">3</span></td><td> </td><td class="rblock"> ETag 1<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> |
---|
1089 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match 13</td><td> </td><td class="right"> If-Match 13</td><td class="lineno" valign="top"></td></tr> |
---|
1090 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Modified-Since 14</td><td> </td><td class="right"> If-Modified-Since 14</td><td class="lineno" valign="top"></td></tr> |
---|
1091 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match 16</td><td> </td><td class="right"> If-None-Match 16</td><td class="lineno" valign="top"></td></tr> |
---|
1092 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since 17</td><td> </td><td class="right"> If-Unmodified-Since 17</td><td class="lineno" valign="top"></td></tr> |
---|
1093 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified 18</td><td> </td><td class="right"> Last-Modified 18</td><td class="lineno" valign="top"></td></tr> |
---|
1094 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1095 | <tr><td class="lineno" valign="top"></td><td class="left"> I</td><td> </td><td class="right"> I</td><td class="lineno" valign="top"></td></tr> |
---|
1096 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match header 13</td><td> </td><td class="right"> If-Match header 13</td><td class="lineno" valign="top"></td></tr> |
---|
1097 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Modified-Since header 14</td><td> </td><td class="right"> If-Modified-Since header 14</td><td class="lineno" valign="top"></td></tr> |
---|
1098 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match header 16</td><td> </td><td class="right"> If-None-Match header 16</td><td class="lineno" valign="top"></td></tr> |
---|
1099 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since header 17</td><td> </td><td class="right"> If-Unmodified-Since header 17</td><td class="lineno" valign="top"></td></tr> |
---|
1100 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1101 | <tr><td class="lineno" valign="top"></td><td class="left"> L</td><td> </td><td class="right"> L</td><td class="lineno" valign="top"></td></tr> |
---|
1102 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified header 18</td><td> </td><td class="right"> Last-Modified header 18</td><td class="lineno" valign="top"></td></tr> |
---|
1103 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1104 | <tr><td class="lineno" valign="top"></td><td class="left"> S</td><td> </td><td class="right"> S</td><td class="lineno" valign="top"></td></tr> |
---|
1105 | <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> |
---|
1106 | <tr><td class="lineno" valign="top"></td><td class="left"> 304 Not Modified 7</td><td> </td><td class="right"> 304 Not Modified 7</td><td class="lineno" valign="top"></td></tr> |
---|
1107 | <tr><td><a name="diff0102" /></td></tr> |
---|
1108 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 412 Precondition Failed <span class="delete">8</span></td><td> </td><td class="rblock"> 412 Precondition Failed <span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> |
---|
1109 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
1110 | <tr><td class="lineno" valign="top"></td><td class="left">Authors' Addresses</td><td> </td><td class="right">Authors' Addresses</td><td class="lineno" valign="top"></td></tr> |
---|
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> |
---|
1112 | <tr><td class="lineno" valign="top"></td><td class="left"> Roy T. Fielding (editor)</td><td> </td><td class="right"> Roy T. Fielding (editor)</td><td class="lineno" valign="top"></td></tr> |
---|
1113 | <tr><td class="lineno" valign="top"></td><td class="left"> Day Software</td><td> </td><td class="right"> Day Software</td><td class="lineno" valign="top"></td></tr> |
---|
1114 | <tr><td class="lineno" valign="top"></td><td class="left"> 23 Corporate Plaza DR, Suite 280</td><td> </td><td class="right"> 23 Corporate Plaza DR, Suite 280</td><td class="lineno" valign="top"></td></tr> |
---|
1115 | <tr><td class="lineno" valign="top"></td><td class="left"> Newport Beach, CA 92660</td><td> </td><td class="right"> Newport Beach, CA 92660</td><td class="lineno" valign="top"></td></tr> |
---|
1116 | <tr><td class="lineno" valign="top"></td><td class="left"> USA</td><td> </td><td class="right"> USA</td><td class="lineno" valign="top"></td></tr> |
---|
1117 | <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 class="lineno" valign="top"></td><td class="left"> Phone: +1-949-706-5300</td><td> </td><td class="right"> Phone: +1-949-706-5300</td><td class="lineno" valign="top"></td></tr> |
---|
1119 | |
---|
1120 | <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr> |
---|
1121 | <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 102 change blocks. </a></th></tr> |
---|
1122 | <tr class="stats"><td></td><th><i>265 lines changed or deleted</i></th><th><i> </i></th><th><i>277 lines changed or added</i></th><td></td></tr> |
---|
1123 | <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> |
---|
1124 | </table> |
---|
1125 | </body> |
---|
1126 | </html> |
---|