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: p4-conditional.unpg.txt - rfc7232.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> p4-conditional.unpg.txt </th><th> </th><th> rfc7232.txt </th><th></th></tr> |
---|
39 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
40 | <tr bgcolor="gray" ><td></td><th><a name="part-l1" /><small>skipping to change at</small><em> page 1, line 21</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> page 1, line 21</em></th><td></td></tr> |
---|
41 | <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> |
---|
42 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
43 | <tr><td class="lineno" valign="top"></td><td class="left"> The Hypertext Transfer Protocol (HTTP) is a stateless application-</td><td> </td><td class="right"> The Hypertext Transfer Protocol (HTTP) is a stateless application-</td><td class="lineno" valign="top"></td></tr> |
---|
44 | <tr><td class="lineno" valign="top"></td><td class="left"> level protocol for distributed, collaborative, hypertext information</td><td> </td><td class="right"> level protocol for distributed, collaborative, hypertext information</td><td class="lineno" valign="top"></td></tr> |
---|
45 | <tr><td class="lineno" valign="top"></td><td class="left"> systems. This document defines HTTP/1.1 conditional requests,</td><td> </td><td class="right"> systems. This document defines HTTP/1.1 conditional requests,</td><td class="lineno" valign="top"></td></tr> |
---|
46 | <tr><td class="lineno" valign="top"></td><td class="left"> including metadata header fields for indicating state changes,</td><td> </td><td class="right"> including metadata header fields for indicating state changes,</td><td class="lineno" valign="top"></td></tr> |
---|
47 | <tr><td class="lineno" valign="top"></td><td class="left"> request header fields for making preconditions on such state, and</td><td> </td><td class="right"> request header fields for making preconditions on such state, and</td><td class="lineno" valign="top"></td></tr> |
---|
48 | <tr><td class="lineno" valign="top"></td><td class="left"> rules for constructing the responses to a conditional request when</td><td> </td><td class="right"> rules for constructing the responses to a conditional request when</td><td class="lineno" valign="top"></td></tr> |
---|
49 | <tr><td class="lineno" valign="top"></td><td class="left"> one or more preconditions evaluate to false.</td><td> </td><td class="right"> one or more preconditions evaluate to false.</td><td class="lineno" valign="top"></td></tr> |
---|
50 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
51 | <tr><td><a name="diff0001" /></td></tr> |
---|
52 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">Editorial Note (To be removed by RFC Editor)</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
53 | <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> |
---|
54 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Discussion of this draft takes place on the HTTPBIS working group</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
55 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> mailing list (ietf-http-wg@w3.org), which is archived at</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
56 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> <http://lists.w3.org/Archives/Public/ietf-http-wg/>.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
57 | <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> |
---|
58 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> The current issues list is at</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
59 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> <http://tools.ietf.org/wg/httpbis/trac/report/3> and related</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
60 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> documents (including fancy diffs) can be found at</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
61 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> <http://tools.ietf.org/wg/httpbis/>.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
62 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
63 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> _This is a temporary document for the purpose of tracking the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
64 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> editorial changes made during the AUTH48 (RFC publication) phase._</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
65 | <tr><td class="lineno" valign="top"></td><td class="lblock"> </td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
66 | <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> |
---|
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"> This is an Internet Standards Track document.</td><td> </td><td class="right"> This is an Internet Standards Track document.</td><td class="lineno" valign="top"></td></tr> |
---|
69 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
70 | <tr><td class="lineno" valign="top"></td><td class="left"> This document is a product of the Internet Engineering Task Force</td><td> </td><td class="right"> This document is a product of the Internet Engineering Task Force</td><td class="lineno" valign="top"></td></tr> |
---|
71 | <tr><td class="lineno" valign="top"></td><td class="left"> (IETF). It represents the consensus of the IETF community. It has</td><td> </td><td class="right"> (IETF). It represents the consensus of the IETF community. It has</td><td class="lineno" valign="top"></td></tr> |
---|
72 | <tr><td class="lineno" valign="top"></td><td class="left"> received public review and has been approved for publication by the</td><td> </td><td class="right"> received public review and has been approved for publication by the</td><td class="lineno" valign="top"></td></tr> |
---|
73 | <tr><td class="lineno" valign="top"></td><td class="left"> Internet Engineering Steering Group (IESG). Further information on</td><td> </td><td class="right"> Internet Engineering Steering Group (IESG). Further information on</td><td class="lineno" valign="top"></td></tr> |
---|
74 | <tr><td class="lineno" valign="top"></td><td class="left"> Internet Standards is available in Section 2 of RFC 5741.</td><td> </td><td class="right"> Internet Standards is available in Section 2 of RFC 5741.</td><td class="lineno" valign="top"></td></tr> |
---|
75 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
76 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
77 | <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 3, line 7</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 3, line 7</em></th><td></td></tr> |
---|
78 | <tr><td class="lineno" valign="top"></td><td class="left"> modifications of such material outside the IETF Standards Process.</td><td> </td><td class="right"> modifications of such material outside the IETF Standards Process.</td><td class="lineno" valign="top"></td></tr> |
---|
79 | <tr><td class="lineno" valign="top"></td><td class="left"> Without obtaining an adequate license from the person(s) controlling</td><td> </td><td class="right"> Without obtaining an adequate license from the person(s) controlling</td><td class="lineno" valign="top"></td></tr> |
---|
80 | <tr><td class="lineno" valign="top"></td><td class="left"> the copyright in such materials, this document may not be modified</td><td> </td><td class="right"> the copyright in such materials, this document may not be modified</td><td class="lineno" valign="top"></td></tr> |
---|
81 | <tr><td class="lineno" valign="top"></td><td class="left"> outside the IETF Standards Process, and derivative works of it may</td><td> </td><td class="right"> outside the IETF Standards Process, and derivative works of it may</td><td class="lineno" valign="top"></td></tr> |
---|
82 | <tr><td class="lineno" valign="top"></td><td class="left"> not be created outside the IETF Standards Process, except to format</td><td> </td><td class="right"> not be created outside the IETF Standards Process, except to format</td><td class="lineno" valign="top"></td></tr> |
---|
83 | <tr><td class="lineno" valign="top"></td><td class="left"> it for publication as an RFC or to translate it into languages other</td><td> </td><td class="right"> it for publication as an RFC or to translate it into languages other</td><td class="lineno" valign="top"></td></tr> |
---|
84 | <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> |
---|
85 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
86 | <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> |
---|
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><a name="diff0002" /></td></tr> |
---|
89 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 1. Introduction <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . . . 4</span></td><td> </td><td class="rblock"> 1. Introduction <span class="insert">....................................................4</span></td><td class="lineno" valign="top"></td></tr> |
---|
90 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.1. Conformance and Error Handling <span class="delete">. . . . . . . . . . . . . . 4</span></td><td> </td><td class="rblock"> 1.1. Conformance and Error Handling <span class="insert">.............................4</span></td><td class="lineno" valign="top"></td></tr> |
---|
91 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.2. Syntax Notation <span class="delete">. . . . . . . . . . . . . . . . . . . . . 4</span></td><td> </td><td class="rblock"> 1.2. Syntax Notation <span class="insert">............................................4</span></td><td class="lineno" valign="top"></td></tr> |
---|
92 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2. Validators <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . . . . 5</span></td><td> </td><td class="rblock"> 2. Validators <span class="insert">......................................................5</span></td><td class="lineno" valign="top"></td></tr> |
---|
93 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.1. Weak versus Strong <span class="delete">. . . . . . . . . . . . . . . . . . . . 5</span></td><td> </td><td class="rblock"> 2.1. Weak versus Strong <span class="insert">.........................................5</span></td><td class="lineno" valign="top"></td></tr> |
---|
94 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.2. Last-Modified <span class="delete">. . . . . . . . . . . . . . . . . . . . . . 7</span></td><td> </td><td class="rblock"> 2.2. Last-Modified <span class="insert">..............................................7</span></td><td class="lineno" valign="top"></td></tr> |
---|
95 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.2.1. Generation <span class="delete">. . . . . . . . . . . . . . . . . . . . . . 7</span></td><td> </td><td class="rblock"> 2.2.1. Generation <span class="insert">..........................................7</span></td><td class="lineno" valign="top"></td></tr> |
---|
96 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.2.2. Comparison <span class="delete">. . . . . . . . . . . . . . . . . . . . . . 8</span></td><td> </td><td class="rblock"> 2.2.2. Comparison <span class="insert">..........................................8</span></td><td class="lineno" valign="top"></td></tr> |
---|
97 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.3. ETag <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . . . . . 9</span></td><td> </td><td class="rblock"> 2.3. ETag <span class="insert">.......................................................9</span></td><td class="lineno" valign="top"></td></tr> |
---|
98 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.3.1. Generation <span class="delete">. . . . . . . . . . . . . . . . . . . . . . 10</span></td><td> </td><td class="rblock"> 2.3.1. Generation <span class="insert">.........................................10</span></td><td class="lineno" valign="top"></td></tr> |
---|
99 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.3.2. Comparison <span class="delete">. . . . . . . . . . . . . . . . . . . . . . 10</span></td><td> </td><td class="rblock"> 2.3.2. Comparison <span class="insert">.........................................10</span></td><td class="lineno" valign="top"></td></tr> |
---|
100 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.3.3. Example: Entity-Tags Varying on Content-Negotiated</td><td> </td><td class="rblock"> 2.3.3. Example: Entity-Tags Varying on</td><td class="lineno" valign="top"></td></tr> |
---|
101 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Resources <span class="delete">. . . . . . . . . . . . . . . . . . . . . . 11</span></td><td> </td><td class="rblock"> Content-Negotiated Resources <span class="insert">.......................11</span></td><td class="lineno" valign="top"></td></tr> |
---|
102 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.4. When to Use Entity-Tags and Last-Modified Dates <span class="delete">. . . . . 12</span></td><td> </td><td class="rblock"> 2.4. When to Use Entity-Tags and Last-Modified Dates <span class="insert">...........12</span></td><td class="lineno" valign="top"></td></tr> |
---|
103 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3. Precondition Header Fields <span class="delete">. . . . . . . . . . . . . . . . . . 13</span></td><td> </td><td class="rblock"> 3. Precondition Header Fields <span class="insert">.....................................13</span></td><td class="lineno" valign="top"></td></tr> |
---|
104 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3.1. If-Match <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . . . 13</span></td><td> </td><td class="rblock"> 3.1. If-Match <span class="insert">..................................................13</span></td><td class="lineno" valign="top"></td></tr> |
---|
105 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3.2. If-None-Match <span class="delete">. . . . . . . . . . . . . . . . . . . . . . 14</span></td><td> </td><td class="rblock"> 3.2. If-None-Match <span class="insert">.............................................14</span></td><td class="lineno" valign="top"></td></tr> |
---|
106 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3.3. If-Modified-Since <span class="delete">. . . . . . . . . . . . . . . . . . . . 15</span></td><td> </td><td class="rblock"> 3.3. If-Modified-Since <span class="insert">.........................................16</span></td><td class="lineno" valign="top"></td></tr> |
---|
107 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3.4. If-Unmodified-Since <span class="delete">. . . . . . . . . . . . . . . . . . . 16</span></td><td> </td><td class="rblock"> 3.4. If-Unmodified-Since <span class="insert">.......................................17</span></td><td class="lineno" valign="top"></td></tr> |
---|
108 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3.5. If-Range <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"> 3.5. If-Range <span class="insert">..................................................18</span></td><td class="lineno" valign="top"></td></tr> |
---|
109 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 4. Status Code Definitions <span class="delete">. . . . . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"> 4. Status Code Definitions <span class="insert">........................................18</span></td><td class="lineno" valign="top"></td></tr> |
---|
110 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 4.1. 304 Not Modified <span class="delete">. . . . . . . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"> 4.1. 304 Not Modified <span class="insert">..........................................18</span></td><td class="lineno" valign="top"></td></tr> |
---|
111 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 4.2. 412 Precondition Failed <span class="delete">. . . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"> 4.2. 412 Precondition Failed <span class="insert">...................................19</span></td><td class="lineno" valign="top"></td></tr> |
---|
112 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5. Evaluation <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . . . . 19</span></td><td> </td><td class="rblock"> 5. Evaluation <span class="insert">.....................................................19</span></td><td class="lineno" valign="top"></td></tr> |
---|
113 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 6. Precedence <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . . . . 19</span></td><td> </td><td class="rblock"> 6. Precedence <span class="insert">.....................................................20</span></td><td class="lineno" valign="top"></td></tr> |
---|
114 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 7. IANA Considerations <span class="delete">. . . . . . . . . . . . . . . . . . . . . 21</span></td><td> </td><td class="rblock"> 7. IANA Considerations <span class="insert">............................................22</span></td><td class="lineno" valign="top"></td></tr> |
---|
115 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 7.1. Status Code Registration <span class="delete">. . . . . . . . . . . . . . . . . 21</span></td><td> </td><td class="rblock"> 7.1. Status Code Registration <span class="insert">..................................22</span></td><td class="lineno" valign="top"></td></tr> |
---|
116 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 7.2. Header Field Registration <span class="delete">. . . . . . . . . . . . . . . . 21</span></td><td> </td><td class="rblock"> 7.2. Header Field Registration <span class="insert">.................................22</span></td><td class="lineno" valign="top"></td></tr> |
---|
117 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 8. Security Considerations <span class="delete">. . . . . . . . . . . . . . . . . . . 22</span></td><td> </td><td class="rblock"> 8. Security Considerations <span class="insert">........................................22</span></td><td class="lineno" valign="top"></td></tr> |
---|
118 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 9. Acknowledgments <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . 22</span></td><td> </td><td class="rblock"> 9. Acknowledgments <span class="insert">................................................23</span></td><td class="lineno" valign="top"></td></tr> |
---|
119 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 10. References <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . . . . 23</span></td><td> </td><td class="rblock"> 10. References <span class="insert">....................................................24</span></td><td class="lineno" valign="top"></td></tr> |
---|
120 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 10.1. Normative References <span class="delete">. . . . . . . . . . . . . . . . . . . 23</span></td><td> </td><td class="rblock"> 10.1. Normative References <span class="insert">.....................................24</span></td><td class="lineno" valign="top"></td></tr> |
---|
121 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 10.2. Informative References <span class="delete">. . . . . . . . . . . . . . . . . . 23</span></td><td> </td><td class="rblock"> 10.2. Informative References <span class="insert">...................................24</span></td><td class="lineno" valign="top"></td></tr> |
---|
122 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Appendix A. Changes from RFC 2616 <span class="delete">. . . . . . . . . . . . . . . . 23</span></td><td> </td><td class="rblock"> Appendix A. Changes from RFC 2616 <span class="insert">.................................25</span></td><td class="lineno" valign="top"></td></tr> |
---|
123 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Appendix B. Imported ABNF <span class="delete">. . . . . . . . . . . . . . . . . . . . 24</span></td><td> </td><td class="rblock"> Appendix B. Imported ABNF <span class="insert">.........................................25</span></td><td class="lineno" valign="top"></td></tr> |
---|
124 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Appendix C. Collected ABNF <span class="delete">. . . . . . . . . . . . . . . . . . . 24</span></td><td> </td><td class="rblock"> Appendix C. Collected ABNF <span class="insert">........................................26</span></td><td class="lineno" valign="top"></td></tr> |
---|
125 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Index <span class="delete">. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25</span></td><td> </td><td class="rblock"> Index <span class="insert">.............................................................27</span></td><td class="lineno" valign="top"></td></tr> |
---|
126 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
127 | <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> |
---|
128 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
129 | <tr><td class="lineno" valign="top"></td><td class="left"> Conditional requests are HTTP requests [RFC7231] that include one or</td><td> </td><td class="right"> Conditional requests are HTTP requests [RFC7231] that include one or</td><td class="lineno" valign="top"></td></tr> |
---|
130 | <tr><td class="lineno" valign="top"></td><td class="left"> more header fields indicating a precondition to be tested before</td><td> </td><td class="right"> more header fields indicating a precondition to be tested before</td><td class="lineno" valign="top"></td></tr> |
---|
131 | <tr><td class="lineno" valign="top"></td><td class="left"> applying the method semantics to the target resource. This document</td><td> </td><td class="right"> applying the method semantics to the target resource. This document</td><td class="lineno" valign="top"></td></tr> |
---|
132 | <tr><td class="lineno" valign="top"></td><td class="left"> defines the HTTP/1.1 conditional request mechanisms in terms of the</td><td> </td><td class="right"> defines the HTTP/1.1 conditional request mechanisms in terms of the</td><td class="lineno" valign="top"></td></tr> |
---|
133 | <tr><td class="lineno" valign="top"></td><td class="left"> architecture, syntax notation, and conformance criteria defined in</td><td> </td><td class="right"> architecture, syntax notation, and conformance criteria defined in</td><td class="lineno" valign="top"></td></tr> |
---|
134 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC7230].</td><td> </td><td class="right"> [RFC7230].</td><td class="lineno" valign="top"></td></tr> |
---|
135 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
136 | <tr><td class="lineno" valign="top"></td><td class="left"> Conditional GET requests are the most efficient mechanism for HTTP</td><td> </td><td class="right"> Conditional GET requests are the most efficient mechanism for HTTP</td><td class="lineno" valign="top"></td></tr> |
---|
137 | <tr><td><a name="diff0003" /></td></tr> |
---|
138 | <tr><td class="lineno" valign="top"></td><td class="lblock"> cache updates [RFC7234]. Conditionals can also be applied to <span class="delete">state-</span></td><td> </td><td class="rblock"> cache updates [RFC7234]. Conditionals can also be applied to</td><td class="lineno" valign="top"></td></tr> |
---|
139 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> changing</span> methods, such as PUT and DELETE, to prevent the "lost</td><td> </td><td class="rblock"> <span class="insert">state-changing</span> methods, such as PUT and DELETE, to prevent the "lost</td><td class="lineno" valign="top"></td></tr> |
---|
140 | <tr><td class="lineno" valign="top"></td><td class="left"> update" problem: one client accidentally overwriting the work of</td><td> </td><td class="right"> update" problem: one client accidentally overwriting the work of</td><td class="lineno" valign="top"></td></tr> |
---|
141 | <tr><td class="lineno" valign="top"></td><td class="left"> another client that has been acting in parallel.</td><td> </td><td class="right"> another client that has been acting in parallel.</td><td class="lineno" valign="top"></td></tr> |
---|
142 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
143 | <tr><td class="lineno" valign="top"></td><td class="left"> Conditional request preconditions are based on the state of the</td><td> </td><td class="right"> Conditional request preconditions are based on the state of the</td><td class="lineno" valign="top"></td></tr> |
---|
144 | <tr><td class="lineno" valign="top"></td><td class="left"> target resource as a whole (its current value set) or the state as</td><td> </td><td class="right"> target resource as a whole (its current value set) or the state as</td><td class="lineno" valign="top"></td></tr> |
---|
145 | <tr><td class="lineno" valign="top"></td><td class="left"> observed in a previously obtained representation (one value in that</td><td> </td><td class="right"> observed in a previously obtained representation (one value in that</td><td class="lineno" valign="top"></td></tr> |
---|
146 | <tr><td class="lineno" valign="top"></td><td class="left"> set). A resource might have multiple current representations, each</td><td> </td><td class="right"> set). A resource might have multiple current representations, each</td><td class="lineno" valign="top"></td></tr> |
---|
147 | <tr><td class="lineno" valign="top"></td><td class="left"> with its own observable state. The conditional request mechanisms</td><td> </td><td class="right"> with its own observable state. The conditional request mechanisms</td><td class="lineno" valign="top"></td></tr> |
---|
148 | <tr><td class="lineno" valign="top"></td><td class="left"> assume that the mapping of requests to a "selected representation"</td><td> </td><td class="right"> assume that the mapping of requests to a "selected representation"</td><td class="lineno" valign="top"></td></tr> |
---|
149 | <tr><td class="lineno" valign="top"></td><td class="left"> (Section 3 of [RFC7231]) will be consistent over time if the server</td><td> </td><td class="right"> (Section 3 of [RFC7231]) will be consistent over time if the server</td><td class="lineno" valign="top"></td></tr> |
---|
150 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
151 | <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 8, line 48</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 9, line 4</em></th><td></td></tr> |
---|
152 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
153 | <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> |
---|
154 | <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> |
---|
155 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
156 | <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> |
---|
157 | <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> |
---|
158 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
159 | <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> |
---|
160 | <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> |
---|
161 | <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> |
---|
162 | <tr><td><a name="diff0004" /></td></tr> |
---|
163 | <tr><td class="lineno" valign="top"></td><td class="lblock"> have a Date value equal to its Last-Modified time. The arbitrary <span class="delete">60-</span></td><td> </td><td class="rblock"> have a Date value equal to its Last-Modified time. The arbitrary</td><td class="lineno" valign="top"></td></tr> |
---|
164 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> second</span> limit guards against the possibility that the Date and <span class="delete">Last-</span></td><td> </td><td class="rblock"> <span class="insert">60-second</span> limit guards against the possibility that the Date and</td><td class="lineno" valign="top"></td></tr> |
---|
165 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Modified</span> values are generated from different clocks or at somewhat</td><td> </td><td class="rblock"> <span class="insert">Last-Modified</span> values are generated from different clocks or at</td><td class="lineno" valign="top"></td></tr> |
---|
166 | <tr><td class="lineno" valign="top"></td><td class="lblock"> different times during the preparation of the response. An</td><td> </td><td class="rblock"> somewhat different times during the preparation of the response. An</td><td class="lineno" valign="top"></td></tr> |
---|
167 | <tr><td class="lineno" valign="top"></td><td class="left"> implementation MAY use a value larger than 60 seconds, if it is</td><td> </td><td class="right"> implementation MAY use a value larger than 60 seconds, if it is</td><td class="lineno" valign="top"></td></tr> |
---|
168 | <tr><td class="lineno" valign="top"></td><td class="left"> believed that 60 seconds is too short.</td><td> </td><td class="right"> believed that 60 seconds is too short.</td><td class="lineno" valign="top"></td></tr> |
---|
169 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
170 | <tr><td class="lineno" valign="top"></td><td class="left">2.3. ETag</td><td> </td><td class="right">2.3. ETag</td><td class="lineno" valign="top"></td></tr> |
---|
171 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
172 | <tr><td class="lineno" valign="top"></td><td class="left"> The "ETag" header field in a response provides the current entity-tag</td><td> </td><td class="right"> The "ETag" header field in a response provides the current entity-tag</td><td class="lineno" valign="top"></td></tr> |
---|
173 | <tr><td class="lineno" valign="top"></td><td class="left"> for the selected representation, as determined at the conclusion of</td><td> </td><td class="right"> for the selected representation, as determined at the conclusion of</td><td class="lineno" valign="top"></td></tr> |
---|
174 | <tr><td class="lineno" valign="top"></td><td class="left"> handling the request. An entity-tag is an opaque validator for</td><td> </td><td class="right"> handling the request. An entity-tag is an opaque validator for</td><td class="lineno" valign="top"></td></tr> |
---|
175 | <tr><td class="lineno" valign="top"></td><td class="left"> differentiating between multiple representations of the same</td><td> </td><td class="right"> differentiating between multiple representations of the same</td><td class="lineno" valign="top"></td></tr> |
---|
176 | <tr><td class="lineno" valign="top"></td><td class="left"> resource, regardless of whether those multiple representations are</td><td> </td><td class="right"> resource, regardless of whether those multiple representations are</td><td class="lineno" valign="top"></td></tr> |
---|
177 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
178 | <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 12, line 37</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 13, line 6</em></th><td></td></tr> |
---|
179 | <tr><td class="lineno" valign="top"></td><td class="left"> send both a strong entity-tag and a Last-Modified value in successful</td><td> </td><td class="right"> send both a strong entity-tag and a Last-Modified value in successful</td><td class="lineno" valign="top"></td></tr> |
---|
180 | <tr><td class="lineno" valign="top"></td><td class="left"> responses to a retrieval request.</td><td> </td><td class="right"> responses to a retrieval request.</td><td class="lineno" valign="top"></td></tr> |
---|
181 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
182 | <tr><td class="lineno" valign="top"></td><td class="left"> A client:</td><td> </td><td class="right"> A client:</td><td class="lineno" valign="top"></td></tr> |
---|
183 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
184 | <tr><td class="lineno" valign="top"></td><td class="left"> o MUST send that entity-tag in any cache validation request (using</td><td> </td><td class="right"> o MUST send that entity-tag in any cache validation request (using</td><td class="lineno" valign="top"></td></tr> |
---|
185 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match or If-None-Match) if an entity-tag has been provided by</td><td> </td><td class="right"> If-Match or If-None-Match) if an entity-tag has been provided by</td><td class="lineno" valign="top"></td></tr> |
---|
186 | <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> |
---|
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"> o SHOULD send the Last-Modified value in non-subrange cache</td><td> </td><td class="right"> o SHOULD send the Last-Modified value in non-subrange cache</td><td class="lineno" valign="top"></td></tr> |
---|
189 | <tr><td><a name="diff0005" /></td></tr> |
---|
190 | <tr><td class="lineno" valign="top"></td><td class="lblock"> validation requests (using If-Modified-Since) if only a <span class="delete">Last-</span></td><td> </td><td class="rblock"> validation requests (using If-Modified-Since) if only a</td><td class="lineno" valign="top"></td></tr> |
---|
191 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Modified</span> value has been provided by the origin server.</td><td> </td><td class="rblock"> <span class="insert">Last-Modified</span> value has been provided by the origin server.</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"> o MAY send the Last-Modified value in subrange cache validation</td><td> </td><td class="right"> o MAY send the Last-Modified value in subrange cache validation</td><td class="lineno" valign="top"></td></tr> |
---|
194 | <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> |
---|
195 | <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> |
---|
196 | <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> |
---|
197 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
198 | <tr><td class="lineno" valign="top"></td><td class="left"> o SHOULD send both validators in cache validation requests if both</td><td> </td><td class="right"> o SHOULD send both validators in cache validation requests if both</td><td class="lineno" valign="top"></td></tr> |
---|
199 | <tr><td class="lineno" valign="top"></td><td class="left"> an entity-tag and a Last-Modified value have been provided by the</td><td> </td><td class="right"> an entity-tag and a Last-Modified value have been provided by the</td><td class="lineno" valign="top"></td></tr> |
---|
200 | <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> |
---|
201 | <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> |
---|
202 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
203 | <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 15, line 42</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 16, line 21</em></th><td></td></tr> |
---|
204 | <tr><td class="lineno" valign="top"></td><td class="left"> data has not changed.</td><td> </td><td class="right"> data has not changed.</td><td class="lineno" valign="top"></td></tr> |
---|
205 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
206 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Modified-Since = HTTP-date</td><td> </td><td class="right"> If-Modified-Since = HTTP-date</td><td class="lineno" valign="top"></td></tr> |
---|
207 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
208 | <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> |
---|
209 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
210 | <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> |
---|
211 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
212 | <tr><td class="lineno" valign="top"></td><td class="left"> A recipient MUST ignore If-Modified-Since if the request contains an</td><td> </td><td class="right"> A recipient MUST ignore If-Modified-Since if the request contains an</td><td class="lineno" valign="top"></td></tr> |
---|
213 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match header field; the condition in If-None-Match is</td><td> </td><td class="right"> If-None-Match header field; the condition in If-None-Match is</td><td class="lineno" valign="top"></td></tr> |
---|
214 | <tr><td><a name="diff0006" /></td></tr> |
---|
215 | <tr><td class="lineno" valign="top"></td><td class="lblock"> considered to be a more accurate replacement for the condition in <span class="delete">If-</span></td><td> </td><td class="rblock"> considered to be a more accurate replacement for the condition in</td><td class="lineno" valign="top"></td></tr> |
---|
216 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Modified-Since,</span> and the two are only combined for the sake of</td><td> </td><td class="rblock"> <span class="insert">If-Modified-Since,</span> and the two are only combined for the sake of</td><td class="lineno" valign="top"></td></tr> |
---|
217 | <tr><td class="lineno" valign="top"></td><td class="lblock"> interoperating with older intermediaries that might not implement <span class="delete">If-</span></td><td> </td><td class="rblock"> interoperating with older intermediaries that might not implement</td><td class="lineno" valign="top"></td></tr> |
---|
218 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> None-Match.</span></td><td> </td><td class="rblock"> <span class="insert">If-None-Match.</span></td><td class="lineno" valign="top"></td></tr> |
---|
219 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
220 | <tr><td class="lineno" valign="top"></td><td class="left"> A recipient MUST ignore the If-Modified-Since header field if the</td><td> </td><td class="right"> A recipient MUST ignore the If-Modified-Since header field if the</td><td class="lineno" valign="top"></td></tr> |
---|
221 | <tr><td class="lineno" valign="top"></td><td class="left"> received field-value is not a valid HTTP-date, or if the request</td><td> </td><td class="right"> received field-value is not a valid HTTP-date, or if the request</td><td class="lineno" valign="top"></td></tr> |
---|
222 | <tr><td class="lineno" valign="top"></td><td class="left"> method is neither GET nor HEAD.</td><td> </td><td class="right"> method is neither GET nor HEAD.</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 class="lineno" valign="top"></td><td class="left"> A recipient MUST interpret an If-Modified-Since field-value's</td><td> </td><td class="right"> A recipient MUST interpret an If-Modified-Since field-value's</td><td class="lineno" valign="top"></td></tr> |
---|
225 | <tr><td class="lineno" valign="top"></td><td class="left"> timestamp in terms of the origin server's clock.</td><td> </td><td class="right"> timestamp in terms of the origin server's clock.</td><td class="lineno" valign="top"></td></tr> |
---|
226 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
227 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Modified-Since is typically used for two distinct purposes: 1) to</td><td> </td><td class="right"> If-Modified-Since is typically used for two distinct purposes: 1) to</td><td class="lineno" valign="top"></td></tr> |
---|
228 | <tr><td class="lineno" valign="top"></td><td class="left"> allow efficient updates of a cached representation that does not have</td><td> </td><td class="right"> allow efficient updates of a cached representation that does not have</td><td class="lineno" valign="top"></td></tr> |
---|
229 | <tr><td class="lineno" valign="top"></td><td class="left"> an entity-tag and 2) to limit the scope of a web traversal to</td><td> </td><td class="right"> an entity-tag and 2) to limit the scope of a web traversal to</td><td class="lineno" valign="top"></td></tr> |
---|
230 | <tr><td class="lineno" valign="top"></td><td class="left"> resources that have recently changed.</td><td> </td><td class="right"> resources that have recently changed.</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 class="lineno" valign="top"></td><td class="left"> When used for cache updates, a cache will typically use the value of</td><td> </td><td class="right"> When used for cache updates, a cache will typically use the value of</td><td class="lineno" valign="top"></td></tr> |
---|
233 | <tr><td class="lineno" valign="top"></td><td class="left"> the cached message's Last-Modified field to generate the field value</td><td> </td><td class="right"> the cached message's Last-Modified field to generate the field value</td><td class="lineno" valign="top"></td></tr> |
---|
234 | <tr><td class="lineno" valign="top"></td><td class="left"> of If-Modified-Since. This behavior is most interoperable for cases</td><td> </td><td class="right"> of If-Modified-Since. This behavior is most interoperable for cases</td><td class="lineno" valign="top"></td></tr> |
---|
235 | <tr><td class="lineno" valign="top"></td><td class="left"> where clocks are poorly synchronized or when the server has chosen to</td><td> </td><td class="right"> where clocks are poorly synchronized or when the server has chosen to</td><td class="lineno" valign="top"></td></tr> |
---|
236 | <tr><td><a name="diff0007" /></td></tr> |
---|
237 | <tr><td class="lineno" valign="top"></td><td class="lblock"> only honor exact timestamp matches (due to a problem with <span class="delete">Last-</span></td><td> </td><td class="rblock"> only honor exact timestamp matches (due to a problem with</td><td class="lineno" valign="top"></td></tr> |
---|
238 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Modified</span> dates that appear to go "back in time" when the origin</td><td> </td><td class="rblock"> <span class="insert">Last-Modified</span> dates that appear to go "back in time" when the origin</td><td class="lineno" valign="top"></td></tr> |
---|
239 | <tr><td class="lineno" valign="top"></td><td class="left"> server's clock is corrected or a representation is restored from an</td><td> </td><td class="right"> server's clock is corrected or a representation is restored from an</td><td class="lineno" valign="top"></td></tr> |
---|
240 | <tr><td class="lineno" valign="top"></td><td class="left"> archived backup). However, caches occasionally generate the field</td><td> </td><td class="right"> archived backup). However, caches occasionally generate the field</td><td class="lineno" valign="top"></td></tr> |
---|
241 | <tr><td class="lineno" valign="top"></td><td class="left"> value based on other data, such as the Date header field of the</td><td> </td><td class="right"> value based on other data, such as the Date header field of the</td><td class="lineno" valign="top"></td></tr> |
---|
242 | <tr><td class="lineno" valign="top"></td><td class="left"> cached message or the local clock time that the message was received,</td><td> </td><td class="right"> cached message or the local clock time that the message was received,</td><td class="lineno" valign="top"></td></tr> |
---|
243 | <tr><td class="lineno" valign="top"></td><td class="left"> particularly when the cached message does not contain a Last-Modified</td><td> </td><td class="right"> particularly when the cached message does not contain a Last-Modified</td><td class="lineno" valign="top"></td></tr> |
---|
244 | <tr><td class="lineno" valign="top"></td><td class="left"> field.</td><td> </td><td class="right"> field.</td><td class="lineno" valign="top"></td></tr> |
---|
245 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
246 | <tr><td class="lineno" valign="top"></td><td class="left"> When used for limiting the scope of retrieval to a recent time</td><td> </td><td class="right"> When used for limiting the scope of retrieval to a recent time</td><td class="lineno" valign="top"></td></tr> |
---|
247 | <tr><td class="lineno" valign="top"></td><td class="left"> window, a user agent will generate an If-Modified-Since field value</td><td> </td><td class="right"> window, a user agent will generate an If-Modified-Since field value</td><td class="lineno" valign="top"></td></tr> |
---|
248 | <tr><td class="lineno" valign="top"></td><td class="left"> based on either its own local clock or a Date header field received</td><td> </td><td class="right"> based on either its own local clock or a Date header field received</td><td class="lineno" valign="top"></td></tr> |
---|
249 | <tr><td class="lineno" valign="top"></td><td class="left"> from the server in a prior response. Origin servers that choose an</td><td> </td><td class="right"> from the server in a prior response. Origin servers that choose an</td><td class="lineno" valign="top"></td></tr> |
---|
250 | <tr><td><a name="diff0008" /></td></tr> |
---|
251 | <tr><td class="lineno" valign="top"></td><td class="lblock"> exact timestamp match based on the selected representation's <span class="delete">Last-</span></td><td> </td><td class="rblock"> exact timestamp match based on the selected representation's</td><td class="lineno" valign="top"></td></tr> |
---|
252 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Modified</span> field will not be able to help the user agent limit its data</td><td> </td><td class="rblock"> <span class="insert">Last-Modified</span> field will not be able to help the user agent limit its</td><td class="lineno" valign="top"></td></tr> |
---|
253 | <tr><td class="lineno" valign="top"></td><td class="lblock"> transfers to only those changed during the specified window.</td><td> </td><td class="rblock"> data transfers to only those changed during the specified window.</td><td class="lineno" valign="top"></td></tr> |
---|
254 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
255 | <tr><td class="lineno" valign="top"></td><td class="left"> An origin server that receives an If-Modified-Since header field</td><td> </td><td class="right"> An origin server that receives an If-Modified-Since header field</td><td class="lineno" valign="top"></td></tr> |
---|
256 | <tr><td class="lineno" valign="top"></td><td class="left"> SHOULD evaluate the condition prior to performing the method</td><td> </td><td class="right"> SHOULD evaluate the condition prior to performing the method</td><td class="lineno" valign="top"></td></tr> |
---|
257 | <tr><td class="lineno" valign="top"></td><td class="left"> (Section 5). The origin server SHOULD NOT perform the requested</td><td> </td><td class="right"> (Section 5). The origin server SHOULD NOT perform the requested</td><td class="lineno" valign="top"></td></tr> |
---|
258 | <tr><td class="lineno" valign="top"></td><td class="left"> method if the selected representation's last modification date is</td><td> </td><td class="right"> method if the selected representation's last modification date is</td><td class="lineno" valign="top"></td></tr> |
---|
259 | <tr><td class="lineno" valign="top"></td><td class="left"> earlier than or equal to the date provided in the field-value;</td><td> </td><td class="right"> earlier than or equal to the date provided in the field-value;</td><td class="lineno" valign="top"></td></tr> |
---|
260 | <tr><td class="lineno" valign="top"></td><td class="left"> instead, the origin server SHOULD generate a 304 (Not Modified)</td><td> </td><td class="right"> instead, the origin server SHOULD generate a 304 (Not Modified)</td><td class="lineno" valign="top"></td></tr> |
---|
261 | <tr><td class="lineno" valign="top"></td><td class="left"> response, including only those metadata that are useful for</td><td> </td><td class="right"> response, including only those metadata that are useful for</td><td class="lineno" valign="top"></td></tr> |
---|
262 | <tr><td class="lineno" valign="top"></td><td class="left"> identifying or updating a previously cached response.</td><td> </td><td class="right"> identifying or updating a previously cached response.</td><td class="lineno" valign="top"></td></tr> |
---|
263 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
264 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
265 | <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 17, line 13</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 17, line 41</em></th><td></td></tr> |
---|
266 | <tr><td class="lineno" valign="top"></td><td class="left"> the user agent does not have an entity-tag for the representation.</td><td> </td><td class="right"> the user agent does not have an entity-tag for the representation.</td><td class="lineno" valign="top"></td></tr> |
---|
267 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
268 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since = HTTP-date</td><td> </td><td class="right"> If-Unmodified-Since = HTTP-date</td><td class="lineno" valign="top"></td></tr> |
---|
269 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
270 | <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> |
---|
271 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
272 | <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> |
---|
273 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
274 | <tr><td class="lineno" valign="top"></td><td class="left"> A recipient MUST ignore If-Unmodified-Since if the request contains</td><td> </td><td class="right"> A recipient MUST ignore If-Unmodified-Since if the request contains</td><td class="lineno" valign="top"></td></tr> |
---|
275 | <tr><td class="lineno" valign="top"></td><td class="left"> an If-Match header field; the condition in If-Match is considered to</td><td> </td><td class="right"> an If-Match header field; the condition in If-Match is considered to</td><td class="lineno" valign="top"></td></tr> |
---|
276 | <tr><td><a name="diff0009" /></td></tr> |
---|
277 | <tr><td class="lineno" valign="top"></td><td class="lblock"> be a more accurate replacement for the condition in <span class="delete">If-Unmodified-</span></td><td> </td><td class="rblock"> be a more accurate replacement for the condition in</td><td class="lineno" valign="top"></td></tr> |
---|
278 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Since,</span> and the two are only combined for the sake of interoperating</td><td> </td><td class="rblock"> <span class="insert">If-Unmodified-Since,</span> and the two are only combined for the sake of</td><td class="lineno" valign="top"></td></tr> |
---|
279 | <tr><td class="lineno" valign="top"></td><td class="lblock"> with older intermediaries that might not implement If-Match.</td><td> </td><td class="rblock"> interoperating with older intermediaries that might not implement</td><td class="lineno" valign="top"></td></tr> |
---|
280 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> If-Match.</td><td class="lineno" valign="top"></td></tr> |
---|
281 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
282 | <tr><td class="lineno" valign="top"></td><td class="left"> A recipient MUST ignore the If-Unmodified-Since header field if the</td><td> </td><td class="right"> A recipient MUST ignore the If-Unmodified-Since header field if the</td><td class="lineno" valign="top"></td></tr> |
---|
283 | <tr><td class="lineno" valign="top"></td><td class="left"> received field-value is not a valid HTTP-date.</td><td> </td><td class="right"> received field-value is not a valid HTTP-date.</td><td class="lineno" valign="top"></td></tr> |
---|
284 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
285 | <tr><td class="lineno" valign="top"></td><td class="left"> A recipient MUST interpret an If-Unmodified-Since field-value's</td><td> </td><td class="right"> A recipient MUST interpret an If-Unmodified-Since field-value's</td><td class="lineno" valign="top"></td></tr> |
---|
286 | <tr><td class="lineno" valign="top"></td><td class="left"> timestamp in terms of the origin server's clock.</td><td> </td><td class="right"> timestamp in terms of the origin server's clock.</td><td class="lineno" valign="top"></td></tr> |
---|
287 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
288 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since is most often used with state-changing methods</td><td> </td><td class="right"> If-Unmodified-Since is most often used with state-changing methods</td><td class="lineno" valign="top"></td></tr> |
---|
289 | <tr><td class="lineno" valign="top"></td><td class="left"> (e.g., POST, PUT, DELETE) to prevent accidental overwrites when</td><td> </td><td class="right"> (e.g., POST, PUT, DELETE) to prevent accidental overwrites when</td><td class="lineno" valign="top"></td></tr> |
---|
290 | <tr><td class="lineno" valign="top"></td><td class="left"> multiple user agents might be acting in parallel on a resource that</td><td> </td><td class="right"> multiple user agents might be acting in parallel on a resource that</td><td class="lineno" valign="top"></td></tr> |
---|
291 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
292 | <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 25, line 32</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 27, line 8</em></th><td></td></tr> |
---|
293 | <tr><td class="lineno" valign="top"></td><td class="left"> / obs-text</td><td> </td><td class="right"> / obs-text</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"> obs-text = <obs-text, see [RFC7230], Section 3.2.6></td><td> </td><td class="right"> obs-text = <obs-text, see [RFC7230], Section 3.2.6></td><td class="lineno" valign="top"></td></tr> |
---|
296 | <tr><td class="lineno" valign="top"></td><td class="left"> opaque-tag = DQUOTE *etagc DQUOTE</td><td> </td><td class="right"> opaque-tag = DQUOTE *etagc DQUOTE</td><td class="lineno" valign="top"></td></tr> |
---|
297 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
298 | <tr><td class="lineno" valign="top"></td><td class="left"> weak = %x57.2F ; W/</td><td> </td><td class="right"> weak = %x57.2F ; W/</td><td class="lineno" valign="top"></td></tr> |
---|
299 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
300 | <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> |
---|
301 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
302 | <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> |
---|
303 | <tr><td><a name="diff0010" /></td></tr> |
---|
304 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 304 Not Modified (status code) 1<span class="delete">8</span></td><td> </td><td class="rblock"> 304 Not Modified (status code) 1<span class="insert">9</span></td><td class="lineno" valign="top"></td></tr> |
---|
305 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
306 | <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> |
---|
307 | <tr><td class="lineno" valign="top"></td><td class="left"> 412 Precondition Failed (status code) 18</td><td> </td><td class="right"> 412 Precondition Failed (status code) 18</td><td class="lineno" valign="top"></td></tr> |
---|
308 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
309 | <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> |
---|
310 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag header field 9</td><td> </td><td class="right"> ETag header field 9</td><td class="lineno" valign="top"></td></tr> |
---|
311 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
312 | <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> |
---|
313 | <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> |
---|
314 | <tr><td class="lineno" valign="top"></td><td class="left"> entity-tag 9</td><td> </td><td class="right"> entity-tag 9</td><td class="lineno" valign="top"></td></tr> |
---|
315 | <tr><td class="lineno" valign="top"></td><td class="left"> ETag 9</td><td> </td><td class="right"> ETag 9</td><td class="lineno" valign="top"></td></tr> |
---|
316 | <tr><td class="lineno" valign="top"></td><td class="left"> etagc 9</td><td> </td><td class="right"> etagc 9</td><td class="lineno" valign="top"></td></tr> |
---|
317 | <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> |
---|
318 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Modified-Since 15</td><td> </td><td class="right"> If-Modified-Since 15</td><td class="lineno" valign="top"></td></tr> |
---|
319 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match 14</td><td> </td><td class="right"> If-None-Match 14</td><td class="lineno" valign="top"></td></tr> |
---|
320 | <tr><td><a name="diff0011" /></td></tr> |
---|
321 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Unmodified-Since 1<span class="delete">6</span></td><td> </td><td class="rblock"> If-Unmodified-Since 1<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> |
---|
322 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified 7</td><td> </td><td class="right"> Last-Modified 7</td><td class="lineno" valign="top"></td></tr> |
---|
323 | <tr><td class="lineno" valign="top"></td><td class="left"> opaque-tag 9</td><td> </td><td class="right"> opaque-tag 9</td><td class="lineno" valign="top"></td></tr> |
---|
324 | <tr><td class="lineno" valign="top"></td><td class="left"> weak 9</td><td> </td><td class="right"> weak 9</td><td class="lineno" valign="top"></td></tr> |
---|
325 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
326 | <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> |
---|
327 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Match header field 13</td><td> </td><td class="right"> If-Match header field 13</td><td class="lineno" valign="top"></td></tr> |
---|
328 | <tr><td><a name="diff0012" /></td></tr> |
---|
329 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Modified-Since header field 1<span class="delete">5</span></td><td> </td><td class="rblock"> If-Modified-Since header field 1<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
330 | <tr><td class="lineno" valign="top"></td><td class="left"> If-None-Match header field 14</td><td> </td><td class="right"> If-None-Match header field 14</td><td class="lineno" valign="top"></td></tr> |
---|
331 | <tr><td><a name="diff0013" /></td></tr> |
---|
332 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Unmodified-Since header field 1<span class="delete">6</span></td><td> </td><td class="rblock"> If-Unmodified-Since header field 1<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> |
---|
333 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
334 | <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> |
---|
335 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified header field 7</td><td> </td><td class="right"> Last-Modified header field 7</td><td class="lineno" valign="top"></td></tr> |
---|
336 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
337 | <tr><td class="lineno" valign="top"></td><td class="left"> M</td><td> </td><td class="right"> M</td><td class="lineno" valign="top"></td></tr> |
---|
338 | <tr><td class="lineno" valign="top"></td><td class="left"> metadata 5</td><td> </td><td class="right"> metadata 5</td><td class="lineno" valign="top"></td></tr> |
---|
339 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
340 | <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> |
---|
341 | <tr><td class="lineno" valign="top"></td><td class="left"> selected representation 4</td><td> </td><td class="right"> selected representation 4</td><td class="lineno" valign="top"></td></tr> |
---|
342 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
343 | |
---|
344 | <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr> |
---|
345 | <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 13 change blocks. </a></th></tr> |
---|
346 | <tr class="stats"><td></td><th><i>75 lines changed or deleted</i></th><th><i> </i></th><th><i>62 lines changed or added</i></th><td></td></tr> |
---|
347 | <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> |
---|
348 | </table> |
---|
349 | </body> |
---|
350 | </html> |
---|