source: draft-ietf-httpbis/latest/auth48/rfc7232.diff.html @ 2712

Last change on this file since 2712 was 2712, checked in by julian.reschke@…, 9 years ago

switch diffs to plain text versions of RFCs-to-be (#553)

  • Property svn:eol-style set to native
File size: 72.0 KB
Line 
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>&nbsp;p4-conditional.unpg.txt&nbsp;</th><th> </th><th>&nbsp;rfc7232.txt&nbsp;</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">   &lt;http://lists.w3.org/Archives/Public/ietf-http-wg/&gt;.</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">   &lt;http://tools.ietf.org/wg/httpbis/trac/report/3&gt; 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">   &lt;http://tools.ietf.org/wg/httpbis/&gt;.</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 = &lt;obs-text, see [RFC7230], Section 3.2.6&gt;</td><td> </td><td class="right">   obs-text = &lt;obs-text, see [RFC7230], Section 3.2.6&gt;</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">&nbsp;End of changes. 13 change blocks.&nbsp;</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>
Note: See TracBrowser for help on using the repository browser.