source: draft-ietf-httpbis/diffs/draft-ietf-httpbis-p4-conditional-11-from-10.diff.html @ 1391

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

fix dodiff so it generates proper filesnames (not using the rfcdiff default anymore)

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/html; charset=iso-8859-1
File size: 239.5 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: draft-ietf-httpbis-p4-conditional-10.txt - draft-ietf-httpbis-p4-conditional-11.txt</title> 
9  <style type="text/css"> 
10    body    { margin: 0.4ex; margin-right: auto; } 
11    tr      { } 
12    td      { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} 
13    th      { font-size: 0.86em; } 
14    .small  { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } 
15    .left   { background-color: #EEE; } 
16    .right  { background-color: #FFF; } 
17    .diff   { background-color: #CCF; } 
18    .lblock { background-color: #BFB; } 
19    .rblock { background-color: #FF8; } 
20    .insert { background-color: #8FF; } 
21    .delete { background-color: #ACF; } 
22    .void   { background-color: #FFB; } 
23    .cont   { background-color: #EEE; } 
24    .linebr { background-color: #AAA; } 
25    .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } 
26    .elipsis{ background-color: #AAA; } 
27    .left .cont { background-color: #DDD; } 
28    .right .cont { background-color: #EEE; } 
29    .lblock .cont { background-color: #9D9; } 
30    .rblock .cont { background-color: #DD6; } 
31    .insert .cont { background-color: #0DD; } 
32    .delete .cont { background-color: #8AD; } 
33    .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } 
34  </style> 
35</head> 
36<body > 
37  <table border="0" cellpadding="0" cellspacing="0"> 
38  <tr bgcolor="orange"><th></th><th>&nbsp;draft-ietf-httpbis-p4-conditional-10.txt&nbsp;</th><th> </th><th>&nbsp;draft-ietf-httpbis-p4-conditional-11.txt&nbsp;</th><th></th></tr> 
39      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
40      <tr><td class="lineno" valign="top"></td><td class="left">HTTPbis Working Group                                   R. Fielding, Ed.</td><td> </td><td class="right">HTTPbis Working Group                                   R. Fielding, Ed.</td><td class="lineno" valign="top"></td></tr>
41      <tr><td class="lineno" valign="top"></td><td class="left">Internet-Draft                                              Day Software</td><td> </td><td class="right">Internet-Draft                                              Day Software</td><td class="lineno" valign="top"></td></tr>
42      <tr><td class="lineno" valign="top"></td><td class="left">Obsoletes: 2616 (if approved)                                  J. Gettys</td><td> </td><td class="right">Obsoletes: 2616 (if approved)                                  J. Gettys</td><td class="lineno" valign="top"></td></tr>
43      <tr><td class="lineno" valign="top"></td><td class="left">Intended status: Standards Track                          Alcatel-Lucent</td><td> </td><td class="right">Intended status: Standards Track                          Alcatel-Lucent</td><td class="lineno" valign="top"></td></tr>
44      <tr><td><a name="diff0001" /></td></tr>
45      <tr><td class="lineno" valign="top"></td><td class="lblock">Expires: <span class="delete">January 13</span>, 2011                                       J. Mogul</td><td> </td><td class="rblock">Expires: <span class="insert">February 5</span>, 2011                                       J. Mogul</td><td class="lineno" valign="top"></td></tr>
46      <tr><td class="lineno" valign="top"></td><td class="left">                                                                      HP</td><td> </td><td class="right">                                                                      HP</td><td class="lineno" valign="top"></td></tr>
47      <tr><td class="lineno" valign="top"></td><td class="left">                                                              H. Frystyk</td><td> </td><td class="right">                                                              H. Frystyk</td><td class="lineno" valign="top"></td></tr>
48      <tr><td class="lineno" valign="top"></td><td class="left">                                                               Microsoft</td><td> </td><td class="right">                                                               Microsoft</td><td class="lineno" valign="top"></td></tr>
49      <tr><td class="lineno" valign="top"></td><td class="left">                                                             L. Masinter</td><td> </td><td class="right">                                                             L. Masinter</td><td class="lineno" valign="top"></td></tr>
50      <tr><td class="lineno" valign="top"></td><td class="left">                                                           Adobe Systems</td><td> </td><td class="right">                                                           Adobe Systems</td><td class="lineno" valign="top"></td></tr>
51      <tr><td class="lineno" valign="top"></td><td class="left">                                                                P. Leach</td><td> </td><td class="right">                                                                P. Leach</td><td class="lineno" valign="top"></td></tr>
52      <tr><td class="lineno" valign="top"></td><td class="left">                                                               Microsoft</td><td> </td><td class="right">                                                               Microsoft</td><td class="lineno" valign="top"></td></tr>
53      <tr><td class="lineno" valign="top"></td><td class="left">                                                          T. Berners-Lee</td><td> </td><td class="right">                                                          T. Berners-Lee</td><td class="lineno" valign="top"></td></tr>
54      <tr><td class="lineno" valign="top"></td><td class="left">                                                                 W3C/MIT</td><td> </td><td class="right">                                                                 W3C/MIT</td><td class="lineno" valign="top"></td></tr>
55      <tr><td class="lineno" valign="top"></td><td class="left">                                                           Y. Lafon, Ed.</td><td> </td><td class="right">                                                           Y. Lafon, Ed.</td><td class="lineno" valign="top"></td></tr>
56      <tr><td class="lineno" valign="top"></td><td class="left">                                                                     W3C</td><td> </td><td class="right">                                                                     W3C</td><td class="lineno" valign="top"></td></tr>
57      <tr><td class="lineno" valign="top"></td><td class="left">                                                         J. Reschke, Ed.</td><td> </td><td class="right">                                                         J. Reschke, Ed.</td><td class="lineno" valign="top"></td></tr>
58      <tr><td class="lineno" valign="top"></td><td class="left">                                                              greenbytes</td><td> </td><td class="right">                                                              greenbytes</td><td class="lineno" valign="top"></td></tr>
59      <tr><td><a name="diff0002" /></td></tr>
60      <tr><td class="lineno" valign="top"></td><td class="lblock">                                                          <span class="delete"> July 12</span>, 2010</td><td> </td><td class="rblock">                                                          <span class="insert">August 4</span>, 2010</td><td class="lineno" valign="top"></td></tr>
61      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
62      <tr><td class="lineno" valign="top"></td><td class="left">                 HTTP/1.1, part 4: Conditional Requests</td><td> </td><td class="right">                 HTTP/1.1, part 4: Conditional Requests</td><td class="lineno" valign="top"></td></tr>
63      <tr><td><a name="diff0003" /></td></tr>
64      <tr><td class="lineno" valign="top"></td><td class="lblock">                  draft-ietf-httpbis-p4-conditional-1<span class="delete">0</span></td><td> </td><td class="rblock">                  draft-ietf-httpbis-p4-conditional-1<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
65      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
66      <tr><td class="lineno" valign="top"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno" valign="top"></td></tr>
67      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
68      <tr><td class="lineno" valign="top"></td><td class="left">   The Hypertext Transfer Protocol (HTTP) is an application-level</td><td> </td><td class="right">   The Hypertext Transfer Protocol (HTTP) is an application-level</td><td class="lineno" valign="top"></td></tr>
69      <tr><td class="lineno" valign="top"></td><td class="left">   protocol for distributed, collaborative, hypermedia information</td><td> </td><td class="right">   protocol for distributed, collaborative, hypermedia information</td><td class="lineno" valign="top"></td></tr>
70      <tr><td class="lineno" valign="top"></td><td class="left">   systems.  HTTP has been in use by the World Wide Web global</td><td> </td><td class="right">   systems.  HTTP has been in use by the World Wide Web global</td><td class="lineno" valign="top"></td></tr>
71      <tr><td class="lineno" valign="top"></td><td class="left">   information initiative since 1990.  This document is Part 4 of the</td><td> </td><td class="right">   information initiative since 1990.  This document is Part 4 of the</td><td class="lineno" valign="top"></td></tr>
72      <tr><td class="lineno" valign="top"></td><td class="left">   seven-part specification that defines the protocol referred to as</td><td> </td><td class="right">   seven-part specification that defines the protocol referred to as</td><td class="lineno" valign="top"></td></tr>
73      <tr><td class="lineno" valign="top"></td><td class="left">   "HTTP/1.1" and, taken together, obsoletes RFC 2616.  Part 4 defines</td><td> </td><td class="right">   "HTTP/1.1" and, taken together, obsoletes RFC 2616.  Part 4 defines</td><td class="lineno" valign="top"></td></tr>
74      <tr><td class="lineno" valign="top"></td><td class="left">   request header fields for indicating conditional requests and the</td><td> </td><td class="right">   request header fields for indicating conditional requests and the</td><td class="lineno" valign="top"></td></tr>
75      <tr><td class="lineno" valign="top"></td><td class="left">   rules for constructing responses to those requests.</td><td> </td><td class="right">   rules for constructing responses to those requests.</td><td class="lineno" valign="top"></td></tr>
76      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
77      <tr><td class="lineno" valign="top"></td><td class="left">Editorial Note (To be removed by RFC Editor)</td><td> </td><td class="right">Editorial Note (To be removed by RFC Editor)</td><td class="lineno" valign="top"></td></tr>
78      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
79      <tr><td class="lineno" valign="top"></td><td class="left">   Discussion of this draft should take place on the HTTPBIS working</td><td> </td><td class="right">   Discussion of this draft should take place on the HTTPBIS working</td><td class="lineno" valign="top"></td></tr>
80      <tr><td class="lineno" valign="top"></td><td class="left">   group mailing list (ietf-http-wg@w3.org).  The current issues list is</td><td> </td><td class="right">   group mailing list (ietf-http-wg@w3.org).  The current issues list is</td><td class="lineno" valign="top"></td></tr>
81      <tr><td class="lineno" valign="top"></td><td class="left">   at &lt;http://tools.ietf.org/wg/httpbis/trac/report/3&gt; and related</td><td> </td><td class="right">   at &lt;http://tools.ietf.org/wg/httpbis/trac/report/3&gt; and related</td><td class="lineno" valign="top"></td></tr>
82      <tr><td class="lineno" valign="top"></td><td class="left">   documents (including fancy diffs) can be found at</td><td> </td><td class="right">   documents (including fancy diffs) can be found at</td><td class="lineno" valign="top"></td></tr>
83      <tr><td class="lineno" valign="top"></td><td class="left">   &lt;http://tools.ietf.org/wg/httpbis/&gt;.</td><td> </td><td class="right">   &lt;http://tools.ietf.org/wg/httpbis/&gt;.</td><td class="lineno" valign="top"></td></tr>
84      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
85      <tr><td><a name="diff0004" /></td></tr>
86      <tr><td class="lineno" valign="top"></td><td class="lblock">   The changes in this draft are summarized in Appendix C.1<span class="delete">1</span>.</td><td> </td><td class="rblock">   The changes in this draft are summarized in Appendix C.1<span class="insert">2</span>.</td><td class="lineno" valign="top"></td></tr>
87      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
88      <tr><td class="lineno" valign="top"></td><td class="left">Status of This Memo</td><td> </td><td class="right">Status of This Memo</td><td class="lineno" valign="top"></td></tr>
89      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
90      <tr><td class="lineno" valign="top"></td><td class="left">   This Internet-Draft is submitted in full conformance with the</td><td> </td><td class="right">   This Internet-Draft is submitted in full conformance with the</td><td class="lineno" valign="top"></td></tr>
91      <tr><td class="lineno" valign="top"></td><td class="left">   provisions of BCP 78 and BCP 79.</td><td> </td><td class="right">   provisions of BCP 78 and BCP 79.</td><td class="lineno" valign="top"></td></tr>
92      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
93      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are working documents of the Internet Engineering</td><td> </td><td class="right">   Internet-Drafts are working documents of the Internet Engineering</td><td class="lineno" valign="top"></td></tr>
94      <tr><td class="lineno" valign="top"></td><td class="left">   Task Force (IETF).  Note that other groups may also distribute</td><td> </td><td class="right">   Task Force (IETF).  Note that other groups may also distribute</td><td class="lineno" valign="top"></td></tr>
95      <tr><td class="lineno" valign="top"></td><td class="left">   working documents as Internet-Drafts.  The list of current Internet-</td><td> </td><td class="right">   working documents as Internet-Drafts.  The list of current Internet-</td><td class="lineno" valign="top"></td></tr>
96      <tr><td class="lineno" valign="top"></td><td class="left">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td> </td><td class="right">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td class="lineno" valign="top"></td></tr>
97      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
98      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are draft documents valid for a maximum of six months</td><td> </td><td class="right">   Internet-Drafts are draft documents valid for a maximum of six months</td><td class="lineno" valign="top"></td></tr>
99      <tr><td class="lineno" valign="top"></td><td class="left">   and may be updated, replaced, or obsoleted by other documents at any</td><td> </td><td class="right">   and may be updated, replaced, or obsoleted by other documents at any</td><td class="lineno" valign="top"></td></tr>
100      <tr><td class="lineno" valign="top"></td><td class="left">   time.  It is inappropriate to use Internet-Drafts as reference</td><td> </td><td class="right">   time.  It is inappropriate to use Internet-Drafts as reference</td><td class="lineno" valign="top"></td></tr>
101      <tr><td class="lineno" valign="top"></td><td class="left">   material or to cite them other than as "work in progress."</td><td> </td><td class="right">   material or to cite them other than as "work in progress."</td><td class="lineno" valign="top"></td></tr>
102      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
103      <tr><td><a name="diff0005" /></td></tr>
104      <tr><td class="lineno" valign="top"></td><td class="lblock">   This Internet-Draft will expire on <span class="delete">January 13</span>, 2011.</td><td> </td><td class="rblock">   This Internet-Draft will expire on <span class="insert">February 5</span>, 2011.</td><td class="lineno" valign="top"></td></tr>
105      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
106      <tr><td class="lineno" valign="top"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno" valign="top"></td></tr>
107      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
108      <tr><td class="lineno" valign="top"></td><td class="left">   Copyright (c) 2010 IETF Trust and the persons identified as the</td><td> </td><td class="right">   Copyright (c) 2010 IETF Trust and the persons identified as the</td><td class="lineno" valign="top"></td></tr>
109      <tr><td class="lineno" valign="top"></td><td class="left">   document authors.  All rights reserved.</td><td> </td><td class="right">   document authors.  All rights reserved.</td><td class="lineno" valign="top"></td></tr>
110      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
111      <tr><td class="lineno" valign="top"></td><td class="left">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno" valign="top"></td></tr>
112      <tr><td class="lineno" valign="top"></td><td class="left">   Provisions Relating to IETF Documents</td><td> </td><td class="right">   Provisions Relating to IETF Documents</td><td class="lineno" valign="top"></td></tr>
113      <tr><td class="lineno" valign="top"></td><td class="left">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td> </td><td class="right">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td class="lineno" valign="top"></td></tr>
114      <tr><td class="lineno" valign="top"></td><td class="left">   publication of this document.  Please review these documents</td><td> </td><td class="right">   publication of this document.  Please review these documents</td><td class="lineno" valign="top"></td></tr>
115      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
116      <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 3, line 13</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 3, line 13</em></th><td></td></tr>
117      <tr><td class="lineno" valign="top"></td><td class="left">   than English.</td><td> </td><td class="right">   than English.</td><td class="lineno" valign="top"></td></tr>
118      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
119      <tr><td class="lineno" valign="top"></td><td class="left">Table of Contents</td><td> </td><td class="right">Table of Contents</td><td class="lineno" valign="top"></td></tr>
120      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
121      <tr><td class="lineno" valign="top"></td><td class="left">   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4</td><td> </td><td class="right">   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4</td><td class="lineno" valign="top"></td></tr>
122      <tr><td class="lineno" valign="top"></td><td class="left">     1.1.  Requirements . . . . . . . . . . . . . . . . . . . . . . .  4</td><td> </td><td class="right">     1.1.  Requirements . . . . . . . . . . . . . . . . . . . . . . .  4</td><td class="lineno" valign="top"></td></tr>
123      <tr><td class="lineno" valign="top"></td><td class="left">     1.2.  Syntax Notation  . . . . . . . . . . . . . . . . . . . . .  4</td><td> </td><td class="right">     1.2.  Syntax Notation  . . . . . . . . . . . . . . . . . . . . .  4</td><td class="lineno" valign="top"></td></tr>
124      <tr><td class="lineno" valign="top"></td><td class="left">       1.2.1.  Core Rules . . . . . . . . . . . . . . . . . . . . . .  5</td><td> </td><td class="right">       1.2.1.  Core Rules . . . . . . . . . . . . . . . . . . . . . .  5</td><td class="lineno" valign="top"></td></tr>
125      <tr><td class="lineno" valign="top"></td><td class="left">       1.2.2.  ABNF Rules defined in other Parts of the</td><td> </td><td class="right">       1.2.2.  ABNF Rules defined in other Parts of the</td><td class="lineno" valign="top"></td></tr>
126      <tr><td class="lineno" valign="top"></td><td class="left">               Specification  . . . . . . . . . . . . . . . . . . . .  5</td><td> </td><td class="right">               Specification  . . . . . . . . . . . . . . . . . . . .  5</td><td class="lineno" valign="top"></td></tr>
127      <tr><td><a name="diff0006" /></td></tr>
128      <tr><td class="lineno" valign="top"></td><td class="lblock">   2.  <span class="delete">Entity Tags</span>  . . . . . . . . . . . . . . . . . . . . . . . . .  5</td><td> </td><td class="rblock">   2.  <span class="insert">Entity-Tags</span>  . . . . . . . . . . . . . . . . . . . . . . . . .  5</td><td class="lineno" valign="top"></td></tr>
129      <tr><td class="lineno" valign="top"></td><td class="lblock">     2.1.  Example: <span class="delete">Entity Tags</span> varying on Content-Negotiated</td><td> </td><td class="rblock">     2.1.  Example: <span class="insert">Entity-tags</span> varying on Content-Negotiated</td><td class="lineno" valign="top"></td></tr>
130      <tr><td class="lineno" valign="top"></td><td class="left">           Resources  . . . . . . . . . . . . . . . . . . . . . . . .  6</td><td> </td><td class="right">           Resources  . . . . . . . . . . . . . . . . . . . . . . . .  6</td><td class="lineno" valign="top"></td></tr>
131      <tr><td class="lineno" valign="top"></td><td class="left">   3.  Status Code Definitions  . . . . . . . . . . . . . . . . . . .  7</td><td> </td><td class="right">   3.  Status Code Definitions  . . . . . . . . . . . . . . . . . . .  7</td><td class="lineno" valign="top"></td></tr>
132      <tr><td class="lineno" valign="top"></td><td class="left">     3.1.  304 Not Modified . . . . . . . . . . . . . . . . . . . . .  7</td><td> </td><td class="right">     3.1.  304 Not Modified . . . . . . . . . . . . . . . . . . . . .  7</td><td class="lineno" valign="top"></td></tr>
133      <tr><td><a name="diff0007" /></td></tr>
134      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.2.  412 Precondition Failed  . . . . . . . . . . . . . . . . .  <span class="delete">8</span></td><td> </td><td class="rblock">     3.2.  412 Precondition Failed  . . . . . . . . . . . . . . . . .  <span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
135      <tr><td class="lineno" valign="top"></td><td class="left">   4.  Weak and Strong Validators . . . . . . . . . . . . . . . . . .  8</td><td> </td><td class="right">   4.  Weak and Strong Validators . . . . . . . . . . . . . . . . . .  8</td><td class="lineno" valign="top"></td></tr>
136      <tr><td><a name="diff0008" /></td></tr>
137      <tr><td class="lineno" valign="top"></td><td class="lblock">   5.  Rules for When to Use Entity<span class="delete"> Tags and Last-Modified Dates  . . 11</span></td><td> </td><td class="rblock">   5.  Rules for When to Use Entity<span class="insert">-tags and Last-Modified Dates  . . 10</span></td><td class="lineno" valign="top"></td></tr>
138      <tr><td class="lineno" valign="top"></td><td class="left">   6.  Header Field Definitions . . . . . . . . . . . . . . . . . . . 12</td><td> </td><td class="right">   6.  Header Field Definitions . . . . . . . . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr>
139      <tr><td><a name="diff0009" /></td></tr>
140      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.1.  ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<span class="delete">3</span></td><td> </td><td class="rblock">     6.1.  ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
141      <tr><td class="lineno" valign="top"></td><td class="left">     6.2.  If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 13</td><td> </td><td class="right">     6.2.  If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 13</td><td class="lineno" valign="top"></td></tr>
142      <tr><td class="lineno" valign="top"></td><td class="left">     6.3.  If-Modified-Since  . . . . . . . . . . . . . . . . . . . . 14</td><td> </td><td class="right">     6.3.  If-Modified-Since  . . . . . . . . . . . . . . . . . . . . 14</td><td class="lineno" valign="top"></td></tr>
143      <tr><td class="lineno" valign="top"></td><td class="left">     6.4.  If-None-Match  . . . . . . . . . . . . . . . . . . . . . . 16</td><td> </td><td class="right">     6.4.  If-None-Match  . . . . . . . . . . . . . . . . . . . . . . 16</td><td class="lineno" valign="top"></td></tr>
144      <tr><td class="lineno" valign="top"></td><td class="left">     6.5.  If-Unmodified-Since  . . . . . . . . . . . . . . . . . . . 17</td><td> </td><td class="right">     6.5.  If-Unmodified-Since  . . . . . . . . . . . . . . . . . . . 17</td><td class="lineno" valign="top"></td></tr>
145      <tr><td class="lineno" valign="top"></td><td class="left">     6.6.  Last-Modified  . . . . . . . . . . . . . . . . . . . . . . 18</td><td> </td><td class="right">     6.6.  Last-Modified  . . . . . . . . . . . . . . . . . . . . . . 18</td><td class="lineno" valign="top"></td></tr>
146      <tr><td><a name="diff0010" /></td></tr>
147      <tr><td class="lineno" valign="top"></td><td class="lblock">   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 1<span class="delete">9</span></td><td> </td><td class="rblock">   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 1<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr>
148      <tr><td class="lineno" valign="top"></td><td class="left">     7.1.  Status Code Registration . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right">     7.1.  Status Code Registration . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr>
149      <tr><td><a name="diff0011" /></td></tr>
150      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.2.  <span class="delete">Message Header Registration </span> . . . . . . . . . . . . . . . 19</td><td> </td><td class="rblock">     7.2.  <span class="insert">Header Field Registration  .</span> . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr>
151      <tr><td class="lineno" valign="top"></td><td class="left">   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right">   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr>
152      <tr><td class="lineno" valign="top"></td><td class="left">   9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right">   9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr>
153      <tr><td class="lineno" valign="top"></td><td class="left">   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right">   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr>
154      <tr><td class="lineno" valign="top"></td><td class="left">     10.1. Normative References . . . . . . . . . . . . . . . . . . . 19</td><td> </td><td class="right">     10.1. Normative References . . . . . . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr>
155      <tr><td class="lineno" valign="top"></td><td class="left">     10.2. Informative References . . . . . . . . . . . . . . . . . . 20</td><td> </td><td class="right">     10.2. Informative References . . . . . . . . . . . . . . . . . . 20</td><td class="lineno" valign="top"></td></tr>
156      <tr><td><a name="diff0012" /></td></tr>
157      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix A.  <span class="delete">Compatibility with Previous Versions  . . . . . . . . 20</span></td><td> </td><td class="rblock">   Appendix A.  Changes from RFC 2616 . . . . . . . . . . . . . . . . 20</td><td class="lineno" valign="top"></td></tr>
158      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     A.1.</span>  Changes from RFC 2616  . . . . . . . . . . . . . . . . <span class="delete">. .</span> 20</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
159      <tr><td class="lineno" valign="top"></td><td class="left">   Appendix B.  Collected ABNF  . . . . . . . . . . . . . . . . . . . 21</td><td> </td><td class="right">   Appendix B.  Collected ABNF  . . . . . . . . . . . . . . . . . . . 21</td><td class="lineno" valign="top"></td></tr>
160      <tr><td class="lineno" valign="top"></td><td class="left">   Appendix C.  Change Log (to be removed by RFC Editor before</td><td> </td><td class="right">   Appendix C.  Change Log (to be removed by RFC Editor before</td><td class="lineno" valign="top"></td></tr>
161      <tr><td class="lineno" valign="top"></td><td class="left">                publication)  . . . . . . . . . . . . . . . . . . . . 21</td><td> </td><td class="right">                publication)  . . . . . . . . . . . . . . . . . . . . 21</td><td class="lineno" valign="top"></td></tr>
162      <tr><td class="lineno" valign="top"></td><td class="left">     C.1.  Since RFC2616  . . . . . . . . . . . . . . . . . . . . . . 21</td><td> </td><td class="right">     C.1.  Since RFC2616  . . . . . . . . . . . . . . . . . . . . . . 21</td><td class="lineno" valign="top"></td></tr>
163      <tr><td class="lineno" valign="top"></td><td class="left">     C.2.  Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 22</td><td> </td><td class="right">     C.2.  Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 22</td><td class="lineno" valign="top"></td></tr>
164      <tr><td class="lineno" valign="top"></td><td class="left">     C.3.  Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 22</td><td> </td><td class="right">     C.3.  Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 22</td><td class="lineno" valign="top"></td></tr>
165      <tr><td class="lineno" valign="top"></td><td class="left">     C.4.  Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 22</td><td> </td><td class="right">     C.4.  Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 22</td><td class="lineno" valign="top"></td></tr>
166      <tr><td class="lineno" valign="top"></td><td class="left">     C.5.  Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 22</td><td> </td><td class="right">     C.5.  Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 22</td><td class="lineno" valign="top"></td></tr>
167      <tr><td class="lineno" valign="top"></td><td class="left">     C.6.  Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 23</td><td> </td><td class="right">     C.6.  Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr>
168      <tr><td class="lineno" valign="top"></td><td class="left">     C.7.  Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 23</td><td> </td><td class="right">     C.7.  Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr>
169      <tr><td class="lineno" valign="top"></td><td class="left">     C.8.  Since draft-ietf-httpbis-p4-conditional-06 . . . . . . . . 23</td><td> </td><td class="right">     C.8.  Since draft-ietf-httpbis-p4-conditional-06 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr>
170      <tr><td class="lineno" valign="top"></td><td class="left">     C.9.  Since draft-ietf-httpbis-p4-conditional-07 . . . . . . . . 23</td><td> </td><td class="right">     C.9.  Since draft-ietf-httpbis-p4-conditional-07 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr>
171      <tr><td class="lineno" valign="top"></td><td class="left">     C.10. Since draft-ietf-httpbis-p4-conditional-08 . . . . . . . . 23</td><td> </td><td class="right">     C.10. Since draft-ietf-httpbis-p4-conditional-08 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr>
172      <tr><td class="lineno" valign="top"></td><td class="left">     C.11. Since draft-ietf-httpbis-p4-conditional-09 . . . . . . . . 23</td><td> </td><td class="right">     C.11. Since draft-ietf-httpbis-p4-conditional-09 . . . . . . . . 23</td><td class="lineno" valign="top"></td></tr>
173      <tr><td><a name="diff0013" /></td></tr>
174      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">     C.12. Since draft-ietf-httpbis-p4-conditional-10 . . . . . . . . 24</span></td><td class="lineno" valign="top"></td></tr>
175      <tr><td class="lineno" valign="top"></td><td class="left">   Index  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24</td><td> </td><td class="right">   Index  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24</td><td class="lineno" valign="top"></td></tr>
176      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
177      <tr><td class="lineno" valign="top"></td><td class="left">1.  Introduction</td><td> </td><td class="right">1.  Introduction</td><td class="lineno" valign="top"></td></tr>
178      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
179      <tr><td class="lineno" valign="top"></td><td class="left">   This document defines HTTP/1.1 response metadata for indicating</td><td> </td><td class="right">   This document defines HTTP/1.1 response metadata for indicating</td><td class="lineno" valign="top"></td></tr>
180      <tr><td class="lineno" valign="top"></td><td class="left">   potential changes to payload content, including modification time</td><td> </td><td class="right">   potential changes to payload content, including modification time</td><td class="lineno" valign="top"></td></tr>
181      <tr><td class="lineno" valign="top"></td><td class="left">   stamps and opaque entity-tags, and the HTTP conditional request</td><td> </td><td class="right">   stamps and opaque entity-tags, and the HTTP conditional request</td><td class="lineno" valign="top"></td></tr>
182      <tr><td class="lineno" valign="top"></td><td class="left">   mechanisms that allow preconditions to be placed on a request method.</td><td> </td><td class="right">   mechanisms that allow preconditions to be placed on a request method.</td><td class="lineno" valign="top"></td></tr>
183      <tr><td class="lineno" valign="top"></td><td class="left">   Conditional GET requests allow for efficient cache updates.  Other</td><td> </td><td class="right">   Conditional GET requests allow for efficient cache updates.  Other</td><td class="lineno" valign="top"></td></tr>
184      <tr><td class="lineno" valign="top"></td><td class="left">   conditional request methods are used to protect against overwriting</td><td> </td><td class="right">   conditional request methods are used to protect against overwriting</td><td class="lineno" valign="top"></td></tr>
185      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
186      <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 5, line 21</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 5, line 21</em></th><td></td></tr>
187      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
188      <tr><td class="lineno" valign="top"></td><td class="left">     quoted-string = &lt;quoted-string, defined in [Part1], Section 1.2.2&gt;</td><td> </td><td class="right">     quoted-string = &lt;quoted-string, defined in [Part1], Section 1.2.2&gt;</td><td class="lineno" valign="top"></td></tr>
189      <tr><td class="lineno" valign="top"></td><td class="left">     OWS           = &lt;OWS, defined in [Part1], Section 1.2.2&gt;</td><td> </td><td class="right">     OWS           = &lt;OWS, defined in [Part1], Section 1.2.2&gt;</td><td class="lineno" valign="top"></td></tr>
190      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
191      <tr><td class="lineno" valign="top"></td><td class="left">1.2.2.  ABNF Rules defined in other Parts of the Specification</td><td> </td><td class="right">1.2.2.  ABNF Rules defined in other Parts of the Specification</td><td class="lineno" valign="top"></td></tr>
192      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
193      <tr><td class="lineno" valign="top"></td><td class="left">   The ABNF rules below are defined in other parts:</td><td> </td><td class="right">   The ABNF rules below are defined in other parts:</td><td class="lineno" valign="top"></td></tr>
194      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
195      <tr><td class="lineno" valign="top"></td><td class="left">     HTTP-date     = &lt;HTTP-date, defined in [Part1], Section 6.1&gt;</td><td> </td><td class="right">     HTTP-date     = &lt;HTTP-date, defined in [Part1], Section 6.1&gt;</td><td class="lineno" valign="top"></td></tr>
196      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
197      <tr><td><a name="diff0014" /></td></tr>
198      <tr><td class="lineno" valign="top"></td><td class="lblock">2.  Entity<span class="delete"> </span>Tags</td><td> </td><td class="rblock">2.  Entity<span class="insert">-</span>Tags</td><td class="lineno" valign="top"></td></tr>
199      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
200      <tr><td><a name="diff0015" /></td></tr>
201      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">Entity tags</span> are used for comparing two or more <span class="delete">entities from</span> the same</td><td> </td><td class="rblock">   <span class="insert">Entity-tags</span> are used for comparing two or more <span class="insert">representations of</span> the</td><td class="lineno" valign="top"></td></tr>
202      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">requested</span> resource.  HTTP/1.1 uses <span class="delete">entity tags</span> in the ETag</td><td> </td><td class="rblock">   same resource.  HTTP/1.1 uses <span class="insert">entity-tags</span> in the ETag (Section 6.1),</td><td class="lineno" valign="top"></td></tr>
203      <tr><td class="lineno" valign="top"></td><td class="lblock">   (Section 6.1), If-Match (Section 6.2), If-None-Match (Section 6.4),</td><td> </td><td class="rblock">   If-Match (Section 6.2), If-None-Match (Section 6.4), and If-Range</td><td class="lineno" valign="top"></td></tr>
204      <tr><td class="lineno" valign="top"></td><td class="lblock">   and If-Range (Section 5.3 of [Part5]) header fields.  The definition</td><td> </td><td class="rblock">   (Section 5.3 of [Part5]) header fields.  The definition of how they</td><td class="lineno" valign="top"></td></tr>
205      <tr><td class="lineno" valign="top"></td><td class="lblock">   of how they are used and compared as cache validators is in</td><td> </td><td class="rblock">   are used and compared as cache validators is in Section 4.  An</td><td class="lineno" valign="top"></td></tr>
206      <tr><td class="lineno" valign="top"></td><td class="lblock">   Section 4.  An <span class="delete">entity tag</span> consists of an opaque quoted string,</td><td> </td><td class="rblock">   <span class="insert">entity-tag</span> consists of an opaque quoted string, possibly prefixed by</td><td class="lineno" valign="top"></td></tr>
207      <tr><td class="lineno" valign="top"></td><td class="lblock">   possibly prefixed by a weakness indicator.</td><td> </td><td class="rblock">   a weakness indicator.</td><td class="lineno" valign="top"></td></tr>
208      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
209      <tr><td class="lineno" valign="top"></td><td class="left">     entity-tag = [ weak ] opaque-tag</td><td> </td><td class="right">     entity-tag = [ weak ] opaque-tag</td><td class="lineno" valign="top"></td></tr>
210      <tr><td class="lineno" valign="top"></td><td class="left">     weak       = %x57.2F ; "W/", case-sensitive</td><td> </td><td class="right">     weak       = %x57.2F ; "W/", case-sensitive</td><td class="lineno" valign="top"></td></tr>
211      <tr><td class="lineno" valign="top"></td><td class="left">     opaque-tag = quoted-string</td><td> </td><td class="right">     opaque-tag = quoted-string</td><td class="lineno" valign="top"></td></tr>
212      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
213      <tr><td><a name="diff0016" /></td></tr>
214      <tr><td class="lineno" valign="top"></td><td class="lblock">   A "strong <span class="delete">entity tag"</span> MAY be shared by two <span class="delete">entities</span> of a resource</td><td> </td><td class="rblock">   A "strong <span class="insert">entity-tag"</span> MAY be shared by two <span class="insert">representations</span> of a</td><td class="lineno" valign="top"></td></tr>
215      <tr><td class="lineno" valign="top"></td><td class="lblock">   only if they are equivalent by octet equality.</td><td> </td><td class="rblock">   resource only if they are equivalent by octet equality.</td><td class="lineno" valign="top"></td></tr>
216      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
217      <tr><td><a name="diff0017" /></td></tr>
218      <tr><td class="lineno" valign="top"></td><td class="lblock">   A "weak <span class="delete">entity tag,"</span> indicated by the "W/" prefix, MAY be shared by</td><td> </td><td class="rblock">   A "weak <span class="insert">entity-tag",</span> indicated by the "W/" prefix, MAY be shared by</td><td class="lineno" valign="top"></td></tr>
219      <tr><td class="lineno" valign="top"></td><td class="lblock">   two <span class="delete">entities</span> of a resource only if the <span class="delete">entities</span> are equivalent and</td><td> </td><td class="rblock">   two <span class="insert">representations</span> of a resource only if the <span class="insert">representations</span> are</td><td class="lineno" valign="top"></td></tr>
220      <tr><td class="lineno" valign="top"></td><td class="lblock">   could be substituted for each other with no significant change in</td><td> </td><td class="rblock">   equivalent and could be substituted for each other with no</td><td class="lineno" valign="top"></td></tr>
221      <tr><td class="lineno" valign="top"></td><td class="lblock">   semantics.  A weak <span class="delete">entity tag</span> can only be used for weak comparison.</td><td> </td><td class="rblock">   significant change in semantics.  A weak <span class="insert">entity-tag</span> can only be used</td><td class="lineno" valign="top"></td></tr>
222      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   for weak comparison.</td><td class="lineno" valign="top"></td></tr>
223      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
224      <tr><td><a name="diff0018" /></td></tr>
225      <tr><td class="lineno" valign="top"></td><td class="lblock">   An <span class="delete">entity tag</span> MUST be unique across all versions of all <span class="delete">entities</span></td><td> </td><td class="rblock">   An <span class="insert">entity-tag</span> MUST be unique across all versions of all</td><td class="lineno" valign="top"></td></tr>
226      <tr><td class="lineno" valign="top"></td><td class="lblock">   associated with a particular resource.  A given <span class="delete">entity tag</span> value MAY</td><td> </td><td class="rblock">   <span class="insert">representations</span> associated with a particular resource.  A given</td><td class="lineno" valign="top"></td></tr>
227      <tr><td class="lineno" valign="top"></td><td class="lblock">   be used for <span class="delete">entities</span> obtained by requests on different URIs.  The use</td><td> </td><td class="rblock">   <span class="insert">entity-tag</span> value MAY be used for <span class="insert">representations</span> obtained by requests</td><td class="lineno" valign="top"></td></tr>
228      <tr><td class="lineno" valign="top"></td><td class="lblock">   of the same <span class="delete">entity tag</span> value in conjunction with <span class="delete">entities</span> obtained by</td><td> </td><td class="rblock">   on different URIs.  The use of the same <span class="insert">entity-tag</span> value in</td><td class="lineno" valign="top"></td></tr>
229      <tr><td class="lineno" valign="top"></td><td class="lblock">   requests on different URIs does not imply the equivalence of those</td><td> </td><td class="rblock">   conjunction with <span class="insert">representations</span> obtained by requests on different</td><td class="lineno" valign="top"></td></tr>
230      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">entities.</span></td><td> </td><td class="rblock">   URIs does not imply the equivalence of those <span class="insert">representations.</span></td><td class="lineno" valign="top"></td></tr>
231      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
232      <tr><td><a name="diff0019" /></td></tr>
233      <tr><td class="lineno" valign="top"></td><td class="lblock">2.1.  Example: Entity<span class="delete"> T</span>ags varying on Content-Negotiated Resources</td><td> </td><td class="rblock">2.1.  Example: Entity<span class="insert">-t</span>ags varying on Content-Negotiated Resources</td><td class="lineno" valign="top"></td></tr>
234      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
235      <tr><td><a name="diff0020" /></td></tr>
236      <tr><td class="lineno" valign="top"></td><td class="lblock">   Consider a resource that is subject to content negotiation (Section <span class="delete">4</span></td><td> </td><td class="rblock">   Consider a resource that is subject to content negotiation (Section <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
237      <tr><td class="lineno" valign="top"></td><td class="left">   of [Part3]), and where the representations returned upon a GET</td><td> </td><td class="right">   of [Part3]), and where the representations returned upon a GET</td><td class="lineno" valign="top"></td></tr>
238      <tr><td class="lineno" valign="top"></td><td class="left">   request vary based on the Accept-Encoding request header field</td><td> </td><td class="right">   request vary based on the Accept-Encoding request header field</td><td class="lineno" valign="top"></td></tr>
239      <tr><td><a name="diff0021" /></td></tr>
240      <tr><td class="lineno" valign="top"></td><td class="lblock">   (Section <span class="delete">5</span>.3 of [Part3]):</td><td> </td><td class="rblock">   (Section <span class="insert">6</span>.3 of [Part3]):</td><td class="lineno" valign="top"></td></tr>
241      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
242      <tr><td class="lineno" valign="top"></td><td class="left">   &gt;&gt; Request:</td><td> </td><td class="right">   &gt;&gt; Request:</td><td class="lineno" valign="top"></td></tr>
243      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
244      <tr><td class="lineno" valign="top"></td><td class="left">     GET /index HTTP/1.1</td><td> </td><td class="right">     GET /index HTTP/1.1</td><td class="lineno" valign="top"></td></tr>
245      <tr><td class="lineno" valign="top"></td><td class="left">     Host: www.example.com</td><td> </td><td class="right">     Host: www.example.com</td><td class="lineno" valign="top"></td></tr>
246      <tr><td class="lineno" valign="top"></td><td class="left">     Accept-Encoding: gzip</td><td> </td><td class="right">     Accept-Encoding: gzip</td><td class="lineno" valign="top"></td></tr>
247      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
248      <tr><td><a name="diff0022" /></td></tr>
249      <tr><td class="lineno" valign="top"></td><td class="lblock">   In this case, the response <span class="delete">may</span> use the gzip <span class="delete">Content Coding or not.</span></td><td> </td><td class="rblock">   In this case, the response <span class="insert">might or might not</span> use the gzip <span class="insert">content</span></td><td class="lineno" valign="top"></td></tr>
250      <tr><td class="lineno" valign="top"></td><td class="lblock">   If it <span class="delete">does, it</span> might look <span class="delete">like that:</span></td><td> </td><td class="rblock"><span class="insert">   coding.</span>  If it <span class="insert">does not, the response</span> might look <span class="insert">like:</span></td><td class="lineno" valign="top"></td></tr>
251      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
252      <tr><td class="lineno" valign="top"></td><td class="left">   &gt;&gt; Response:</td><td> </td><td class="right">   &gt;&gt; Response:</td><td class="lineno" valign="top"></td></tr>
253      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
254      <tr><td class="lineno" valign="top"></td><td class="left">     HTTP/1.1 200 OK</td><td> </td><td class="right">     HTTP/1.1 200 OK</td><td class="lineno" valign="top"></td></tr>
255      <tr><td class="lineno" valign="top"></td><td class="left">     Date: Thu, 26 Mar 2010 00:05:00 GMT</td><td> </td><td class="right">     Date: Thu, 26 Mar 2010 00:05:00 GMT</td><td class="lineno" valign="top"></td></tr>
256      <tr><td class="lineno" valign="top"></td><td class="left">     ETag: "123-a"</td><td> </td><td class="right">     ETag: "123-a"</td><td class="lineno" valign="top"></td></tr>
257      <tr><td class="lineno" valign="top"></td><td class="left">     Content-Length: 70</td><td> </td><td class="right">     Content-Length: 70</td><td class="lineno" valign="top"></td></tr>
258      <tr><td class="lineno" valign="top"></td><td class="left">     Vary: Accept-Encoding</td><td> </td><td class="right">     Vary: Accept-Encoding</td><td class="lineno" valign="top"></td></tr>
259      <tr><td class="lineno" valign="top"></td><td class="left">     Content-Type: text/plain</td><td> </td><td class="right">     Content-Type: text/plain</td><td class="lineno" valign="top"></td></tr>
260      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
261      <tr><td class="lineno" valign="top"></td><td class="left">     Hello World!</td><td> </td><td class="right">     Hello World!</td><td class="lineno" valign="top"></td></tr>
262      <tr><td class="lineno" valign="top"></td><td class="left">     Hello World!</td><td> </td><td class="right">     Hello World!</td><td class="lineno" valign="top"></td></tr>
263      <tr><td class="lineno" valign="top"></td><td class="left">     Hello World!</td><td> </td><td class="right">     Hello World!</td><td class="lineno" valign="top"></td></tr>
264      <tr><td class="lineno" valign="top"></td><td class="left">     Hello World!</td><td> </td><td class="right">     Hello World!</td><td class="lineno" valign="top"></td></tr>
265      <tr><td class="lineno" valign="top"></td><td class="left">     Hello World!</td><td> </td><td class="right">     Hello World!</td><td class="lineno" valign="top"></td></tr>
266      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
267      <tr><td><a name="diff0023" /></td></tr>
268      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">A variant</span> that does use gzip <span class="delete">Content Coding</span> would be:</td><td> </td><td class="rblock">   <span class="insert">An alternative representation</span> that does use gzip <span class="insert">content coding</span> would</td><td class="lineno" valign="top"></td></tr>
269      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   be:</td><td class="lineno" valign="top"></td></tr>
270      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
271      <tr><td class="lineno" valign="top"></td><td class="left">   &gt;&gt; Response:</td><td> </td><td class="right">   &gt;&gt; Response:</td><td class="lineno" valign="top"></td></tr>
272      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
273      <tr><td class="lineno" valign="top"></td><td class="left">     HTTP/1.1 200 OK</td><td> </td><td class="right">     HTTP/1.1 200 OK</td><td class="lineno" valign="top"></td></tr>
274      <tr><td class="lineno" valign="top"></td><td class="left">     Date: Thu, 26 Mar 2010 00:05:00 GMT</td><td> </td><td class="right">     Date: Thu, 26 Mar 2010 00:05:00 GMT</td><td class="lineno" valign="top"></td></tr>
275      <tr><td class="lineno" valign="top"></td><td class="left">     ETag: "123-b"</td><td> </td><td class="right">     ETag: "123-b"</td><td class="lineno" valign="top"></td></tr>
276      <tr><td class="lineno" valign="top"></td><td class="left">     Content-Length: 43</td><td> </td><td class="right">     Content-Length: 43</td><td class="lineno" valign="top"></td></tr>
277      <tr><td class="lineno" valign="top"></td><td class="left">     Vary: Accept-Encoding</td><td> </td><td class="right">     Vary: Accept-Encoding</td><td class="lineno" valign="top"></td></tr>
278      <tr><td class="lineno" valign="top"></td><td class="left">     Content-Type: text/plain</td><td> </td><td class="right">     Content-Type: text/plain</td><td class="lineno" valign="top"></td></tr>
279      <tr><td class="lineno" valign="top"></td><td class="left">     Content-Encoding: gzip</td><td> </td><td class="right">     Content-Encoding: gzip</td><td class="lineno" valign="top"></td></tr>
280      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
281      <tr><td class="lineno" valign="top"></td><td class="left">     ...binary data...</td><td> </td><td class="right">     ...binary data...</td><td class="lineno" valign="top"></td></tr>
282      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
283      <tr><td><a name="diff0024" /></td></tr>
284      <tr><td class="lineno" valign="top"></td><td class="lblock">      Note: Content <span class="delete">Codings</span> are a property of the <span class="delete">response entity, thus</span></td><td> </td><td class="rblock">      Note: Content <span class="insert">codings</span> are a property of the <span class="insert">representation, so</span></td><td class="lineno" valign="top"></td></tr>
285      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">      affect the Entity Tag. An alternative are Transfer Codings</span></td><td> </td><td class="rblock"><span class="insert">      therefore an entity-tag of an encoded representation must be</span></td><td class="lineno" valign="top"></td></tr>
286      <tr><td class="lineno" valign="top"></td><td class="lblock">      (Section 6.2 of [Part1]) <span class="delete">which</span> apply only <span class="delete">to the</span> transfer <span class="delete">of the</span></td><td> </td><td class="rblock"><span class="insert">      distinct from an unencoded representation to prevent conflicts</span></td><td class="lineno" valign="top"></td></tr>
287      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">      message,</span> and <span class="delete">thus</span> do not require <span class="delete">assigning</span> distinct <span class="delete">entity tags.</span></td><td> </td><td class="rblock"><span class="insert">      during cache updates and range requests.  In contrast, transfer</span></td><td class="lineno" valign="top"></td></tr>
288      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">      codings</span> (Section 6.2 of [Part1]) apply only <span class="insert">during message</span></td><td class="lineno" valign="top"></td></tr>
289      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">      transfer and do not require distinct <span class="insert">entity-tags.</span></td><td class="lineno" valign="top"></td></tr>
290      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
291      <tr><td class="lineno" valign="top"></td><td class="left">3.  Status Code Definitions</td><td> </td><td class="right">3.  Status Code Definitions</td><td class="lineno" valign="top"></td></tr>
292      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
293      <tr><td class="lineno" valign="top"></td><td class="left">3.1.  304 Not Modified</td><td> </td><td class="right">3.1.  304 Not Modified</td><td class="lineno" valign="top"></td></tr>
294      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
295      <tr><td class="lineno" valign="top"></td><td class="left">   If the client has performed a conditional GET request and access is</td><td> </td><td class="right">   If the client has performed a conditional GET request and access is</td><td class="lineno" valign="top"></td></tr>
296      <tr><td class="lineno" valign="top"></td><td class="left">   allowed, but the document has not been modified, the server SHOULD</td><td> </td><td class="right">   allowed, but the document has not been modified, the server SHOULD</td><td class="lineno" valign="top"></td></tr>
297      <tr><td class="lineno" valign="top"></td><td class="left">   respond with this status code.  The 304 response MUST NOT contain a</td><td> </td><td class="right">   respond with this status code.  The 304 response MUST NOT contain a</td><td class="lineno" valign="top"></td></tr>
298      <tr><td class="lineno" valign="top"></td><td class="left">   message-body, and thus is always terminated by the first empty line</td><td> </td><td class="right">   message-body, and thus is always terminated by the first empty line</td><td class="lineno" valign="top"></td></tr>
299      <tr><td class="lineno" valign="top"></td><td class="left">   after the header fields.</td><td> </td><td class="right">   after the header fields.</td><td class="lineno" valign="top"></td></tr>
300      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
301      <tr><td><a name="diff0025" /></td></tr>
302      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">The</span> response MUST include <span class="delete">the following</span> header <span class="delete">fields:</span></td><td> </td><td class="rblock">   <span class="insert">A 304</span> response MUST include <span class="insert">a Date</span> header <span class="insert">field (Section 9.3 of</span></td><td class="lineno" valign="top"></td></tr>
303      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   [Part1])</span> unless its omission is required by Section 9.3.1 of [Part1].</td><td class="lineno" valign="top"></td></tr>
304      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   o  Date,</span> unless its omission is required by Section 9.3.1 of [Part1].</td><td> </td><td class="rblock">   If a 200 response to the same <span class="insert">request would have included any of the</span></td><td class="lineno" valign="top"></td></tr>
305      <tr><td class="lineno" valign="top"></td><td class="lblock">                                                                         </td><td> </td><td class="rblock"><span class="insert">   header fields</span> Cache-Control, <span class="insert">Content-Location, ETag, Expires, Last-</span></td><td class="lineno" valign="top"></td></tr>
306      <tr><td class="lineno" valign="top"></td><td class="lblock">      If a <span class="delete">clockless origin server obeys these rules, and proxies and</span></td><td> </td><td class="rblock"><span class="insert">   Modified, or</span> Vary, <span class="insert">then those same header fields MUST be</span> sent in <span class="insert">a</span></td><td class="lineno" valign="top"></td></tr>
307      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">      clients add their own Date to any response received without one</span></td><td> </td><td class="rblock"><span class="insert">   304 response.</span></td><td class="lineno" valign="top"></td></tr>
308      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">      (as already specified by Section 9.3 of [Part1], caches will</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
309      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">      operate correctly.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
310      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
311      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   o  ETag and/or Content-Location, if the header would have been sent</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
312      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">      in a</span> 200 response to the same <span class="delete">request.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
313      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
314      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   o  Expires,</span> Cache-Control, <span class="delete">and/or</span> Vary, <span class="delete">if the field-value might</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
315      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">      differ from that</span> sent in <span class="delete">any previous response for the same</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
316      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">      variant.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
317      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
318      <tr><td><a name="diff0026" /></td></tr>
319      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">If</span> the <span class="delete">conditional GET used</span> a <span class="delete">strong cache validator (see Section 4),</span></td><td> </td><td class="rblock">   <span class="insert">Since</span> the <span class="insert">goal of</span> a <span class="insert">304 response is to minimize information transfer</span></td><td class="lineno" valign="top"></td></tr>
320      <tr><td class="lineno" valign="top"></td><td class="lblock">   the response SHOULD NOT include other <span class="delete">entity-headers.  Otherwise</span></td><td> </td><td class="rblock"><span class="insert">   when the recipient already has one or more cached representations,</span></td><td class="lineno" valign="top"></td></tr>
321      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   (i.e.,</span> the <span class="delete">conditional GET used a weak validator),</span> the <span class="delete">response MUST</span></td><td> </td><td class="rblock">   the response SHOULD NOT include <span class="insert">representation metadata</span> other <span class="insert">than</span></td><td class="lineno" valign="top"></td></tr>
322      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   NOT include other entity-headers; this prevents inconsistencies</span></td><td> </td><td class="rblock">   the <span class="insert">above listed fields unless said metadata exists for</span> the <span class="insert">purpose</span></td><td class="lineno" valign="top"></td></tr>
323      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   between cached entity-bodies and updated headers.</span></td><td> </td><td class="rblock"><span class="insert">   of guiding cache updates (e.g., future HTTP extensions).</span></td><td class="lineno" valign="top"></td></tr>
324      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
325      <tr><td><a name="diff0027" /></td></tr>
326      <tr><td class="lineno" valign="top"></td><td class="lblock">   If a 304 response <span class="delete">indicates</span> an <span class="delete">entity</span> not currently cached, then the</td><td> </td><td class="rblock">   If a 304 response <span class="insert">includes</span> an <span class="insert">entity-tag that indicates a</span></td><td class="lineno" valign="top"></td></tr>
327      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">cache</span> MUST disregard the response and repeat the request without the</td><td> </td><td class="rblock"><span class="insert">   representation</span> not currently cached, then the <span class="insert">recipient</span> MUST <span class="insert">NOT use</span></td><td class="lineno" valign="top"></td></tr>
328      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   the 304 to update its own cache.  If that conditional request</span></td><td class="lineno" valign="top"></td></tr>
329      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   originated with an outbound client, such as a user agent with its own</span></td><td class="lineno" valign="top"></td></tr>
330      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   cache sending a conditional GET to a shared proxy, then the 304</span></td><td class="lineno" valign="top"></td></tr>
331      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   response MAY be forwarded to the outbound client.  Otherwise,</span></td><td class="lineno" valign="top"></td></tr>
332      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   disregard the response and repeat the request without the</td><td class="lineno" valign="top"></td></tr>
333      <tr><td class="lineno" valign="top"></td><td class="left">   conditional.</td><td> </td><td class="right">   conditional.</td><td class="lineno" valign="top"></td></tr>
334      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
335      <tr><td class="lineno" valign="top"></td><td class="left">   If a cache uses a received 304 response to update a cache entry, the</td><td> </td><td class="right">   If a cache uses a received 304 response to update a cache entry, the</td><td class="lineno" valign="top"></td></tr>
336      <tr><td class="lineno" valign="top"></td><td class="left">   cache MUST update the entry to reflect any new field values given in</td><td> </td><td class="right">   cache MUST update the entry to reflect any new field values given in</td><td class="lineno" valign="top"></td></tr>
337      <tr><td class="lineno" valign="top"></td><td class="left">   the response.</td><td> </td><td class="right">   the response.</td><td class="lineno" valign="top"></td></tr>
338      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
339      <tr><td class="lineno" valign="top"></td><td class="left">3.2.  412 Precondition Failed</td><td> </td><td class="right">3.2.  412 Precondition Failed</td><td class="lineno" valign="top"></td></tr>
340      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
341      <tr><td class="lineno" valign="top"></td><td class="left">   The precondition given in one or more of the request-header fields</td><td> </td><td class="right">   The precondition given in one or more of the request-header fields</td><td class="lineno" valign="top"></td></tr>
342      <tr><td class="lineno" valign="top"></td><td class="left">   evaluated to false when it was tested on the server.  This response</td><td> </td><td class="right">   evaluated to false when it was tested on the server.  This response</td><td class="lineno" valign="top"></td></tr>
343      <tr><td class="lineno" valign="top"></td><td class="left">   code allows the client to place preconditions on the current resource</td><td> </td><td class="right">   code allows the client to place preconditions on the current resource</td><td class="lineno" valign="top"></td></tr>
344      <tr><td><a name="diff0028" /></td></tr>
345      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">metainformation</span> (header field data) and thus prevent the requested</td><td> </td><td class="rblock">   <span class="insert">metadata</span> (header field data) and thus prevent the requested method</td><td class="lineno" valign="top"></td></tr>
346      <tr><td class="lineno" valign="top"></td><td class="lblock">   method from being applied to a resource other than the one intended.</td><td> </td><td class="rblock">   from being applied to a resource other than the one intended.</td><td class="lineno" valign="top"></td></tr>
347      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
348      <tr><td class="lineno" valign="top"></td><td class="left">4.  Weak and Strong Validators</td><td> </td><td class="right">4.  Weak and Strong Validators</td><td class="lineno" valign="top"></td></tr>
349      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
350      <tr><td class="lineno" valign="top"></td><td class="left">   Since both origin servers and caches will compare two validators to</td><td> </td><td class="right">   Since both origin servers and caches will compare two validators to</td><td class="lineno" valign="top"></td></tr>
351      <tr><td><a name="diff0029" /></td></tr>
352      <tr><td class="lineno" valign="top"></td><td class="lblock">   decide if they represent the same or different <span class="delete">entities,</span> one normally</td><td> </td><td class="rblock">   decide if they represent the same or different <span class="insert">representations,</span> one</td><td class="lineno" valign="top"></td></tr>
353      <tr><td class="lineno" valign="top"></td><td class="lblock">   would expect that if the <span class="delete">entity (the entity-body or any entity-</span></td><td> </td><td class="rblock">   normally would expect that if the <span class="insert">representation (including both</span></td><td class="lineno" valign="top"></td></tr>
354      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   headers)</span> changes in any way, then the associated validator would</td><td> </td><td class="rblock"><span class="insert">   representation header fields and representation body)</span> changes in any</td><td class="lineno" valign="top"></td></tr>
355      <tr><td class="lineno" valign="top"></td><td class="lblock">   change as well.  If this is true, then we call this validator a</td><td> </td><td class="rblock">   way, then the associated validator would change as well.  If this is</td><td class="lineno" valign="top"></td></tr>
356      <tr><td class="lineno" valign="top"></td><td class="lblock">   "strong <span class="delete">validator."</span></td><td> </td><td class="rblock">   true, then we call this validator a "strong <span class="insert">validator".</span></td><td class="lineno" valign="top"></td></tr>
357      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
358      <tr><td class="lineno" valign="top"></td><td class="left">   However, there might be cases when a server prefers to change the</td><td> </td><td class="right">   However, there might be cases when a server prefers to change the</td><td class="lineno" valign="top"></td></tr>
359      <tr><td class="lineno" valign="top"></td><td class="left">   validator only on semantically significant changes, and not when</td><td> </td><td class="right">   validator only on semantically significant changes, and not when</td><td class="lineno" valign="top"></td></tr>
360      <tr><td><a name="diff0030" /></td></tr>
361      <tr><td class="lineno" valign="top"></td><td class="lblock">   insignificant aspects of the <span class="delete">entity</span> change.  A validator that does</td><td> </td><td class="rblock">   insignificant aspects of the <span class="insert">representation</span> change.  A validator that</td><td class="lineno" valign="top"></td></tr>
362      <tr><td class="lineno" valign="top"></td><td class="lblock">   not always change when the <span class="delete">resource</span> changes is a "weak <span class="delete">validator."</span></td><td> </td><td class="rblock">   does not always change when the <span class="insert">representation</span> changes is a "weak</td><td class="lineno" valign="top"></td></tr>
363      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">validator".</span></td><td class="lineno" valign="top"></td></tr>
364      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
365      <tr><td><a name="diff0031" /></td></tr>
366      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">Entity tags are</span> normally <span class="delete">"strong validators,"</span> but the protocol</td><td> </td><td class="rblock">   <span class="insert">An entity-tag is</span> normally <span class="insert">a strong validator,</span> but the protocol</td><td class="lineno" valign="top"></td></tr>
367      <tr><td class="lineno" valign="top"></td><td class="lblock">   provides a mechanism to tag an <span class="delete">entity tag</span> as <span class="delete">"weak."</span>  One can think</td><td> </td><td class="rblock">   provides a mechanism to tag an <span class="insert">entity-tag</span> as <span class="insert">"weak".</span>  One can think</td><td class="lineno" valign="top"></td></tr>
368      <tr><td class="lineno" valign="top"></td><td class="lblock">   of a strong validator as one that changes whenever the <span class="delete">bits</span> of <span class="delete">an</span></td><td> </td><td class="rblock">   of a strong validator as one that changes whenever the <span class="insert">sequence</span> of</td><td class="lineno" valign="top"></td></tr>
369      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   entity</span> changes, while a weak value changes whenever the meaning of <span class="delete">an</span></td><td> </td><td class="rblock">   <span class="insert">bits in a representation</span> changes, while a weak value changes whenever</td><td class="lineno" valign="top"></td></tr>
370      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   entity</span> changes.  Alternatively, one can think of a strong validator</td><td> </td><td class="rblock">   the meaning of <span class="insert">a representation</span> changes.  Alternatively, one can</td><td class="lineno" valign="top"></td></tr>
371      <tr><td class="lineno" valign="top"></td><td class="lblock">   as part of an identifier for a specific <span class="delete">entity, while</span> a weak</td><td> </td><td class="rblock">   think of a strong validator as part of an identifier for a specific</td><td class="lineno" valign="top"></td></tr>
372      <tr><td class="lineno" valign="top"></td><td class="lblock">   validator is part of an identifier for a set of semantically</td><td> </td><td class="rblock">   <span class="insert">representation, whereas</span> a weak validator is part of an identifier for</td><td class="lineno" valign="top"></td></tr>
373      <tr><td class="lineno" valign="top"></td><td class="lblock">   equivalent <span class="delete">entities.</span></td><td> </td><td class="rblock">   a set of semantically equivalent <span class="insert">representations.</span></td><td class="lineno" valign="top"></td></tr>
374      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
375      <tr><td class="lineno" valign="top"></td><td class="left">      Note: One example of a strong validator is an integer that is</td><td> </td><td class="right">      Note: One example of a strong validator is an integer that is</td><td class="lineno" valign="top"></td></tr>
376      <tr><td><a name="diff0032" /></td></tr>
377      <tr><td class="lineno" valign="top"></td><td class="lblock">      incremented in stable storage every time <span class="delete">an entity</span> is changed.</td><td> </td><td class="rblock">      incremented in stable storage every time <span class="insert">a representation</span> is</td><td class="lineno" valign="top"></td></tr>
378      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">      changed.</td><td class="lineno" valign="top"></td></tr>
379      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
380      <tr><td><a name="diff0033" /></td></tr>
381      <tr><td class="lineno" valign="top"></td><td class="lblock">      <span class="delete">An entity's</span> modification time, if <span class="delete">represented</span> with <span class="delete">one-second</span></td><td> </td><td class="rblock">      <span class="insert">A representation's</span> modification time, if <span class="insert">defined</span> with <span class="insert">only one-</span></td><td class="lineno" valign="top"></td></tr>
382      <tr><td class="lineno" valign="top"></td><td class="lblock">      resolution, could be a weak validator, since it is possible that</td><td> </td><td class="rblock"><span class="insert">      second</span> resolution, could be a weak validator, since it is possible</td><td class="lineno" valign="top"></td></tr>
383      <tr><td class="lineno" valign="top"></td><td class="lblock">      the <span class="delete">resource</span> might be modified twice during a single second.</td><td> </td><td class="rblock">      that the <span class="insert">representation</span> might be modified twice during a single</td><td class="lineno" valign="top"></td></tr>
384      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">      second.</td><td class="lineno" valign="top"></td></tr>
385      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
386      <tr><td class="lineno" valign="top"></td><td class="left">      Support for weak validators is optional.  However, weak validators</td><td> </td><td class="right">      Support for weak validators is optional.  However, weak validators</td><td class="lineno" valign="top"></td></tr>
387      <tr><td class="lineno" valign="top"></td><td class="left">      allow for more efficient caching of equivalent objects; for</td><td> </td><td class="right">      allow for more efficient caching of equivalent objects; for</td><td class="lineno" valign="top"></td></tr>
388      <tr><td class="lineno" valign="top"></td><td class="left">      example, a hit counter on a site is probably good enough if it is</td><td> </td><td class="right">      example, a hit counter on a site is probably good enough if it is</td><td class="lineno" valign="top"></td></tr>
389      <tr><td class="lineno" valign="top"></td><td class="left">      updated every few days or weeks, and any value during that period</td><td> </td><td class="right">      updated every few days or weeks, and any value during that period</td><td class="lineno" valign="top"></td></tr>
390      <tr><td class="lineno" valign="top"></td><td class="left">      is likely "good enough" to be equivalent.</td><td> </td><td class="right">      is likely "good enough" to be equivalent.</td><td class="lineno" valign="top"></td></tr>
391      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
392      <tr><td class="lineno" valign="top"></td><td class="left">   A "use" of a validator is either when a client generates a request</td><td> </td><td class="right">   A "use" of a validator is either when a client generates a request</td><td class="lineno" valign="top"></td></tr>
393      <tr><td class="lineno" valign="top"></td><td class="left">   and includes the validator in a validating header field, or when a</td><td> </td><td class="right">   and includes the validator in a validating header field, or when a</td><td class="lineno" valign="top"></td></tr>
394      <tr><td class="lineno" valign="top"></td><td class="left">   server compares two validators.</td><td> </td><td class="right">   server compares two validators.</td><td class="lineno" valign="top"></td></tr>
395      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
396      <tr><td class="lineno" valign="top"></td><td class="left">   Strong validators are usable in any context.  Weak validators are</td><td> </td><td class="right">   Strong validators are usable in any context.  Weak validators are</td><td class="lineno" valign="top"></td></tr>
397      <tr><td><a name="diff0034" /></td></tr>
398      <tr><td class="lineno" valign="top"></td><td class="lblock">   only usable in contexts that do not depend on exact equality of <span class="delete">an</span></td><td> </td><td class="rblock">   only usable in contexts that do not depend on exact equality of <span class="insert">a</span></td><td class="lineno" valign="top"></td></tr>
399      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   entity.</span>  For example, either kind is usable for a conditional <span class="delete">GET of</span></td><td> </td><td class="rblock"><span class="insert">   representation.</span>  For example, either kind is usable for a <span class="insert">normal</span></td><td class="lineno" valign="top"></td></tr>
400      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   a full entity.</span>  However, only a strong validator is usable for a <span class="delete">sub-</span></td><td> </td><td class="rblock">   conditional <span class="insert">GET.</span>  However, only a strong validator is usable for a</td><td class="lineno" valign="top"></td></tr>
401      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   range</span> retrieval, since otherwise the client might end up with an</td><td> </td><td class="rblock">   <span class="insert">sub-range</span> retrieval, since otherwise the client might end up with an</td><td class="lineno" valign="top"></td></tr>
402      <tr><td class="lineno" valign="top"></td><td class="lblock">   internally inconsistent <span class="delete">entity.</span></td><td> </td><td class="rblock">   internally inconsistent <span class="insert">representation.</span></td><td class="lineno" valign="top"></td></tr>
403      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
404      <tr><td class="lineno" valign="top"></td><td class="left">   Clients MUST NOT use weak validators in range requests ([Part5]).</td><td> </td><td class="right">   Clients MUST NOT use weak validators in range requests ([Part5]).</td><td class="lineno" valign="top"></td></tr>
405      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
406      <tr><td class="lineno" valign="top"></td><td class="left">   The only function that HTTP/1.1 defines on validators is comparison.</td><td> </td><td class="right">   The only function that HTTP/1.1 defines on validators is comparison.</td><td class="lineno" valign="top"></td></tr>
407      <tr><td class="lineno" valign="top"></td><td class="left">   There are two validator comparison functions, depending on whether</td><td> </td><td class="right">   There are two validator comparison functions, depending on whether</td><td class="lineno" valign="top"></td></tr>
408      <tr><td class="lineno" valign="top"></td><td class="left">   the comparison context allows the use of weak validators or not:</td><td> </td><td class="right">   the comparison context allows the use of weak validators or not:</td><td class="lineno" valign="top"></td></tr>
409      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
410      <tr><td class="lineno" valign="top"></td><td class="left">   o  The strong comparison function: in order to be considered equal,</td><td> </td><td class="right">   o  The strong comparison function: in order to be considered equal,</td><td class="lineno" valign="top"></td></tr>
411      <tr><td class="lineno" valign="top"></td><td class="left">      both opaque-tags MUST be identical character-by-character, and</td><td> </td><td class="right">      both opaque-tags MUST be identical character-by-character, and</td><td class="lineno" valign="top"></td></tr>
412      <tr><td class="lineno" valign="top"></td><td class="left">      both MUST NOT be weak.</td><td> </td><td class="right">      both MUST NOT be weak.</td><td class="lineno" valign="top"></td></tr>
413      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
414      <tr><td class="lineno" valign="top"></td><td class="left">   o  The weak comparison function: in order to be considered equal,</td><td> </td><td class="right">   o  The weak comparison function: in order to be considered equal,</td><td class="lineno" valign="top"></td></tr>
415      <tr><td class="lineno" valign="top"></td><td class="left">      both opaque-tags MUST be identical character-by-character, but</td><td> </td><td class="right">      both opaque-tags MUST be identical character-by-character, but</td><td class="lineno" valign="top"></td></tr>
416      <tr><td class="lineno" valign="top"></td><td class="left">      either or both of them MAY be tagged as "weak" without affecting</td><td> </td><td class="right">      either or both of them MAY be tagged as "weak" without affecting</td><td class="lineno" valign="top"></td></tr>
417      <tr><td class="lineno" valign="top"></td><td class="left">      the result.</td><td> </td><td class="right">      the result.</td><td class="lineno" valign="top"></td></tr>
418      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
419      <tr><td><a name="diff0035" /></td></tr>
420      <tr><td class="lineno" valign="top"></td><td class="lblock">   The example below shows the results for a set of entity<span class="delete"> </span>tag pairs,</td><td> </td><td class="rblock">   The example below shows the results for a set of entity<span class="insert">-</span>tag pairs,</td><td class="lineno" valign="top"></td></tr>
421      <tr><td class="lineno" valign="top"></td><td class="left">   and both the weak and strong comparison function results:</td><td> </td><td class="right">   and both the weak and strong comparison function results:</td><td class="lineno" valign="top"></td></tr>
422      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
423      <tr><td class="lineno" valign="top"></td><td class="left">   +--------+--------+-------------------+-----------------+</td><td> </td><td class="right">   +--------+--------+-------------------+-----------------+</td><td class="lineno" valign="top"></td></tr>
424      <tr><td class="lineno" valign="top"></td><td class="left">   | ETag 1 | ETag 2 | Strong Comparison | Weak Comparison |</td><td> </td><td class="right">   | ETag 1 | ETag 2 | Strong Comparison | Weak Comparison |</td><td class="lineno" valign="top"></td></tr>
425      <tr><td class="lineno" valign="top"></td><td class="left">   +--------+--------+-------------------+-----------------+</td><td> </td><td class="right">   +--------+--------+-------------------+-----------------+</td><td class="lineno" valign="top"></td></tr>
426      <tr><td class="lineno" valign="top"></td><td class="left">   | W/"1"  | W/"1"  | no match          | match           |</td><td> </td><td class="right">   | W/"1"  | W/"1"  | no match          | match           |</td><td class="lineno" valign="top"></td></tr>
427      <tr><td class="lineno" valign="top"></td><td class="left">   | W/"1"  | W/"2"  | no match          | no match        |</td><td> </td><td class="right">   | W/"1"  | W/"2"  | no match          | no match        |</td><td class="lineno" valign="top"></td></tr>
428      <tr><td class="lineno" valign="top"></td><td class="left">   | W/"1"  | "1"    | no match          | match           |</td><td> </td><td class="right">   | W/"1"  | "1"    | no match          | match           |</td><td class="lineno" valign="top"></td></tr>
429      <tr><td class="lineno" valign="top"></td><td class="left">   | "1"    | "1"    | match             | match           |</td><td> </td><td class="right">   | "1"    | "1"    | match             | match           |</td><td class="lineno" valign="top"></td></tr>
430      <tr><td class="lineno" valign="top"></td><td class="left">   +--------+--------+-------------------+-----------------+</td><td> </td><td class="right">   +--------+--------+-------------------+-----------------+</td><td class="lineno" valign="top"></td></tr>
431      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
432      <tr><td><a name="diff0036" /></td></tr>
433      <tr><td class="lineno" valign="top"></td><td class="lblock">   An <span class="delete">entity tag</span> is strong unless it is explicitly tagged as weak.</td><td> </td><td class="rblock">   An <span class="insert">entity-tag</span> is strong unless it is explicitly tagged as weak.</td><td class="lineno" valign="top"></td></tr>
434      <tr><td class="lineno" valign="top"></td><td class="lblock">   Section 2 gives the syntax for <span class="delete">entity tags.</span></td><td> </td><td class="rblock">   Section 2 gives the syntax for <span class="insert">entity-tags.</span></td><td class="lineno" valign="top"></td></tr>
435      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
436      <tr><td class="lineno" valign="top"></td><td class="left">   A Last-Modified time, when used as a validator in a request, is</td><td> </td><td class="right">   A Last-Modified time, when used as a validator in a request, is</td><td class="lineno" valign="top"></td></tr>
437      <tr><td class="lineno" valign="top"></td><td class="left">   implicitly weak unless it is possible to deduce that it is strong,</td><td> </td><td class="right">   implicitly weak unless it is possible to deduce that it is strong,</td><td class="lineno" valign="top"></td></tr>
438      <tr><td class="lineno" valign="top"></td><td class="left">   using the following rules:</td><td> </td><td class="right">   using the following rules:</td><td class="lineno" valign="top"></td></tr>
439      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
440      <tr><td class="lineno" valign="top"></td><td class="left">   o  The validator is being compared by an origin server to the actual</td><td> </td><td class="right">   o  The validator is being compared by an origin server to the actual</td><td class="lineno" valign="top"></td></tr>
441      <tr><td><a name="diff0037" /></td></tr>
442      <tr><td class="lineno" valign="top"></td><td class="lblock">      current validator for the <span class="delete">entity</span> and,</td><td> </td><td class="rblock">      current validator for the <span class="insert">representation</span> and,</td><td class="lineno" valign="top"></td></tr>
443      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
444      <tr><td><a name="diff0038" /></td></tr>
445      <tr><td class="lineno" valign="top"></td><td class="lblock">   o  That origin server reliably knows that the associated <span class="delete">entity</span> did</td><td> </td><td class="rblock">   o  That origin server reliably knows that the associated</td><td class="lineno" valign="top"></td></tr>
446      <tr><td class="lineno" valign="top"></td><td class="lblock">      not change twice during the second covered by the presented</td><td> </td><td class="rblock">      <span class="insert">representation</span> did not change twice during the second covered by</td><td class="lineno" valign="top"></td></tr>
447      <tr><td class="lineno" valign="top"></td><td class="lblock">      validator.</td><td> </td><td class="rblock">      the presented validator.</td><td class="lineno" valign="top"></td></tr>
448      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
449      <tr><td class="lineno" valign="top"></td><td class="left">   or</td><td> </td><td class="right">   or</td><td class="lineno" valign="top"></td></tr>
450      <tr><td><a name="diff0039" /></td></tr>
451      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                                                                         </span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
452      <tr><td class="lineno" valign="top"></td><td class="left">   o  The validator is about to be used by a client in an If-Modified-</td><td> </td><td class="right">   o  The validator is about to be used by a client in an If-Modified-</td><td class="lineno" valign="top"></td></tr>
453      <tr><td class="lineno" valign="top"></td><td class="left">      Since or If-Unmodified-Since header, because the client has a</td><td> </td><td class="right">      Since or If-Unmodified-Since header, because the client has a</td><td class="lineno" valign="top"></td></tr>
454      <tr><td><a name="diff0040" /></td></tr>
455      <tr><td class="lineno" valign="top"></td><td class="lblock">      cache entry for the associated <span class="delete">entity</span>, and</td><td> </td><td class="rblock">      cache entry for the associated <span class="insert">representation</span>, and</td><td class="lineno" valign="top"></td></tr>
456      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
457      <tr><td class="lineno" valign="top"></td><td class="left">   o  That cache entry includes a Date value, which gives the time when</td><td> </td><td class="right">   o  That cache entry includes a Date value, which gives the time when</td><td class="lineno" valign="top"></td></tr>
458      <tr><td class="lineno" valign="top"></td><td class="left">      the origin server sent the original response, and</td><td> </td><td class="right">      the origin server sent the original response, and</td><td class="lineno" valign="top"></td></tr>
459      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
460      <tr><td class="lineno" valign="top"></td><td class="left">   o  The presented Last-Modified time is at least 60 seconds before the</td><td> </td><td class="right">   o  The presented Last-Modified time is at least 60 seconds before the</td><td class="lineno" valign="top"></td></tr>
461      <tr><td class="lineno" valign="top"></td><td class="left">      Date value.</td><td> </td><td class="right">      Date value.</td><td class="lineno" valign="top"></td></tr>
462      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
463      <tr><td class="lineno" valign="top"></td><td class="left">   or</td><td> </td><td class="right">   or</td><td class="lineno" valign="top"></td></tr>
464      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
465      <tr><td class="lineno" valign="top"></td><td class="left">   o  The validator is being compared by an intermediate cache to the</td><td> </td><td class="right">   o  The validator is being compared by an intermediate cache to the</td><td class="lineno" valign="top"></td></tr>
466      <tr><td><a name="diff0041" /></td></tr>
467      <tr><td class="lineno" valign="top"></td><td class="lblock">      validator stored in its cache entry for the <span class="delete">entity</span>, and</td><td> </td><td class="rblock">      validator stored in its cache entry for the <span class="insert">representation</span>, and</td><td class="lineno" valign="top"></td></tr>
468      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
469      <tr><td class="lineno" valign="top"></td><td class="left">   o  That cache entry includes a Date value, which gives the time when</td><td> </td><td class="right">   o  That cache entry includes a Date value, which gives the time when</td><td class="lineno" valign="top"></td></tr>
470      <tr><td class="lineno" valign="top"></td><td class="left">      the origin server sent the original response, and</td><td> </td><td class="right">      the origin server sent the original response, and</td><td class="lineno" valign="top"></td></tr>
471      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
472      <tr><td class="lineno" valign="top"></td><td class="left">   o  The presented Last-Modified time is at least 60 seconds before the</td><td> </td><td class="right">   o  The presented Last-Modified time is at least 60 seconds before the</td><td class="lineno" valign="top"></td></tr>
473      <tr><td class="lineno" valign="top"></td><td class="left">      Date value.</td><td> </td><td class="right">      Date value.</td><td class="lineno" valign="top"></td></tr>
474      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
475      <tr><td class="lineno" valign="top"></td><td class="left">   This method relies on the fact that if two different responses were</td><td> </td><td class="right">   This method relies on the fact that if two different responses were</td><td class="lineno" valign="top"></td></tr>
476      <tr><td class="lineno" valign="top"></td><td class="left">   sent by the origin server during the same second, but both had the</td><td> </td><td class="right">   sent by the origin server during the same second, but both had the</td><td class="lineno" valign="top"></td></tr>
477      <tr><td class="lineno" valign="top"></td><td class="left">   same Last-Modified time, then at least one of those responses would</td><td> </td><td class="right">   same Last-Modified time, then at least one of those responses would</td><td class="lineno" valign="top"></td></tr>
478      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
479      <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 11, line 5</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 10, line 48</em></th><td></td></tr>
480      <tr><td class="lineno" valign="top"></td><td class="left">   described here.</td><td> </td><td class="right">   described here.</td><td class="lineno" valign="top"></td></tr>
481      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
482      <tr><td class="lineno" valign="top"></td><td class="left">   A cache or origin server receiving a conditional range request</td><td> </td><td class="right">   A cache or origin server receiving a conditional range request</td><td class="lineno" valign="top"></td></tr>
483      <tr><td class="lineno" valign="top"></td><td class="left">   ([Part5]) MUST use the strong comparison function to evaluate the</td><td> </td><td class="right">   ([Part5]) MUST use the strong comparison function to evaluate the</td><td class="lineno" valign="top"></td></tr>
484      <tr><td class="lineno" valign="top"></td><td class="left">   condition.</td><td> </td><td class="right">   condition.</td><td class="lineno" valign="top"></td></tr>
485      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
486      <tr><td class="lineno" valign="top"></td><td class="left">   These rules allow HTTP/1.1 caches and clients to safely perform sub-</td><td> </td><td class="right">   These rules allow HTTP/1.1 caches and clients to safely perform sub-</td><td class="lineno" valign="top"></td></tr>
487      <tr><td class="lineno" valign="top"></td><td class="left">   range retrievals on values that have been obtained from HTTP/1.0</td><td> </td><td class="right">   range retrievals on values that have been obtained from HTTP/1.0</td><td class="lineno" valign="top"></td></tr>
488      <tr><td class="lineno" valign="top"></td><td class="left">   servers.</td><td> </td><td class="right">   servers.</td><td class="lineno" valign="top"></td></tr>
489      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
490      <tr><td><a name="diff0042" /></td></tr>
491      <tr><td class="lineno" valign="top"></td><td class="lblock">5.  Rules for When to Use Entity<span class="delete"> T</span>ags and Last-Modified Dates</td><td> </td><td class="rblock">5.  Rules for When to Use Entity<span class="insert">-t</span>ags and Last-Modified Dates</td><td class="lineno" valign="top"></td></tr>
492      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
493      <tr><td class="lineno" valign="top"></td><td class="left">   We adopt a set of rules and recommendations for origin servers,</td><td> </td><td class="right">   We adopt a set of rules and recommendations for origin servers,</td><td class="lineno" valign="top"></td></tr>
494      <tr><td class="lineno" valign="top"></td><td class="left">   clients, and caches regarding when various validator types ought to</td><td> </td><td class="right">   clients, and caches regarding when various validator types ought to</td><td class="lineno" valign="top"></td></tr>
495      <tr><td class="lineno" valign="top"></td><td class="left">   be used, and for what purposes.</td><td> </td><td class="right">   be used, and for what purposes.</td><td class="lineno" valign="top"></td></tr>
496      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
497      <tr><td class="lineno" valign="top"></td><td class="left">   HTTP/1.1 origin servers:</td><td> </td><td class="right">   HTTP/1.1 origin servers:</td><td class="lineno" valign="top"></td></tr>
498      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
499      <tr><td><a name="diff0043" /></td></tr>
500      <tr><td class="lineno" valign="top"></td><td class="lblock">   o  SHOULD send an entity<span class="delete"> </span>tag validator unless it is not feasible to</td><td> </td><td class="rblock">   o  SHOULD send an entity<span class="insert">-</span>tag validator unless it is not feasible to</td><td class="lineno" valign="top"></td></tr>
501      <tr><td class="lineno" valign="top"></td><td class="left">      generate one.</td><td> </td><td class="right">      generate one.</td><td class="lineno" valign="top"></td></tr>
502      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
503      <tr><td><a name="diff0044" /></td></tr>
504      <tr><td class="lineno" valign="top"></td><td class="lblock">   o  MAY send a weak <span class="delete">entity tag</span> instead of a strong <span class="delete">entity tag,</span> if</td><td> </td><td class="rblock">   o  MAY send a weak <span class="insert">entity-tag</span> instead of a strong <span class="insert">entity-tag,</span> if</td><td class="lineno" valign="top"></td></tr>
505      <tr><td class="lineno" valign="top"></td><td class="lblock">      performance considerations support the use of weak <span class="delete">entity tags,</span> or</td><td> </td><td class="rblock">      performance considerations support the use of weak <span class="insert">entity-tags,</span> or</td><td class="lineno" valign="top"></td></tr>
506      <tr><td class="lineno" valign="top"></td><td class="lblock">      if it is unfeasible to send a strong <span class="delete">entity tag.</span></td><td> </td><td class="rblock">      if it is unfeasible to send a strong <span class="insert">entity-tag.</span></td><td class="lineno" valign="top"></td></tr>
507      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
508      <tr><td class="lineno" valign="top"></td><td class="left">   o  SHOULD send a Last-Modified value if it is feasible to send one,</td><td> </td><td class="right">   o  SHOULD send a Last-Modified value if it is feasible to send one,</td><td class="lineno" valign="top"></td></tr>
509      <tr><td class="lineno" valign="top"></td><td class="left">      unless the risk of a breakdown in semantic transparency that could</td><td> </td><td class="right">      unless the risk of a breakdown in semantic transparency that could</td><td class="lineno" valign="top"></td></tr>
510      <tr><td class="lineno" valign="top"></td><td class="left">      result from using this date in an If-Modified-Since header would</td><td> </td><td class="right">      result from using this date in an If-Modified-Since header would</td><td class="lineno" valign="top"></td></tr>
511      <tr><td class="lineno" valign="top"></td><td class="left">      lead to serious problems.</td><td> </td><td class="right">      lead to serious problems.</td><td class="lineno" valign="top"></td></tr>
512      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
513      <tr><td class="lineno" valign="top"></td><td class="left">   In other words, the preferred behavior for an HTTP/1.1 origin server</td><td> </td><td class="right">   In other words, the preferred behavior for an HTTP/1.1 origin server</td><td class="lineno" valign="top"></td></tr>
514      <tr><td><a name="diff0045" /></td></tr>
515      <tr><td class="lineno" valign="top"></td><td class="lblock">   is to send both a strong entity<span class="delete"> </span>tag and a Last-Modified value.</td><td> </td><td class="rblock">   is to send both a strong entity<span class="insert">-</span>tag and a Last-Modified value.</td><td class="lineno" valign="top"></td></tr>
516      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
517      <tr><td><a name="diff0046" /></td></tr>
518      <tr><td class="lineno" valign="top"></td><td class="lblock">   In order to be legal, a strong <span class="delete">entity tag</span> MUST change whenever the</td><td> </td><td class="rblock">   In order to be legal, a strong <span class="insert">entity-tag</span> MUST change whenever the</td><td class="lineno" valign="top"></td></tr>
519      <tr><td class="lineno" valign="top"></td><td class="lblock">   associated <span class="delete">entity</span> changes in any way.  A weak <span class="delete">entity tag</span> SHOULD</td><td> </td><td class="rblock">   associated <span class="insert">representation</span> changes in any way.  A weak <span class="insert">entity-tag</span></td><td class="lineno" valign="top"></td></tr>
520      <tr><td class="lineno" valign="top"></td><td class="lblock">   change whenever the associated <span class="delete">entity</span> changes in a semantically</td><td> </td><td class="rblock">   SHOULD change whenever the associated <span class="insert">representation</span> changes in a</td><td class="lineno" valign="top"></td></tr>
521      <tr><td class="lineno" valign="top"></td><td class="lblock">   significant way.</td><td> </td><td class="rblock">   semantically significant way.</td><td class="lineno" valign="top"></td></tr>
522      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
523      <tr><td class="lineno" valign="top"></td><td class="left">      Note: In order to provide semantically transparent caching, an</td><td> </td><td class="right">      Note: In order to provide semantically transparent caching, an</td><td class="lineno" valign="top"></td></tr>
524      <tr><td><a name="diff0047" /></td></tr>
525      <tr><td class="lineno" valign="top"></td><td class="lblock">      origin server must avoid reusing a specific strong <span class="delete">entity tag</span></td><td> </td><td class="rblock">      origin server must avoid reusing a specific strong <span class="insert">entity-tag</span></td><td class="lineno" valign="top"></td></tr>
526      <tr><td class="lineno" valign="top"></td><td class="lblock">      value for two different <span class="delete">entities,</span> or reusing a specific weak</td><td> </td><td class="rblock">      value for two different <span class="insert">representations,</span> or reusing a specific</td><td class="lineno" valign="top"></td></tr>
527      <tr><td class="lineno" valign="top"></td><td class="lblock">      <span class="delete">entity tag</span> value for two semantically different <span class="delete">entities.</span>  Cache</td><td> </td><td class="rblock">      weak <span class="insert">entity-tag</span> value for two semantically different</td><td class="lineno" valign="top"></td></tr>
528      <tr><td class="lineno" valign="top"></td><td class="lblock">      entries might persist for arbitrarily long periods, regardless of</td><td> </td><td class="rblock">      <span class="insert">representations.</span>  Cache entries might persist for arbitrarily long</td><td class="lineno" valign="top"></td></tr>
529      <tr><td class="lineno" valign="top"></td><td class="lblock">      expiration times, so it might be inappropriate to expect that a</td><td> </td><td class="rblock">      periods, regardless of expiration times, so it might be</td><td class="lineno" valign="top"></td></tr>
530      <tr><td class="lineno" valign="top"></td><td class="lblock">      cache will never again attempt to validate an entry using a</td><td> </td><td class="rblock">      inappropriate to expect that a cache will never again attempt to</td><td class="lineno" valign="top"></td></tr>
531      <tr><td class="lineno" valign="top"></td><td class="lblock">      validator that it obtained at some point in the past.</td><td> </td><td class="rblock">      validate an entry using a validator that it obtained at some point</td><td class="lineno" valign="top"></td></tr>
532      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">      in the past.</td><td class="lineno" valign="top"></td></tr>
533      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
534      <tr><td class="lineno" valign="top"></td><td class="left">   HTTP/1.1 clients:</td><td> </td><td class="right">   HTTP/1.1 clients:</td><td class="lineno" valign="top"></td></tr>
535      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
536      <tr><td><a name="diff0048" /></td></tr>
537      <tr><td class="lineno" valign="top"></td><td class="lblock">   o  MUST use that <span class="delete">entity tag</span> in any cache-conditional request (using</td><td> </td><td class="rblock">   o  MUST use that <span class="insert">entity-tag</span> in any cache-conditional request (using</td><td class="lineno" valign="top"></td></tr>
538      <tr><td class="lineno" valign="top"></td><td class="lblock">      If-Match or If-None-Match) if an <span class="delete">entity tag</span> has been provided by</td><td> </td><td class="rblock">      If-Match or If-None-Match) if an <span class="insert">entity-tag</span> has been provided by</td><td class="lineno" valign="top"></td></tr>
539      <tr><td class="lineno" valign="top"></td><td class="left">      the origin server.</td><td> </td><td class="right">      the origin server.</td><td class="lineno" valign="top"></td></tr>
540      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
541      <tr><td class="lineno" valign="top"></td><td class="left">   o  SHOULD use the Last-Modified value in non-subrange cache-</td><td> </td><td class="right">   o  SHOULD use the Last-Modified value in non-subrange cache-</td><td class="lineno" valign="top"></td></tr>
542      <tr><td class="lineno" valign="top"></td><td class="left">      conditional requests (using If-Modified-Since) if only a Last-</td><td> </td><td class="right">      conditional requests (using If-Modified-Since) if only a Last-</td><td class="lineno" valign="top"></td></tr>
543      <tr><td class="lineno" valign="top"></td><td class="left">      Modified value has been provided by the origin server.</td><td> </td><td class="right">      Modified value has been provided by the origin server.</td><td class="lineno" valign="top"></td></tr>
544      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
545      <tr><td class="lineno" valign="top"></td><td class="left">   o  MAY use the Last-Modified value in subrange cache-conditional</td><td> </td><td class="right">   o  MAY use the Last-Modified value in subrange cache-conditional</td><td class="lineno" valign="top"></td></tr>
546      <tr><td class="lineno" valign="top"></td><td class="left">      requests (using If-Unmodified-Since) if only a Last-Modified value</td><td> </td><td class="right">      requests (using If-Unmodified-Since) if only a Last-Modified value</td><td class="lineno" valign="top"></td></tr>
547      <tr><td class="lineno" valign="top"></td><td class="left">      has been provided by an HTTP/1.0 origin server.  The user agent</td><td> </td><td class="right">      has been provided by an HTTP/1.0 origin server.  The user agent</td><td class="lineno" valign="top"></td></tr>
548      <tr><td class="lineno" valign="top"></td><td class="left">      SHOULD provide a way to disable this, in case of difficulty.</td><td> </td><td class="right">      SHOULD provide a way to disable this, in case of difficulty.</td><td class="lineno" valign="top"></td></tr>
549      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
550      <tr><td class="lineno" valign="top"></td><td class="left">   o  SHOULD use both validators in cache-conditional requests if both</td><td> </td><td class="right">   o  SHOULD use both validators in cache-conditional requests if both</td><td class="lineno" valign="top"></td></tr>
551      <tr><td><a name="diff0049" /></td></tr>
552      <tr><td class="lineno" valign="top"></td><td class="lblock">      an entity<span class="delete"> </span>tag and a Last-Modified value have been provided by the</td><td> </td><td class="rblock">      an entity<span class="insert">-</span>tag and a Last-Modified value have been provided by the</td><td class="lineno" valign="top"></td></tr>
553      <tr><td class="lineno" valign="top"></td><td class="left">      origin server.  This allows both HTTP/1.0 and HTTP/1.1 caches to</td><td> </td><td class="right">      origin server.  This allows both HTTP/1.0 and HTTP/1.1 caches to</td><td class="lineno" valign="top"></td></tr>
554      <tr><td class="lineno" valign="top"></td><td class="left">      respond appropriately.</td><td> </td><td class="right">      respond appropriately.</td><td class="lineno" valign="top"></td></tr>
555      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
556      <tr><td class="lineno" valign="top"></td><td class="left">   An HTTP/1.1 origin server, upon receiving a conditional request that</td><td> </td><td class="right">   An HTTP/1.1 origin server, upon receiving a conditional request that</td><td class="lineno" valign="top"></td></tr>
557      <tr><td class="lineno" valign="top"></td><td class="left">   includes both a Last-Modified date (e.g., in an If-Modified-Since or</td><td> </td><td class="right">   includes both a Last-Modified date (e.g., in an If-Modified-Since or</td><td class="lineno" valign="top"></td></tr>
558      <tr><td><a name="diff0050" /></td></tr>
559      <tr><td class="lineno" valign="top"></td><td class="lblock">   If-Unmodified-Since header field) and one or more entity<span class="delete"> </span>tags (e.g.,</td><td> </td><td class="rblock">   If-Unmodified-Since header field) and one or more entity<span class="insert">-</span>tags (e.g.,</td><td class="lineno" valign="top"></td></tr>
560      <tr><td class="lineno" valign="top"></td><td class="left">   in an If-Match, If-None-Match, or If-Range header field) as cache</td><td> </td><td class="right">   in an If-Match, If-None-Match, or If-Range header field) as cache</td><td class="lineno" valign="top"></td></tr>
561      <tr><td><a name="diff0051" /></td></tr>
562      <tr><td class="lineno" valign="top"></td><td class="lblock">   validators, MUST NOT return a response status of 304 (Not Modified)</td><td> </td><td class="rblock">   validators, MUST NOT return a response status <span class="insert">code</span> of 304 (Not</td><td class="lineno" valign="top"></td></tr>
563      <tr><td class="lineno" valign="top"></td><td class="lblock">   unless doing so is consistent with all of the conditional header</td><td> </td><td class="rblock">   Modified) unless doing so is consistent with all of the conditional</td><td class="lineno" valign="top"></td></tr>
564      <tr><td class="lineno" valign="top"></td><td class="lblock">   fields in the request.</td><td> </td><td class="rblock">   header fields in the request.</td><td class="lineno" valign="top"></td></tr>
565      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
566      <tr><td class="lineno" valign="top"></td><td class="left">   An HTTP/1.1 caching proxy, upon receiving a conditional request that</td><td> </td><td class="right">   An HTTP/1.1 caching proxy, upon receiving a conditional request that</td><td class="lineno" valign="top"></td></tr>
567      <tr><td><a name="diff0052" /></td></tr>
568      <tr><td class="lineno" valign="top"></td><td class="lblock">   includes both a Last-Modified date and one or more entity<span class="delete"> </span>tags as</td><td> </td><td class="rblock">   includes both a Last-Modified date and one or more entity<span class="insert">-</span>tags as</td><td class="lineno" valign="top"></td></tr>
569      <tr><td class="lineno" valign="top"></td><td class="left">   cache validators, MUST NOT return a locally cached response to the</td><td> </td><td class="right">   cache validators, MUST NOT return a locally cached response to the</td><td class="lineno" valign="top"></td></tr>
570      <tr><td class="lineno" valign="top"></td><td class="left">   client unless that cached response is consistent with all of the</td><td> </td><td class="right">   client unless that cached response is consistent with all of the</td><td class="lineno" valign="top"></td></tr>
571      <tr><td class="lineno" valign="top"></td><td class="left">   conditional header fields in the request.</td><td> </td><td class="right">   conditional header fields in the request.</td><td class="lineno" valign="top"></td></tr>
572      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
573      <tr><td class="lineno" valign="top"></td><td class="left">      Note: The general principle behind these rules is that HTTP/1.1</td><td> </td><td class="right">      Note: The general principle behind these rules is that HTTP/1.1</td><td class="lineno" valign="top"></td></tr>
574      <tr><td><a name="diff0053" /></td></tr>
575      <tr><td class="lineno" valign="top"></td><td class="lblock">      servers and clients <span class="delete">should</span> transmit as much non-redundant</td><td> </td><td class="rblock">      servers and clients <span class="insert">ought to</span> transmit as much non-redundant</td><td class="lineno" valign="top"></td></tr>
576      <tr><td class="lineno" valign="top"></td><td class="left">      information as is available in their responses and requests.</td><td> </td><td class="right">      information as is available in their responses and requests.</td><td class="lineno" valign="top"></td></tr>
577      <tr><td class="lineno" valign="top"></td><td class="left">      HTTP/1.1 systems receiving this information will make the most</td><td> </td><td class="right">      HTTP/1.1 systems receiving this information will make the most</td><td class="lineno" valign="top"></td></tr>
578      <tr><td class="lineno" valign="top"></td><td class="left">      conservative assumptions about the validators they receive.</td><td> </td><td class="right">      conservative assumptions about the validators they receive.</td><td class="lineno" valign="top"></td></tr>
579      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
580      <tr><td><a name="diff0054" /></td></tr>
581      <tr><td class="lineno" valign="top"></td><td class="lblock">      HTTP/1.0 clients and caches will ignore entity<span class="delete"> </span>tags.  Generally,</td><td> </td><td class="rblock">      HTTP/1.0 clients and caches will ignore entity<span class="insert">-</span>tags.  Generally,</td><td class="lineno" valign="top"></td></tr>
582      <tr><td class="lineno" valign="top"></td><td class="left">      last-modified values received or used by these systems will</td><td> </td><td class="right">      last-modified values received or used by these systems will</td><td class="lineno" valign="top"></td></tr>
583      <tr><td class="lineno" valign="top"></td><td class="left">      support transparent and efficient caching, and so HTTP/1.1 origin</td><td> </td><td class="right">      support transparent and efficient caching, and so HTTP/1.1 origin</td><td class="lineno" valign="top"></td></tr>
584      <tr><td class="lineno" valign="top"></td><td class="left">      servers should provide Last-Modified values.  In those rare cases</td><td> </td><td class="right">      servers should provide Last-Modified values.  In those rare cases</td><td class="lineno" valign="top"></td></tr>
585      <tr><td class="lineno" valign="top"></td><td class="left">      where the use of a Last-Modified value as a validator by an</td><td> </td><td class="right">      where the use of a Last-Modified value as a validator by an</td><td class="lineno" valign="top"></td></tr>
586      <tr><td class="lineno" valign="top"></td><td class="left">      HTTP/1.0 system could result in a serious problem, then HTTP/1.1</td><td> </td><td class="right">      HTTP/1.0 system could result in a serious problem, then HTTP/1.1</td><td class="lineno" valign="top"></td></tr>
587      <tr><td class="lineno" valign="top"></td><td class="left">      origin servers should not provide one.</td><td> </td><td class="right">      origin servers should not provide one.</td><td class="lineno" valign="top"></td></tr>
588      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
589      <tr><td class="lineno" valign="top"></td><td class="left">6.  Header Field Definitions</td><td> </td><td class="right">6.  Header Field Definitions</td><td class="lineno" valign="top"></td></tr>
590      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
591      <tr><td class="lineno" valign="top"></td><td class="left">   This section defines the syntax and semantics of HTTP/1.1 header</td><td> </td><td class="right">   This section defines the syntax and semantics of HTTP/1.1 header</td><td class="lineno" valign="top"></td></tr>
592      <tr><td class="lineno" valign="top"></td><td class="left">   fields related to conditional requests.</td><td> </td><td class="right">   fields related to conditional requests.</td><td class="lineno" valign="top"></td></tr>
593      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
594      <tr><td><a name="diff0055" /></td></tr>
595      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">For entity-header fields, both sender and recipient refer to either</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
596      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   the client or the server, depending on who sends and who receives the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
597      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   entity.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
598      <tr><td class="lineno" valign="top"></td><td class="lblock">                                                                         </td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
599      <tr><td class="lineno" valign="top"></td><td class="left">6.1.  ETag</td><td> </td><td class="right">6.1.  ETag</td><td class="lineno" valign="top"></td></tr>
600      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
601      <tr><td class="lineno" valign="top"></td><td class="left">   The "ETag" response-header field provides the current value of the</td><td> </td><td class="right">   The "ETag" response-header field provides the current value of the</td><td class="lineno" valign="top"></td></tr>
602      <tr><td><a name="diff0056" /></td></tr>
603      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">entity tag</span> (see Section 2) for the <span class="delete">requested variant, which may be</span></td><td> </td><td class="rblock">   <span class="insert">entity-tag</span> (see Section 2) for <span class="insert">one representation of</span> the <span class="insert">target</span></td><td class="lineno" valign="top"></td></tr>
604      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   used</span> for <span class="delete">comparison with other entities from</span> the same resource (see</td><td> </td><td class="rblock"><span class="insert">   resource.  An entity-tag is intended</span> for <span class="insert">use as a resource-local</span></td><td class="lineno" valign="top"></td></tr>
605      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   identifier for differentiating between representations of</span> the same</td><td class="lineno" valign="top"></td></tr>
606      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   resource <span class="insert">that vary over time or via content negotiation</span> (see</td><td class="lineno" valign="top"></td></tr>
607      <tr><td class="lineno" valign="top"></td><td class="left">   Section 4).</td><td> </td><td class="right">   Section 4).</td><td class="lineno" valign="top"></td></tr>
608      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
609      <tr><td class="lineno" valign="top"></td><td class="left">     ETag   = "ETag" ":" OWS ETag-v</td><td> </td><td class="right">     ETag   = "ETag" ":" OWS ETag-v</td><td class="lineno" valign="top"></td></tr>
610      <tr><td class="lineno" valign="top"></td><td class="left">     ETag-v = entity-tag</td><td> </td><td class="right">     ETag-v = entity-tag</td><td class="lineno" valign="top"></td></tr>
611      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
612      <tr><td class="lineno" valign="top"></td><td class="left">   Examples:</td><td> </td><td class="right">   Examples:</td><td class="lineno" valign="top"></td></tr>
613      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
614      <tr><td class="lineno" valign="top"></td><td class="left">     ETag: "xyzzy"</td><td> </td><td class="right">     ETag: "xyzzy"</td><td class="lineno" valign="top"></td></tr>
615      <tr><td class="lineno" valign="top"></td><td class="left">     ETag: W/"xyzzy"</td><td> </td><td class="right">     ETag: W/"xyzzy"</td><td class="lineno" valign="top"></td></tr>
616      <tr><td class="lineno" valign="top"></td><td class="left">     ETag: ""</td><td> </td><td class="right">     ETag: ""</td><td class="lineno" valign="top"></td></tr>
617      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
618      <tr><td><a name="diff0057" /></td></tr>
619      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">The ETag response-header field value, an entity tag,</span> provides <span class="delete">for</span> an</td><td> </td><td class="rblock">   <span class="insert">An entity-tag</span> provides an "opaque" cache <span class="insert">validator that allows for</span></td><td class="lineno" valign="top"></td></tr>
620      <tr><td class="lineno" valign="top"></td><td class="lblock">   "opaque" cache <span class="delete">validator.  This might allow</span> more reliable validation</td><td> </td><td class="rblock">   more reliable validation <span class="insert">than modification dates</span> in situations where</td><td class="lineno" valign="top"></td></tr>
621      <tr><td class="lineno" valign="top"></td><td class="lblock">   in situations where it is inconvenient to store modification dates,</td><td> </td><td class="rblock">   it is inconvenient to store modification dates, where the one-second</td><td class="lineno" valign="top"></td></tr>
622      <tr><td class="lineno" valign="top"></td><td class="lblock">   where the one-second resolution of HTTP date values is not</td><td> </td><td class="rblock">   resolution of HTTP date values is not sufficient, or where the origin</td><td class="lineno" valign="top"></td></tr>
623      <tr><td class="lineno" valign="top"></td><td class="lblock">   sufficient, or where the origin server wishes to avoid certain</td><td> </td><td class="rblock">   server wishes to avoid certain paradoxes that might arise from the</td><td class="lineno" valign="top"></td></tr>
624      <tr><td class="lineno" valign="top"></td><td class="lblock">   paradoxes that might arise from the use of modification dates.</td><td> </td><td class="rblock">   use of modification dates.</td><td class="lineno" valign="top"></td></tr>
625      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
626      <tr><td><a name="diff0058" /></td></tr>
627      <tr><td class="lineno" valign="top"></td><td class="lblock">   The principle behind entity<span class="delete"> </span>tags is that only the service author</td><td> </td><td class="rblock">   The principle behind entity<span class="insert">-</span>tags is that only the service author</td><td class="lineno" valign="top"></td></tr>
628      <tr><td class="lineno" valign="top"></td><td class="left">   knows the semantics of a resource well enough to select an</td><td> </td><td class="right">   knows the semantics of a resource well enough to select an</td><td class="lineno" valign="top"></td></tr>
629      <tr><td class="lineno" valign="top"></td><td class="left">   appropriate cache validation mechanism, and the specification of any</td><td> </td><td class="right">   appropriate cache validation mechanism, and the specification of any</td><td class="lineno" valign="top"></td></tr>
630      <tr><td class="lineno" valign="top"></td><td class="left">   validator comparison function more complex than byte-equality would</td><td> </td><td class="right">   validator comparison function more complex than byte-equality would</td><td class="lineno" valign="top"></td></tr>
631      <tr><td class="lineno" valign="top"></td><td class="left">   open up a can of worms.  Thus, comparisons of any other headers</td><td> </td><td class="right">   open up a can of worms.  Thus, comparisons of any other headers</td><td class="lineno" valign="top"></td></tr>
632      <tr><td class="lineno" valign="top"></td><td class="left">   (except Last-Modified, for compatibility with HTTP/1.0) are never</td><td> </td><td class="right">   (except Last-Modified, for compatibility with HTTP/1.0) are never</td><td class="lineno" valign="top"></td></tr>
633      <tr><td class="lineno" valign="top"></td><td class="left">   used for purposes of validating a cache entry.</td><td> </td><td class="right">   used for purposes of validating a cache entry.</td><td class="lineno" valign="top"></td></tr>
634      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
635      <tr><td class="lineno" valign="top"></td><td class="left">6.2.  If-Match</td><td> </td><td class="right">6.2.  If-Match</td><td class="lineno" valign="top"></td></tr>
636      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
637      <tr><td class="lineno" valign="top"></td><td class="left">   The "If-Match" request-header field is used to make a request method</td><td> </td><td class="right">   The "If-Match" request-header field is used to make a request method</td><td class="lineno" valign="top"></td></tr>
638      <tr><td><a name="diff0059" /></td></tr>
639      <tr><td class="lineno" valign="top"></td><td class="lblock">   conditional.  A client that has one or more <span class="delete">entities</span> previously</td><td> </td><td class="rblock">   conditional.  A client that has one or more <span class="insert">representations</span></td><td class="lineno" valign="top"></td></tr>
640      <tr><td class="lineno" valign="top"></td><td class="lblock">   obtained from the resource can verify that one of those <span class="delete">entities</span> is</td><td> </td><td class="rblock">   previously obtained from the resource can verify that one of those</td><td class="lineno" valign="top"></td></tr>
641      <tr><td class="lineno" valign="top"></td><td class="lblock">   current by including a list of their associated <span class="delete">entity tags</span> in the</td><td> </td><td class="rblock">   <span class="insert">representations</span> is current by including a list of their associated</td><td class="lineno" valign="top"></td></tr>
642      <tr><td class="lineno" valign="top"></td><td class="lblock">   If-Match header field.</td><td> </td><td class="rblock">   <span class="insert">entity-tags</span> in the If-Match header field.</td><td class="lineno" valign="top"></td></tr>
643      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
644      <tr><td class="lineno" valign="top"></td><td class="left">   This allows efficient updates of cached information with a minimum</td><td> </td><td class="right">   This allows efficient updates of cached information with a minimum</td><td class="lineno" valign="top"></td></tr>
645      <tr><td class="lineno" valign="top"></td><td class="left">   amount of transaction overhead.  It is also used when updating</td><td> </td><td class="right">   amount of transaction overhead.  It is also used when updating</td><td class="lineno" valign="top"></td></tr>
646      <tr><td class="lineno" valign="top"></td><td class="left">   resources, to prevent inadvertent modification of the wrong version</td><td> </td><td class="right">   resources, to prevent inadvertent modification of the wrong version</td><td class="lineno" valign="top"></td></tr>
647      <tr><td class="lineno" valign="top"></td><td class="left">   of a resource.  As a special case, the value "*" matches any current</td><td> </td><td class="right">   of a resource.  As a special case, the value "*" matches any current</td><td class="lineno" valign="top"></td></tr>
648      <tr><td><a name="diff0060" /></td></tr>
649      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">entity</span> of the resource.</td><td> </td><td class="rblock">   <span class="insert">representation</span> of the resource.</td><td class="lineno" valign="top"></td></tr>
650      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
651      <tr><td class="lineno" valign="top"></td><td class="left">     If-Match   = "If-Match" ":" OWS If-Match-v</td><td> </td><td class="right">     If-Match   = "If-Match" ":" OWS If-Match-v</td><td class="lineno" valign="top"></td></tr>
652      <tr><td class="lineno" valign="top"></td><td class="left">     If-Match-v = "*" / 1#entity-tag</td><td> </td><td class="right">     If-Match-v = "*" / 1#entity-tag</td><td class="lineno" valign="top"></td></tr>
653      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
654      <tr><td><a name="diff0061" /></td></tr>
655      <tr><td class="lineno" valign="top"></td><td class="lblock">   If any of the <span class="delete">entity tags</span> match the <span class="delete">entity tag</span> of the <span class="delete">entity</span> that</td><td> </td><td class="rblock">   If any of the <span class="insert">entity-tags</span> match the <span class="insert">entity-tag</span> of the <span class="insert">representation</span></td><td class="lineno" valign="top"></td></tr>
656      <tr><td class="lineno" valign="top"></td><td class="lblock">   would have been returned in the response to a similar GET request</td><td> </td><td class="rblock">   that would have been returned in the response to a similar GET</td><td class="lineno" valign="top"></td></tr>
657      <tr><td class="lineno" valign="top"></td><td class="lblock">   (without the If-Match header) on that resource, or if "*" is given</td><td> </td><td class="rblock">   request (without the If-Match header) on that resource, or if "*" is</td><td class="lineno" valign="top"></td></tr>
658      <tr><td class="lineno" valign="top"></td><td class="lblock">   and any current <span class="delete">entity</span> exists for that resource, then the server MAY</td><td> </td><td class="rblock">   given and any current <span class="insert">representation</span> exists for that resource, then</td><td class="lineno" valign="top"></td></tr>
659      <tr><td class="lineno" valign="top"></td><td class="lblock">   perform the requested method as if the If-Match header field did not</td><td> </td><td class="rblock">   the server MAY perform the requested method as if the If-Match header</td><td class="lineno" valign="top"></td></tr>
660      <tr><td class="lineno" valign="top"></td><td class="lblock">   exist.</td><td> </td><td class="rblock">   field did not exist.</td><td class="lineno" valign="top"></td></tr>
661      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
662      <tr><td><a name="diff0062" /></td></tr>
663      <tr><td class="lineno" valign="top"></td><td class="lblock">   If none of the <span class="delete">entity tags</span> match, or if "*" is given and no current</td><td> </td><td class="rblock">   If none of the <span class="insert">entity-tags</span> match, or if "*" is given and no current</td><td class="lineno" valign="top"></td></tr>
664      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">entity</span> exists, the server MUST NOT perform the requested method, and</td><td> </td><td class="rblock">   <span class="insert">representation</span> exists, the server MUST NOT perform the requested</td><td class="lineno" valign="top"></td></tr>
665      <tr><td class="lineno" valign="top"></td><td class="lblock">   MUST return a 412 (Precondition Failed) response.  This behavior is</td><td> </td><td class="rblock">   method, and MUST return a 412 (Precondition Failed) response.  This</td><td class="lineno" valign="top"></td></tr>
666      <tr><td class="lineno" valign="top"></td><td class="lblock">   most useful when the client wants to prevent an updating method, such</td><td> </td><td class="rblock">   behavior is most useful when the client wants to prevent an updating</td><td class="lineno" valign="top"></td></tr>
667      <tr><td class="lineno" valign="top"></td><td class="lblock">   as PUT, from modifying a resource that has changed since the client</td><td> </td><td class="rblock">   method, such as PUT, from modifying a resource that has changed since</td><td class="lineno" valign="top"></td></tr>
668      <tr><td class="lineno" valign="top"></td><td class="lblock">   last retrieved it.</td><td> </td><td class="rblock">   the client last retrieved it.</td><td class="lineno" valign="top"></td></tr>
669      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
670      <tr><td class="lineno" valign="top"></td><td class="left">   If the request would, without the If-Match header field, result in</td><td> </td><td class="right">   If the request would, without the If-Match header field, result in</td><td class="lineno" valign="top"></td></tr>
671      <tr><td><a name="diff0063" /></td></tr>
672      <tr><td class="lineno" valign="top"></td><td class="lblock">   anything other than a 2xx or 412 <span class="delete">status,</span> then the If-Match header</td><td> </td><td class="rblock">   anything other than a 2xx or 412 <span class="insert">status code,</span> then the If-Match</td><td class="lineno" valign="top"></td></tr>
673      <tr><td class="lineno" valign="top"></td><td class="lblock">   MUST be ignored.</td><td> </td><td class="rblock">   header MUST be ignored.</td><td class="lineno" valign="top"></td></tr>
674      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
675      <tr><td class="lineno" valign="top"></td><td class="left">   The meaning of "If-Match: *" is that the method SHOULD be performed</td><td> </td><td class="right">   The meaning of "If-Match: *" is that the method SHOULD be performed</td><td class="lineno" valign="top"></td></tr>
676      <tr><td class="lineno" valign="top"></td><td class="left">   if the representation selected by the origin server (or by a cache,</td><td> </td><td class="right">   if the representation selected by the origin server (or by a cache,</td><td class="lineno" valign="top"></td></tr>
677      <tr><td class="lineno" valign="top"></td><td class="left">   possibly using the Vary mechanism, see Section 3.5 of [Part6])</td><td> </td><td class="right">   possibly using the Vary mechanism, see Section 3.5 of [Part6])</td><td class="lineno" valign="top"></td></tr>
678      <tr><td class="lineno" valign="top"></td><td class="left">   exists, and MUST NOT be performed if the representation does not</td><td> </td><td class="right">   exists, and MUST NOT be performed if the representation does not</td><td class="lineno" valign="top"></td></tr>
679      <tr><td class="lineno" valign="top"></td><td class="left">   exist.</td><td> </td><td class="right">   exist.</td><td class="lineno" valign="top"></td></tr>
680      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
681      <tr><td class="lineno" valign="top"></td><td class="left">   A request intended to update a resource (e.g., a PUT) MAY include an</td><td> </td><td class="right">   A request intended to update a resource (e.g., a PUT) MAY include an</td><td class="lineno" valign="top"></td></tr>
682      <tr><td class="lineno" valign="top"></td><td class="left">   If-Match header field to signal that the request method MUST NOT be</td><td> </td><td class="right">   If-Match header field to signal that the request method MUST NOT be</td><td class="lineno" valign="top"></td></tr>
683      <tr><td><a name="diff0064" /></td></tr>
684      <tr><td class="lineno" valign="top"></td><td class="lblock">   applied if the <span class="delete">entity</span> corresponding to the If-Match value (a single</td><td> </td><td class="rblock">   applied if the <span class="insert">representation</span> corresponding to the If-Match value (a</td><td class="lineno" valign="top"></td></tr>
685      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">entity tag)</span> is no longer a representation of that resource.  This</td><td> </td><td class="rblock">   single <span class="insert">entity-tag)</span> is no longer a representation of that resource.</td><td class="lineno" valign="top"></td></tr>
686      <tr><td class="lineno" valign="top"></td><td class="lblock">   allows the user to indicate that they do not wish the request to be</td><td> </td><td class="rblock">   This allows the user to indicate that they do not wish the request to</td><td class="lineno" valign="top"></td></tr>
687      <tr><td class="lineno" valign="top"></td><td class="lblock">   successful if the resource has been changed without their knowledge.</td><td> </td><td class="rblock">   be successful if the resource has been changed without their</td><td class="lineno" valign="top"></td></tr>
688      <tr><td class="lineno" valign="top"></td><td class="lblock">   Examples:</td><td> </td><td class="rblock">   knowledge.  Examples:</td><td class="lineno" valign="top"></td></tr>
689      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
690      <tr><td class="lineno" valign="top"></td><td class="left">     If-Match: "xyzzy"</td><td> </td><td class="right">     If-Match: "xyzzy"</td><td class="lineno" valign="top"></td></tr>
691      <tr><td class="lineno" valign="top"></td><td class="left">     If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"</td><td> </td><td class="right">     If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"</td><td class="lineno" valign="top"></td></tr>
692      <tr><td class="lineno" valign="top"></td><td class="left">     If-Match: *</td><td> </td><td class="right">     If-Match: *</td><td class="lineno" valign="top"></td></tr>
693      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
694      <tr><td class="lineno" valign="top"></td><td class="left">   The result of a request having both an If-Match header field and</td><td> </td><td class="right">   The result of a request having both an If-Match header field and</td><td class="lineno" valign="top"></td></tr>
695      <tr><td class="lineno" valign="top"></td><td class="left">   either an If-None-Match or an If-Modified-Since header fields is</td><td> </td><td class="right">   either an If-None-Match or an If-Modified-Since header fields is</td><td class="lineno" valign="top"></td></tr>
696      <tr><td class="lineno" valign="top"></td><td class="left">   undefined by this specification.</td><td> </td><td class="right">   undefined by this specification.</td><td class="lineno" valign="top"></td></tr>
697      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
698      <tr><td class="lineno" valign="top"></td><td class="left">6.3.  If-Modified-Since</td><td> </td><td class="right">6.3.  If-Modified-Since</td><td class="lineno" valign="top"></td></tr>
699      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
700      <tr><td class="lineno" valign="top"></td><td class="left">   The "If-Modified-Since" request-header field is used to make a</td><td> </td><td class="right">   The "If-Modified-Since" request-header field is used to make a</td><td class="lineno" valign="top"></td></tr>
701      <tr><td><a name="diff0065" /></td></tr>
702      <tr><td class="lineno" valign="top"></td><td class="lblock">   request method <span class="delete">conditional:</span> if the <span class="delete">requested variant</span> has not been</td><td> </td><td class="rblock">   request method <span class="insert">conditional by date:</span> if the <span class="insert">representation that would</span></td><td class="lineno" valign="top"></td></tr>
703      <tr><td class="lineno" valign="top"></td><td class="lblock">   modified since the time specified in this field, <span class="delete">the server will</span> not</td><td> </td><td class="rblock"><span class="insert">   have been transferred in a 200 response to a GET request</span> has not been</td><td class="lineno" valign="top"></td></tr>
704      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">return an entity;</span> instead, <span class="delete">a 304 (Not Modified) response will be</span></td><td> </td><td class="rblock">   modified since the time specified in this field, <span class="insert">then do</span> not <span class="insert">perform</span></td><td class="lineno" valign="top"></td></tr>
705      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   returned.</span></td><td> </td><td class="rblock"><span class="insert">   the method;</span> instead, <span class="insert">respond as detailed below.</span></td><td class="lineno" valign="top"></td></tr>
706      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
707      <tr><td class="lineno" valign="top"></td><td class="left">     If-Modified-Since   = "If-Modified-Since" ":" OWS</td><td> </td><td class="right">     If-Modified-Since   = "If-Modified-Since" ":" OWS</td><td class="lineno" valign="top"></td></tr>
708      <tr><td class="lineno" valign="top"></td><td class="left">                           If-Modified-Since-v</td><td> </td><td class="right">                           If-Modified-Since-v</td><td class="lineno" valign="top"></td></tr>
709      <tr><td class="lineno" valign="top"></td><td class="left">     If-Modified-Since-v = HTTP-date</td><td> </td><td class="right">     If-Modified-Since-v = HTTP-date</td><td class="lineno" valign="top"></td></tr>
710      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
711      <tr><td class="lineno" valign="top"></td><td class="left">   An example of the field is:</td><td> </td><td class="right">   An example of the field is:</td><td class="lineno" valign="top"></td></tr>
712      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
713      <tr><td class="lineno" valign="top"></td><td class="left">     If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT</td><td> </td><td class="right">     If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT</td><td class="lineno" valign="top"></td></tr>
714      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
715      <tr><td class="lineno" valign="top"></td><td class="left">   A GET method with an If-Modified-Since header and no Range header</td><td> </td><td class="right">   A GET method with an If-Modified-Since header and no Range header</td><td class="lineno" valign="top"></td></tr>
716      <tr><td><a name="diff0066" /></td></tr>
717      <tr><td class="lineno" valign="top"></td><td class="lblock">   requests that the <span class="delete">identified entity</span> be transferred only if it has</td><td> </td><td class="rblock">   requests that the <span class="insert">representation</span> be transferred only if it has been</td><td class="lineno" valign="top"></td></tr>
718      <tr><td class="lineno" valign="top"></td><td class="lblock">   been modified since the date given by the If-Modified-Since header.</td><td> </td><td class="rblock">   modified since the date given by the If-Modified-Since header.  The</td><td class="lineno" valign="top"></td></tr>
719      <tr><td class="lineno" valign="top"></td><td class="lblock">   The algorithm for determining this includes the following cases:</td><td> </td><td class="rblock">   algorithm for determining this includes the following cases:</td><td class="lineno" valign="top"></td></tr>
720      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
721      <tr><td class="lineno" valign="top"></td><td class="left">   1.  If the request would normally result in anything other than a 200</td><td> </td><td class="right">   1.  If the request would normally result in anything other than a 200</td><td class="lineno" valign="top"></td></tr>
722      <tr><td><a name="diff0067" /></td></tr>
723      <tr><td class="lineno" valign="top"></td><td class="lblock">       (OK) <span class="delete">status,</span> or if the passed If-Modified-Since date is invalid,</td><td> </td><td class="rblock">       (OK) <span class="insert">status code,</span> or if the passed If-Modified-Since date is</td><td class="lineno" valign="top"></td></tr>
724      <tr><td class="lineno" valign="top"></td><td class="lblock">       the response is exactly the same as for a normal GET.  A date</td><td> </td><td class="rblock">       invalid, the response is exactly the same as for a normal GET.  A</td><td class="lineno" valign="top"></td></tr>
725      <tr><td class="lineno" valign="top"></td><td class="lblock">       which is later than the server's current time is invalid.</td><td> </td><td class="rblock">       date which is later than the server's current time is invalid.</td><td class="lineno" valign="top"></td></tr>
726      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
727      <tr><td><a name="diff0068" /></td></tr>
728      <tr><td class="lineno" valign="top"></td><td class="lblock">   2.  If the <span class="delete">variant</span> has been modified since the <span class="delete">If-Modified-Since</span></td><td> </td><td class="rblock">   2.  If the <span class="insert">representation</span> has been modified since the <span class="insert">If-Modified-</span></td><td class="lineno" valign="top"></td></tr>
729      <tr><td class="lineno" valign="top"></td><td class="lblock">       date, the response is exactly the same as for a normal GET.</td><td> </td><td class="rblock"><span class="insert">       Since</span> date, the response is exactly the same as for a normal GET.</td><td class="lineno" valign="top"></td></tr>
730      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
731      <tr><td><a name="diff0069" /></td></tr>
732      <tr><td class="lineno" valign="top"></td><td class="lblock">   3.  If the <span class="delete">variant</span> has not been modified since a valid <span class="delete">If-Modified-</span></td><td> </td><td class="rblock">   3.  If the <span class="insert">representation</span> has not been modified since a valid <span class="insert">If-</span></td><td class="lineno" valign="top"></td></tr>
733      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">       Since</span> date, the server SHOULD return a 304 (Not Modified)</td><td> </td><td class="rblock"><span class="insert">       Modified-Since</span> date, the server SHOULD return a 304 (Not</td><td class="lineno" valign="top"></td></tr>
734      <tr><td class="lineno" valign="top"></td><td class="lblock">       response.</td><td> </td><