Changeset 224 for draft-ietf-httpbis/diffs
- Timestamp:
- 24/02/08 11:25:13 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/diffs/draft-ietf-httpbis-p6-cache-02-from-1.diff.html
r222 r224 2 2 <!-- Generated by rfcdiff 1.34: rfcdiff --> 3 3 <!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > --> 4 <!-- System: Darwin kiwi.local 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power Macintosh powerpc-->5 <!-- Using awk: /usr/ local/bin/gawk: GNU Awk 3.1.6-->6 <!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 2.8. 1-->7 <!-- Using wdiff: /usr/local/bin/wdiff: wdiff (Free wdiff) 0.5g-->4 <!-- System: CYGWIN_NT-5.1 snowball 1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin --> 5 <!-- Using awk: /usr/bin/gawk: GNU Awk 3.1.5 --> 6 <!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 2.8.7 --> 7 <!-- Using wdiff: : --> 8 8 <html> 9 9 <head> … … 114 114 <tr><td class="lineno" valign="top"></td><td class="left"> 1.3. Requirements . . . . . . . . . . . . . . . . . . . . . . . 7</td><td> </td><td class="right"> 1.3. Requirements . . . . . . . . . . . . . . . . . . . . . . . 7</td><td class="lineno" valign="top"></td></tr> 115 115 <tr><td><a name="diff0005" /></td></tr> 116 <tr><td class="lineno" valign="top"></td><td class="lblock"> 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 8</td><td> </td><td class="rblock"> 2. <span class="insert">Notational Conventions and Generic Grammar . . . . . . . . . . 8</span></td><td class="lineno" valign="top"></td></tr>117 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.1.</span> Cache Correctness . . . . . . . . . . . . . . . . . . . . 8</td><td> </td><td class="rblock"><span class="insert"> 3.</span> Overview . . . . . . .. . . . . . . . . . . . . . . . . . . . 8</td><td class="lineno" valign="top"></td></tr>118 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.2. </span> Warnings . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">8</span></td><td> </td><td class="rblock"> <span class="insert">3.1.</span> Cache Correctness. . . . . . . . . . . . . . . . . . . . 8</td><td class="lineno" valign="top"></td></tr>119 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 2.3.</span> Cache-control Mechanisms . . . . . . . . . . . . . . . . . 10</td><td> </td><td class="rblock"> <span class="insert">3.2.</span> Warnings . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>120 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.4. </span> Explicit User Agent Warnings . . . . . . . . . . . . . . . 10</td><td> </td><td class="rblock"><span class="insert"> 3.3.</span> Cache-control Mechanisms . .. . . . . . . . . . . . . . . 10</td><td class="lineno" valign="top"></td></tr>121 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.5. </span> Exceptions to the Rules and Warnings . . . . . . . . . . . 11</td><td> </td><td class="rblock"> <span class="insert">3.4.</span> Explicit User Agent Warnings . . . . . . . . . . . . . . . 10</td><td class="lineno" valign="top"></td></tr>122 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.6. </span> Client-controlled Behavior . . . . . . . . . . . . . . . . 11</td><td> </td><td class="rblock"> <span class="insert">3.5.</span> Exceptions to the Rules and Warnings. . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>123 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3. </span> Expiration Model . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">11</span></td><td> </td><td class="rblock"> <span class="insert">3.6.</span> Client-controlled Behavior. . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>124 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 3.1.</span> Server-Specified Expiration . . . . . . . . . . . . . . . <span class="delete">11</span></td><td> </td><td class="rblock"> <span class="insert">4.</span> Expiration Model . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">12</span></td><td class="lineno" valign="top"></td></tr>125 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 3.2.</span> Heuristic Expiration . . . . . . . . . . . . . . . . . . . <span class="delete">12</span></td><td> </td><td class="rblock"><span class="insert"> 4.1.</span> Server-Specified Expiration . . . . . . . . . . . . . . . <span class="insert">12</span></td><td class="lineno" valign="top"></td></tr>126 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 3.3.</span> Age Calculations . . . . . . . . . . . . . . . . . . . . . 13</td><td> </td><td class="rblock"><span class="insert"> 4.2.</span> Heuristic Expiration . . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno" valign="top"></td></tr>127 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.4. </span> Expiration Calculations . . . . . . . . . . . . . . . . . 15</td><td> </td><td class="rblock"><span class="insert"> 4.3.</span> Age Calculations . . . . . . . . . . . . . . . . . . . . . 13</td><td class="lineno" valign="top"></td></tr>128 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.5. </span> Disambiguating Expiration Values . . . . . . . . . . . . . 16</td><td> </td><td class="rblock"> <span class="insert">4.4.</span> Expiration Calculations . . . . . . . . . . . . . . . . . 15</td><td class="lineno" valign="top"></td></tr>129 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6. </span> Disambiguating Multiple Responses . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock"> <span class="insert">4.5.</span> Disambiguating Expiration Values .. . . . . . . . . . . . 16</td><td class="lineno" valign="top"></td></tr>130 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 4.</span> Validation Model . . . . . . . . . . . . . . . . . . . . . . . 17</td><td> </td><td class="rblock"> <span class="insert">4.6.</span> Disambiguating Multiple Responses . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>131 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">4.1. Last-Modified Dates . . . . . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"><span class="insert"> 5.</span> Validation Model . . . . . . . . . . . . . . . . . . . . . . . 17</td><td class="lineno" valign="top"></td></tr>132 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 4.2. Entity Tag Cache Validators . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"> <span class="insert">6.</span> Response Cacheability . . . . .. . . . . . . . . . . . . . . 18</td><td class="lineno" valign="top"></td></tr>133 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 4.3. Non-validating Conditionals . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"> <span class="insert">7.</span> Constructing Responses From Caches . . . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr>134 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 5.</span> Response Cacheability . . . . . . . . . . . . . . . . . . . . 18</td><td> </td><td class="rblock"> <span class="insert">7.1.</span> End-to-end and Hop-by-hop Headers . . . . . . . . . . . . 19</td><td class="lineno" valign="top"></td></tr>135 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">6. </span> Constructing Responses From Caches . . . . . . . . . . . . . . 19</td><td> </td><td class="rblock"> <span class="insert">7.2.</span> Non-modifiable Headers . . . . . . . . . . . . . . . . . . 20</td><td class="lineno" valign="top"></td></tr>136 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">6.1. </span> End-to-end and Hop-by-hop Headers . . . . . . . . . . . . 19</td><td> </td><td class="rblock"> <span class="insert">7.3.</span> Combining Headers . . . . . . . . . . . . . . . . . . . . 21</td><td class="lineno" valign="top"></td></tr>137 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">6.2.</span> Non-modifiable Headers . . . . . . . . . . . . . . . . . . 20</td><td> </td><td class="rblock"> <span class="insert">8.</span> Caching Negotiated Responses . . . . . . . . . . . . . . . . . 22</td><td class="lineno" valign="top"></td></tr>138 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">6.3.</span> Combining Headers . . . . . . . . . . . . . . . . . . . . 21</td><td> </td><td class="rblock"> <span class="insert">9.</span> Shared and Non-Shared Caches . . . . . . . . . . . . . . . . . <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr>139 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">7. </span> Caching Negotiated Responses . . . . . . . . . . . . . . . . . 22</td><td> </td><td class="rblock"><span class="insert"> 10.</span> Errors or Incomplete Response Cache Behavior . . . . . . . . . 24</td><td class="lineno" valign="top"></td></tr>140 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">8. </span> Shared and Non-Shared Caches . . . . . . . . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock"> <span class="insert">11.</span> Side Effects of GET and HEAD. . . . . . . . . . . . . . . . . 24</td><td class="lineno" valign="top"></td></tr>141 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 9.</span> Errors or Incomplete Response Cache Behavior . . . . . . . . . 24</td><td> </td><td class="rblock"> <span class="insert">12.</span> Invalidation After Updates or Deletions . . . . . . . . . . . <span class="insert">24</span></td><td class="lineno" valign="top"></td></tr>142 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">10.</span> Side Effects of GET and HEAD . . . . . . . . . . . . . . . . . 24</td><td> </td><td class="rblock"><span class="insert"> 13.</span> Write-Through Mandatory . . . . . . . . . . . . . . . . . . . <span class="insert">25</span></td><td class="lineno" valign="top"></td></tr>143 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">11.</span> Invalidation After Updates or Deletions . . . . . . . . . . . <span class="delete">25</span></td><td> </td><td class="rblock"><span class="insert"> 14.</span> Cache Replacement . . . . . . . . . . . . . . . . . . . . . . 26</td><td class="lineno" valign="top"></td></tr>144 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 12.</span> Write-Through Mandatory . . . . . . . . . . . . . . . . . . . <span class="delete">26</span></td><td> </td><td class="rblock"> <span class="insert">15.</span> History Lists . . . . .. . . . . . . . . . . . . . . . . . . 26</td><td class="lineno" valign="top"></td></tr>145 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 13.</span> Cache Replacement . . . . . . . . . . . . . . . . . . . . . . 26</td><td> </td><td class="rblock"> <span class="insert">16.</span> Header Field Definitions . . . . . . . . . . . . . . . . . . . 27</td><td class="lineno" valign="top"></td></tr>146 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">14. </span> History Lists . . . . . . . . . . . . . . . . . . . . . . . . 26</td><td> </td><td class="rblock"> <span class="insert">16.1.</span> Age . . . . . . . . . . . . . . . . . . . . . . . . . . . 27</td><td class="lineno" valign="top"></td></tr>147 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15. </span> Header Field Definitions . . . . . . . . . . . . . . . . . . . 27</td><td> </td><td class="rblock"> <span class="insert">16.2.</span> Cache-Control . . . . . . . . . . . . . . . . . . . . . . <span class="insert">27</span></td><td class="lineno" valign="top"></td></tr>148 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15.1. </span> Age . . . . . . . . . . . . . . . . . . . . . . . . . . . 27</td><td> </td><td class="rblock"><span class="insert"> 16.2.1.</span> What is Cacheable . . . . . . . . . . . . . . . . . . <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr>149 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15.2. </span> Cache-Control . . . . . . . . . . . . . . . . . . . . . . <span class="delete">28</span></td><td> </td><td class="rblock"><span class="insert"> 16.2.2.</span> What May be Stored by Caches . . . . . . . . . . . . <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>150 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.2.1.</span> What is Cacheable . . . . . . . . . . . . . . . . . . <span class="delete">30</span></td><td> </td><td class="rblock"><span class="insert"> 16.2.3.</span> Modifications of the Basic Expiration Mechanism . . . 31</td><td class="lineno" valign="top"></td></tr>151 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.2.2.</span> What May be Stored by Caches . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock"> <span class="insert">16.2.4.</span> Cache Revalidation and Reload Controls . . . . . . . 33</td><td class="lineno" valign="top"></td></tr>152 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.2.3.</span> Modifications of the Basic Expiration Mechanism . . . 31</td><td> </td><td class="rblock"> <span class="insert">16.2.5.</span> No-Transform Directive . . . . . . . . . . . . . . . <span class="insert">35</span></td><td class="lineno" valign="top"></td></tr>153 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15.2.4.</span> Cache Revalidation and Reload Controls . . . . . . . 33</td><td> </td><td class="rblock"><span class="insert"> 16.2.6.</span> Cache Control Extensions . . . . . . . . . . . . . . <span class="insert">36</span></td><td class="lineno" valign="top"></td></tr>154 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15.2.5.</span> No-Transform Directive . . . . . . . . . . . . . . . <span class="delete">36</span></td><td> </td><td class="rblock"><span class="insert"> 16.3.</span> Expires . . . . . . . . . . . . . . . . . . . . . . . . . 37</td><td class="lineno" valign="top"></td></tr>155 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.2.6.</span> Cache Control Extensions . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock"> <span class="insert">16.4.</span> Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . 38</td><td class="lineno" valign="top"></td></tr>156 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.3.</span> Expires . . . . . . . . . . . . . . . . . . . . . . . . . 37</td><td> </td><td class="rblock"> <span class="insert">16.5.</span> Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>157 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15.4.</span> Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . 38</td><td> </td><td class="rblock"><span class="insert"> 16.6.</span> Warning . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>158 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15.5.</span> Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">39</span></td><td> </td><td class="rblock"><span class="insert"> 17.</span> IANA Considerations . . . . . . . . . . . . . . . . . . . . . <span class="insert">42</span></td><td class="lineno" valign="top"></td></tr>159 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.6.</span> Warning . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">40</span></td><td> </td><td class="rblock"><span class="insert"> 18.</span> Security Considerations . . . . . . . . . . . . . . . . . . . <span class="insert">42</span></td><td class="lineno" valign="top"></td></tr>160 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 16.</span> IANA Considerations . . . . . . . . . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock"><span class="insert"> 19.</span> Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">42</span></td><td class="lineno" valign="top"></td></tr>161 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 17.</span> Security Considerations . . . . . . . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock"><span class="insert"> 20.</span> References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">42</span></td><td class="lineno" valign="top"></td></tr>162 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 18.</span> Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock"><span class="insert"> 20.1.</span> Normative References . . . . . . . . . . . . . . . . . . . <span class="insert">42</span></td><td class="lineno" valign="top"></td></tr>163 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 19.</span> References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock"><span class="insert"> 20.2.</span> Informative References . . . . . . . . . . . . . . . . . . 44</td><td class="lineno" valign="top"></td></tr>164 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 19.1. </span> Normative References . . . . . . . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>165 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 19.2. </span> Informative References . . . . . . . . . . . . . . . . . . 44</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>116 <tr><td class="lineno" valign="top"></td><td class="lblock"> 2. <span class="delete">Overview . . . . . . . . . . . . . . . . .</span> . . . . . . . . . . 8</td><td> </td><td class="rblock"> 2. <span class="insert">Notational Conventions and Generic Grammar</span> . . . . . . . . . . 8</td><td class="lineno" valign="top"></td></tr> 117 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 2.1. Cache Correctness </span> . . . . . . . . . . . . . . . . . . . . 8</td><td> </td><td class="rblock"> <span class="insert">3. Overview . . . . . . .</span> . . . . . . . . . . . . . . . . . . . . 8</td><td class="lineno" valign="top"></td></tr> 118 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.2. Warnings . . . . .</span> . . . . . . . . . . . . . . . . . . . . 8</td><td> </td><td class="rblock"> <span class="insert">3.1. Cache Correctness </span> . . . . . . . . . . . . . . . . . . . . 8</td><td class="lineno" valign="top"></td></tr> 119 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.3. Cache-control Mechanisms . . . . . . . . . . . . . . . . . 10</span></td><td> </td><td class="rblock"> <span class="insert">3.2. Warnings . . . . . . . . . . . . . . . . . . . . . . . . . 9</span></td><td class="lineno" valign="top"></td></tr> 120 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.4. Explicit User Agent Warnings</span> . . . . . . . . . . . . . . . 10</td><td> </td><td class="rblock"> <span class="insert">3.3. Cache-control Mechanisms . .</span> . . . . . . . . . . . . . . . 10</td><td class="lineno" valign="top"></td></tr> 121 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.5. Exceptions to the Rules and Warnings . . . . . . . . . . . 11</span></td><td> </td><td class="rblock"> <span class="insert">3.4. Explicit User Agent Warnings . . . . . . . . . . . . . . . 10</span></td><td class="lineno" valign="top"></td></tr> 122 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">2.6. Client-controlled Behavior . . . . .</span> . . . . . . . . . . . 11</td><td> </td><td class="rblock"> <span class="insert">3.5. Exceptions to the Rules and Warnings</span> . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr> 123 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3. Expiration Model . . . . . . .</span> . . . . . . . . . . . . . . . . 11</td><td> </td><td class="rblock"> <span class="insert"> 3.6. Client-controlled Behavior</span> . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr> 124 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 3.1. Server-Specified Expiration . . . . . . . . . . . . . . . 11</span></td><td> </td><td class="rblock"> <span class="insert">4. Expiration Model . . . . . . . . . . . . . . . . . . . . . . . 12</span></td><td class="lineno" valign="top"></td></tr> 125 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.2. Heuristic Expiration . . . .</span> . . . . . . . . . . . . . . . 12</td><td> </td><td class="rblock"> <span class="insert">4.1. Server-Specified Expiration </span> . . . . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr> 126 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.3. Age Calculations . .</span> . . . . . . . . . . . . . . . . . . . 13</td><td> </td><td class="rblock"> <span class="insert">4.2. Heuristic Expiration</span> . . . . . . . . . . . . . . . . . . . 13</td><td class="lineno" valign="top"></td></tr> 127 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.4. Expiration Calculations . . . . . . . . . . . . . . . . . 15</span></td><td> </td><td class="rblock"> <span class="insert">4.3. Age Calculations . . . . . . . . . . . . . . . . . . . . . 13</span></td><td class="lineno" valign="top"></td></tr> 128 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.5. Disambiguating Expiration Values . . . . . . . . . . . . . 16</span></td><td> </td><td class="rblock"> <span class="insert">4.4. Expiration Calculations . . . . . . . . . . . . . . . . . 15</span></td><td class="lineno" valign="top"></td></tr> 129 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">3.6. Disambiguating Multiple Responses </span> . . . . . . . . . . . . 16</td><td> </td><td class="rblock"> <span class="insert">4.5. Disambiguating Expiration Values .</span> . . . . . . . . . . . . 16</td><td class="lineno" valign="top"></td></tr> 130 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">4. Validation Model . . . . . . . . . . .</span> . . . . . . . . . . . . 17</td><td> </td><td class="rblock"> <span class="insert"> 4.6. Disambiguating Multiple Responses </span> . . . . . . . . . . . . 17</td><td class="lineno" valign="top"></td></tr> 131 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 4.1. Last-Modified Dates . . . . . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"> <span class="insert">5. Validation Model . . . . . . . . . . . . . . . . . . . . . . . 17</span></td><td class="lineno" valign="top"></td></tr> 132 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 4.2. Entity Tag Cache Validators </span> . . . . . . . . . . . . . . . 18</td><td> </td><td class="rblock"> <span class="insert">6. Response Cacheability . . . . .</span> . . . . . . . . . . . . . . . 18</td><td class="lineno" valign="top"></td></tr> 133 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 4.3. Non-validating Conditionals . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"> <span class="insert">7. Constructing Responses From Caches . . . . . . . . . . . . . . 19</span></td><td class="lineno" valign="top"></td></tr> 134 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">5. Response Cacheability . . . . . . . . . . . . . . . . . . . . 18</span></td><td> </td><td class="rblock"> <span class="insert"> 7.1. End-to-end and Hop-by-hop Headers . . . . . . . . . . . . 19</span></td><td class="lineno" valign="top"></td></tr> 135 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">6. Constructing Responses From Caches . . . . . . . . . . . . . . 19</span></td><td> </td><td class="rblock"> <span class="insert"> 7.2. Non-modifiable Headers . . . . . . . . . . . . . . . . . . 20</span></td><td class="lineno" valign="top"></td></tr> 136 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">6.1. End-to-end and Hop-by-hop Headers . . . . . . . . . . . . 19</span></td><td> </td><td class="rblock"> <span class="insert">7.3. Combining Headers . . . . . . . . . . . . . . . . . . . . 21</span></td><td class="lineno" valign="top"></td></tr> 137 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 6.2. Non-modifiable Headers . . . . . . . . . . . . . . . . . . 20</span></td><td> </td><td class="rblock"> <span class="insert">8. Caching Negotiated Responses . . . . . . . . . . . . . . . . . 22</span></td><td class="lineno" valign="top"></td></tr> 138 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 6.3. Combining Headers . . . . . . . . . . . . . . . . . . . . 21</span></td><td> </td><td class="rblock"> <span class="insert">9. Shared and Non-Shared Caches . . . . . . . . . . . . . . . . . 23</span></td><td class="lineno" valign="top"></td></tr> 139 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">7. Caching Negotiated Responses . . . . . . . . . . . . . . . . . 22</span></td><td> </td><td class="rblock"> <span class="insert">10. Errors or Incomplete Response Cache Behavior . . . . . . . . . 24</span></td><td class="lineno" valign="top"></td></tr> 140 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">8. Shared and Non-Shared Caches</span> . . . . . . . . . . . . . . . . . 24</td><td> </td><td class="rblock"> <span class="insert">11. Side Effects of GET and HEAD</span> . . . . . . . . . . . . . . . . . 24</td><td class="lineno" valign="top"></td></tr> 141 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">9. Errors or Incomplete Response Cache Behavior</span> . . . . . . . . . 24</td><td> </td><td class="rblock"> <span class="insert">12. Invalidation After Updates or Deletions . .</span> . . . . . . . . . 24</td><td class="lineno" valign="top"></td></tr> 142 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">0. Side Effects of GET and HEAD . . . . . . . . . . . . . . . . . 24</span></td><td> </td><td class="rblock"> 1<span class="insert">3. Write-Through Mandatory . . . . . . . . . . . . . . . . . . . 25</span></td><td class="lineno" valign="top"></td></tr> 143 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">1. Invalidation After Updates or Deletions . . . . . . . . . . . 25</span></td><td> </td><td class="rblock"> 1<span class="insert">4. Cache Replacement . . . . . . . . . . . . . . . . . . . . . . 26</span></td><td class="lineno" valign="top"></td></tr> 144 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">2. Write-Through Mandatory </span> . . . . . . . . . . . . . . . . . . . 26</td><td> </td><td class="rblock"> 1<span class="insert">5. History Lists . . . . .</span> . . . . . . . . . . . . . . . . . . . 26</td><td class="lineno" valign="top"></td></tr> 145 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">3. Cache Replacement . . . . . . . . . . . . . . . . . . . . . . 26</span></td><td> </td><td class="rblock"> 1<span class="insert">6. Header Field Definitions . . . . . . . . . . . . . . . . . . . 27</span></td><td class="lineno" valign="top"></td></tr> 146 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">14. History Lists . . . . . . . . . . . . . . . . . . . . . . . . 26</span></td><td> </td><td class="rblock"> <span class="insert"> 16.1. Age . . . . . . . . . . . . . . . . . . . . . . . . . . . 27</span></td><td class="lineno" valign="top"></td></tr> 147 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15. Header Field Definitions</span> . . . . . . . . . . . . . . . . . . . 27</td><td> </td><td class="rblock"> <span class="insert"> 16.2. Cache-Control . . .</span> . . . . . . . . . . . . . . . . . . . 27</td><td class="lineno" valign="top"></td></tr> 148 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15.1. Age . . . . . . . . . . . . . . . . . . . . . . . . . . . 27</span></td><td> </td><td class="rblock"> <span class="insert"> 16.2.1. What is Cacheable . . . . . . . . . . . . . . . . . . 29</span></td><td class="lineno" valign="top"></td></tr> 149 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">15.2. Cache-Control . . . . . . . . . . . . . . . . . . . . . . 28</span></td><td> </td><td class="rblock"> <span class="insert"> 16.2.2. What May be Stored by Caches . . . . . . . . . . . . 30</span></td><td class="lineno" valign="top"></td></tr> 150 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">5.2.1. What is Cacheable . . . . . . . . . . . . . . . . . . 30</span></td><td> </td><td class="rblock"> 1<span class="insert">6.2.3. Modifications of the Basic Expiration Mechanism . . . 31</span></td><td class="lineno" valign="top"></td></tr> 151 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">5.2.2. What May be Stored by Caches . . . . . . . . . . . . 31</span></td><td> </td><td class="rblock"> 1<span class="insert">6.2.4. Cache Revalidation and Reload Controls . . . . . . . 33</span></td><td class="lineno" valign="top"></td></tr> 152 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">5.2.3. Modifications of the Basic Expiration Mechanism . . . 31</span></td><td> </td><td class="rblock"> 1<span class="insert">6.2.5. No-Transform Directive . . . . . . . . . . . . . . . 35</span></td><td class="lineno" valign="top"></td></tr> 153 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">5.2.4. Cache Revalidation and Reload Controls . . . . . . . 33</span></td><td> </td><td class="rblock"> 1<span class="insert">6.2.6. Cache Control Extensions . . . . . . . . . . . . . . 36</span></td><td class="lineno" valign="top"></td></tr> 154 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.2.5. No-Transform Directive . . . . . . . . . . . . . . . 36</span></td><td> </td><td class="rblock"> <span class="insert">16.3. Expires . . . . . . . . . . . . . . . . . . . . . . . . . 37</span></td><td class="lineno" valign="top"></td></tr> 155 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.2.6. Cache Control Extensions . . . . . . . . . . . . . . 37</span></td><td> </td><td class="rblock"> <span class="insert">16.4. Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . 38</span></td><td class="lineno" valign="top"></td></tr> 156 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">5.3. Expires . . . . . . . . . . . . . . . . . . . . . . . . . 37</span></td><td> </td><td class="rblock"> 1<span class="insert">6.5. Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . 38</span></td><td class="lineno" valign="top"></td></tr> 157 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">5.4. Pragma . . . . . . . . . . . . . . . . . . . . . . . . . . 38</span></td><td> </td><td class="rblock"> 1<span class="insert">6.6. Warning . . . . . . . . . . . . . . . . . . . . . . . . . 39</span></td><td class="lineno" valign="top"></td></tr> 158 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.5. Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . 39</span></td><td> </td><td class="rblock"> <span class="insert">17. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42</span></td><td class="lineno" valign="top"></td></tr> 159 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> 15.6. Warning . . . . . . . . . . . . . . . . . . . . . . . . . 40</span></td><td> </td><td class="rblock"> <span class="insert">18. Security Considerations . . . . . . . . . . . . . . . . . . . 42</span></td><td class="lineno" valign="top"></td></tr> 160 <tr><td class="lineno" valign="top"></td><td class="lblock"> 1<span class="delete">6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43</span></td><td> </td><td class="rblock"> 1<span class="insert">9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 42</span></td><td class="lineno" valign="top"></td></tr> 161 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">17. Security Considerations . . . . . . . . . . . . . . . . . . . 43</span></td><td> </td><td class="rblock"> <span class="insert">20. References . . . . . . . . . . . . . . . . . . . . . . . . . . 42</span></td><td class="lineno" valign="top"></td></tr> 162 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">18. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 43</span></td><td> </td><td class="rblock"> <span class="insert"> 20.1. Normative References . . . . . . . . . . . . . . . . . . . 42</span></td><td class="lineno" valign="top"></td></tr> 163 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">19. References . . . . . . . . . . . . . . . . . . . . . . . . . . 43</span></td><td> </td><td class="rblock"> <span class="insert"> 20.2. Informative References . . . . . . . . . . . . . . . . . . 44</span></td><td class="lineno" valign="top"></td></tr> 164 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 19.1. Normative References . . . . . . . . . . . . . . . . . . . 43</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 165 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> 19.2. Informative References . . . . . . . . . . . . . . . . . . 44</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 166 166 <tr><td class="lineno" valign="top"></td><td class="left"> Appendix A. Compatibility with Previous Versions . . . . . . . . 44</td><td> </td><td class="right"> Appendix A. Compatibility with Previous Versions . . . . . . . . 44</td><td class="lineno" valign="top"></td></tr> 167 167 <tr><td class="lineno" valign="top"></td><td class="left"> A.1. Changes from RFC 2068 . . . . . . . . . . . . . . . . . . 44</td><td> </td><td class="right"> A.1. Changes from RFC 2068 . . . . . . . . . . . . . . . . . . 44</td><td class="lineno" valign="top"></td></tr> … … 203 203 <tr><td><a name="diff0010" /></td></tr> 204 204 <tr><td class="lineno" valign="top"></td><td class="lblock"> performance. The goal of caching in HTTP/1.1 is to <span class="delete">eliminate the</span></td><td> </td><td class="rblock"> performance. The goal of caching in HTTP/1.1 is to <span class="insert">reuse a prior</span></td><td class="lineno" valign="top"></td></tr> 205 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> need</span> to <span class="delete">send requests in many</span> cases, <span class="delete">and to eliminate</span> the <span class="delete">need to</span></td><td> </td><td class="rblock"><span class="insert"> response message</span> to <span class="insert">satisfy a current request. In some</span> cases, the</td><td class="lineno" valign="top"></td></tr>206 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> send full responses in many other cases. The former reduces</span> the</td><td> </td><td class="rblock"> <span class="insert">existing response can be reused without</span> the <span class="insert">need</span> for <span class="insert">a network</span></td><td class="lineno" valign="top"></td></tr>207 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">number of network round-trips required </span> for <span class="delete">many operations;</span> we use an</td><td> </td><td class="rblock"><span class="insert"> request, reducing latency and network round-trips;</span>we use an</td><td class="lineno" valign="top"></td></tr>205 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">need to send requests in many cases, and to eliminate the need to</span></td><td> </td><td class="rblock"> <span class="insert">response message to satisfy a current request. In some cases, the</span></td><td class="lineno" valign="top"></td></tr> 206 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">send full responses in many other cases. The former reduces the</span></td><td> </td><td class="rblock"> <span class="insert">existing response can be reused without the need for a network</span></td><td class="lineno" valign="top"></td></tr> 207 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">number of network round-trips required for many operation</span>s; we use an</td><td> </td><td class="rblock"> <span class="insert">request, reducing latency and network round-trip</span>s; we use an</td><td class="lineno" valign="top"></td></tr> 208 208 <tr><td class="lineno" valign="top"></td><td class="lblock"> "expiration" mechanism for this purpose (see Section <span class="delete">3). The latter</span></td><td> </td><td class="rblock"> "expiration" mechanism for this purpose (see Section <span class="insert">4). Even when a</span></td><td class="lineno" valign="top"></td></tr> 209 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> reduces</span> network bandwidth <span class="delete">requirements;</span> we use a "validation"</td><td> </td><td class="rblock"><span class="insert">new request is required, it is often possible to reuse all or parts</span></td><td class="lineno" valign="top"></td></tr>210 <tr><td class="lineno" valign="top"></td><td class="lblock"> mechanism for this purpose (see Section <span class="delete">4).</span></td><td> </td><td class="rblock"><span class="insert">of the payload of a prior response to satisfy the request, thereby</span></td><td class="lineno" valign="top"></td></tr>211 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> reducing </span> network bandwidth <span class="insert">usage;</span> we use a "validation" mechanism for</td><td class="lineno" valign="top"></td></tr>212 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> this purpose (see Section <span class="insert">5).</span></td><td class="lineno" valign="top"></td></tr>209 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">reduces network bandwidth requirements; we use a "validation"</span></td><td> </td><td class="rblock"> <span class="insert">new request is required, it is often possible to reuse all or parts</span></td><td class="lineno" valign="top"></td></tr> 210 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">mechanism for this purpose (see Section 4).</span></td><td> </td><td class="rblock"> <span class="insert">of the payload of a prior response to satisfy the request, thereby</span></td><td class="lineno" valign="top"></td></tr> 211 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> reducing network bandwidth usage; we use a "validation" mechanism for</span></td><td class="lineno" valign="top"></td></tr> 212 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> this purpose (see Section 5).</span></td><td class="lineno" valign="top"></td></tr> 213 213 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 214 214 <tr><td class="lineno" valign="top"></td><td class="left"> A cache behaves in a "semantically transparent" manner, with respect</td><td> </td><td class="right"> A cache behaves in a "semantically transparent" manner, with respect</td><td class="lineno" valign="top"></td></tr> … … 217 217 <tr><td class="lineno" valign="top"></td><td class="left"> cache is semantically transparent, the client receives exactly the</td><td> </td><td class="right"> cache is semantically transparent, the client receives exactly the</td><td class="lineno" valign="top"></td></tr> 218 218 <tr><td><a name="diff0011" /></td></tr> 219 <tr><td class="lineno" valign="top"></td><td class="lblock"> same response <span class="delete">(except for hop-by-hop headers) </span> that it would have</td><td> </td><td class="rblock"> same response <span class="insert">status and payload</span> that it would have received had its</td><td class="lineno" valign="top"></td></tr>220 <tr><td class="lineno" valign="top"></td><td class="lblock"> re ceived had its request been handled directly by the origin server.</td><td> </td><td class="rblock"> request been handled directly by the origin server.</td><td class="lineno" valign="top"></td></tr>219 <tr><td class="lineno" valign="top"></td><td class="lblock"> same response <span class="delete">(except for hop-by-hop headers) that it would have</span></td><td> </td><td class="rblock"> same response <span class="insert">status and payload that it would have received had its</span></td><td class="lineno" valign="top"></td></tr> 220 <tr><td class="lineno" valign="top"></td><td class="lblock"> re<span class="delete">ceived had its re</span>quest been handled directly by the origin server.</td><td> </td><td class="rblock"> request been handled directly by the origin server.</td><td class="lineno" valign="top"></td></tr> 221 221 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 222 222 <tr><td class="lineno" valign="top"></td><td class="left"> In an ideal world, all interactions with an HTTP cache would be</td><td> </td><td class="right"> In an ideal world, all interactions with an HTTP cache would be</td><td class="lineno" valign="top"></td></tr> … … 269 269 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 270 270 <tr><td><a name="diff0014" /></td></tr> 271 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.1. </span> Cache Correctness</td><td> </td><td class="rblock"> <span class="insert">This specification uses the ABNF syntax defined in Section 2.1 of</span></td><td class="lineno" valign="top"></td></tr>271 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">2.1. Cache Correctness</span></td><td> </td><td class="rblock"><span class="insert"> This specification uses the ABNF syntax defined in Section 2.1 of</span></td><td class="lineno" valign="top"></td></tr> 272 272 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> [Part1] and the core rules defined in Section 2.2 of [Part1]:</span></td><td class="lineno" valign="top"></td></tr> 273 273 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> [[abnf.dep: ABNF syntax and basic rules will be adopted from RFC</span></td><td class="lineno" valign="top"></td></tr> 274 274 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> 5234, see <http://tools.ietf.org/wg/httpbis/trac/ticket/36>.]]</span></td><td class="lineno" valign="top"></td></tr> 275 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>275 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 276 276 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> DIGIT = <DIGIT, defined in [Part1], Section 2.2></span></td><td class="lineno" valign="top"></td></tr> 277 277 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> DQUOTE = <DQUOTE, defined in [Part1], Section 2.2></span></td><td class="lineno" valign="top"></td></tr> 278 278 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> SP = <SP, defined in [Part1], Section 2.2></span></td><td class="lineno" valign="top"></td></tr> 279 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>279 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 280 280 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> quoted-string = <quoted-string, defined in [Part1], Section 2.2></span></td><td class="lineno" valign="top"></td></tr> 281 281 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> token = <token, defined in [Part1], Section 2.2></span></td><td class="lineno" valign="top"></td></tr> 282 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>282 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 283 283 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> The ABNF rules below are defined in other parts:</span></td><td class="lineno" valign="top"></td></tr> 284 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>284 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 285 285 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> field-name = <field-name, defined in [Part1], Section 4.2></span></td><td class="lineno" valign="top"></td></tr> 286 286 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> HTTP-date = <HTTP-date, defined in [Part1], Section 3.3.1></span></td><td class="lineno" valign="top"></td></tr> … … 288 288 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> pseudonym = <pseudonym, defined in [Part1], Section 8.9></span></td><td class="lineno" valign="top"></td></tr> 289 289 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> uri-host = <uri-host, defined in [Part1], Section 3.2.1></span></td><td class="lineno" valign="top"></td></tr> 290 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>290 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 291 291 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">3. Overview</span></td><td class="lineno" valign="top"></td></tr> 292 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>293 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">3.1. </span> Cache Correctness</td><td class="lineno" valign="top"></td></tr>292 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 293 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">3.1. Cache Correctness</span></td><td class="lineno" valign="top"></td></tr> 294 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 295 <tr><td class="lineno" valign="top"></td><td class="left"> A correct cache MUST respond to a request with the most up-to-date</td><td> </td><td class="right"> A correct cache MUST respond to a request with the most up-to-date</td><td class="lineno" valign="top"></td></tr> … … 666 666 <tr><td class="lineno" valign="top"></td><td class="left"> see if its cached entry is still usable. We call this "validating"</td><td> </td><td class="right"> see if its cached entry is still usable. We call this "validating"</td><td class="lineno" valign="top"></td></tr> 667 667 <tr><td><a name="diff0046" /></td></tr> 668 <tr><td class="lineno" valign="top"></td><td class="lblock"> the cache entry. <span class="delete">Since we do not want to have to pay the overhead of</span></td><td> </td><td class="rblock"> the cache entry.</td><td class="lineno" valign="top"></td></tr>668 <tr><td class="lineno" valign="top"></td><td class="lblock"> the cache entry.<span class="delete"> Since we do not want to have to pay the overhead of</span></td><td> </td><td class="rblock"> the cache entry.</td><td class="lineno" valign="top"></td></tr> 669 669 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> retransmitting the full response if the cached entry is good, and we</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 670 670 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> do not want to pay the overhead of an extra round trip if the cached</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 671 671 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> entry is invalid, the HTTP/1.1 protocol supports the use of</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 672 672 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> conditional methods.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 673 <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>673 <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> 674 674 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> The key protocol features for supporting conditional methods are</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 675 675 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> those concerned with "cache validators." When an origin server</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 679 679 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> has a cache entry, it includes the associated validator in the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 680 680 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> request.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 681 <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>681 <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> 682 682 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> The server then checks that validator against the current validator</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 683 683 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> for the entity, and, if they match (see Section 4 of [Part4]), it</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 687 687 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> validator matches, and we avoid an extra round trip if it does not</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 688 688 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> match.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 689 <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>689 <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> 690 690 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> In HTTP/1.1, a conditional request looks exactly the same as a normal</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 691 691 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> request for the same resource, except that it carries a special</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 692 692 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> header (which includes the validator) that implicitly turns the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 693 693 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> method (usually, GET) into a conditional.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 694 <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>694 <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> 695 695 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> The protocol includes both positive and negative senses of cache-</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 696 696 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> validating conditions. That is, it is possible to request either</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 697 697 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> that a method be performed if and only if a validator matches or if</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 698 698 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> and only if no validators match.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 699 <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>699 <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> 700 700 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Note: a response that lacks a validator may still be cached, and</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 701 701 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> served from cache until it expires, unless this is explicitly</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 703 703 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> do a conditional retrieval if it does not have a validator for the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 704 704 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> entity, which means it will not be refreshable after it expires.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 705 <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>705 <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> 706 706 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">4.1. Last-Modified Dates</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 707 <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>707 <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> 708 708 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> The Last-Modified entity-header field value is often used as a cache</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 709 709 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> validator. In simple terms, a cache entry is considered to be valid</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 710 710 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> if the entity has not been modified since the Last-Modified value.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 711 <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>711 <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> 712 712 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">4.2. Entity Tag Cache Validators</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 713 <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>713 <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> 714 714 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> The ETag response-header field value, an entity tag, provides for an</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 715 715 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> "opaque" cache validator. This might allow more reliable validation</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> … … 718 718 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> sufficient, or where the origin server wishes to avoid certain</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 719 719 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> paradoxes that might arise from the use of modification dates.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 720 <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>720 <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> 721 721 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Entity Tags are described in Section 2 of [Part4]. The headers used</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 722 722 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> with entity tags are described in Section 6 of [Part4].</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 723 <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>723 <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> 724 724 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">4.3. Non-validating Conditionals</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 725 725 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 726 726 <tr><td><a name="diff0047" /></td></tr> 727 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The principle behind entity tags </span> is <span class="delete">that only</span> the <span class="delete">service author</span></td><td> </td><td class="rblock"> <span class="insert">HTTP's conditional request mechanism, defined in [Part4],</span> is <span class="insert">used to</span></td><td class="lineno" valign="top"></td></tr>728 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> knows</span> the <span class="delete">semantics</span> of a <span class="delete">resource well enough</span> to <span class="delete">select an</span></td><td> </td><td class="rblock"><span class="insert"> avoid retransmitting</span> the <span class="insert">response payload when</span> the <span class="insert">cached entry is</span></td><td class="lineno" valign="top"></td></tr>729 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> appropriate cache validation mechanism, and</span> the <span class="delete">specification of any</span></td><td> </td><td class="rblock"><span class="insert">valid. When a cached response includes one or more "cache</span></td><td class="lineno" valign="top"></td></tr>730 <tr><td class="lineno" valign="top"></td><td class="lblock"> validator <span class="delete">comparison function more complex than byte-equality would</span></td><td> </td><td class="rblock"><span class="insert"> validators," such as the field values</span> of <span class="insert">an ETag or Last-Modified</span></td><td class="lineno" valign="top"></td></tr>731 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> open up a can of worms. Thus, comparisons</span> of <span class="delete">any other headers</span></td><td> </td><td class="rblock"><span class="insert"> header field, then</span> a <span class="insert">validating GET request SHOULD be made</span></td><td class="lineno" valign="top"></td></tr>732 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> (except Last-Modified, for compatibility</span> with <span class="delete">HTTP/1.0) are never</span></td><td> </td><td class="rblock"><span class="insert"> conditional</span> to <span class="insert">those field values. The server checks</span> the <span class="insert">conditional</span></td><td class="lineno" valign="top"></td></tr>733 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> used for purposes</span> of <span class="delete">validating</span> a cache <span class="delete">entry.</span></td><td> </td><td class="rblock"><span class="insert"> request's</span> validator <span class="insert">against the current state</span> of <span class="insert">the requested</span></td><td class="lineno" valign="top"></td></tr>734 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> resource and, if they match, the server responds </span> with <span class="insert">a 304 (Not</span></td><td class="lineno" valign="top"></td></tr>727 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">The principle behind entity tags is that only the service author</span></td><td> </td><td class="rblock"> <span class="insert">HTTP's conditional request mechanism, defined in [Part4], is used to</span></td><td class="lineno" valign="top"></td></tr> 728 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">knows the semantics of a resource well enough to select an</span></td><td> </td><td class="rblock"> <span class="insert">avoid retransmitting the response payload when the cached entry is</span></td><td class="lineno" valign="top"></td></tr> 729 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">appropriate cache validation mechanism, and the specification of any</span></td><td> </td><td class="rblock"> <span class="insert">valid. When a cached response includes one or more "cache</span></td><td class="lineno" valign="top"></td></tr> 730 <tr><td class="lineno" valign="top"></td><td class="lblock"> validator<span class="delete"> comparison function more complex than byte-equality woul</span>d</td><td> </td><td class="rblock"> validator<span class="insert">s," such as the field values of an ETag or Last-Modifie</span>d</td><td class="lineno" valign="top"></td></tr> 731 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">open up a can of worms. Thus, comparisons of any other headers</span></td><td> </td><td class="rblock"> <span class="insert">header field, then a validating GET request SHOULD be made</span></td><td class="lineno" valign="top"></td></tr> 732 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">(except Last-Modified, for compatibility with HTTP/1.0) are never</span></td><td> </td><td class="rblock"> <span class="insert">conditional to those field values. The server checks the conditional</span></td><td class="lineno" valign="top"></td></tr> 733 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">used for purposes of validating a cache entry.</span></td><td> </td><td class="rblock"> <span class="insert">request's validator against the current state of the requested</span></td><td class="lineno" valign="top"></td></tr> 734 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> resource and, if they match, the server responds with a 304 (Not</span></td><td class="lineno" valign="top"></td></tr> 735 735 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Modified) status code to indicate that the cached response can be</span></td><td class="lineno" valign="top"></td></tr> 736 736 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> refreshed and reused without retransmitting the response payload. If</span></td><td class="lineno" valign="top"></td></tr> 737 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> the validator does not match the current state </span> of <span class="insert">the requested</span></td><td class="lineno" valign="top"></td></tr>738 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> resource, then the server returns </span> a <span class="insert">full response, including payload,</span></td><td class="lineno" valign="top"></td></tr>739 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> so that the request can be satisfied and the </span> cache <span class="insert">entry supplanted</span></td><td class="lineno" valign="top"></td></tr>737 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> the validator does not match the current state of the requested</span></td><td class="lineno" valign="top"></td></tr> 738 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> resource, then the server returns a full response, including payload,</span></td><td class="lineno" valign="top"></td></tr> 739 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> so that the request can be satisfied and the cache entry supplanted</span></td><td class="lineno" valign="top"></td></tr> 740 740 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> without the need for an additional network round-trip.</span></td><td class="lineno" valign="top"></td></tr> 741 741 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 747 747 <tr><td class="lineno" valign="top"></td><td class="left"> directive, a caching system MAY always store a successful response</td><td> </td><td class="right"> directive, a caching system MAY always store a successful response</td><td class="lineno" valign="top"></td></tr> 748 748 <tr><td><a name="diff0050" /></td></tr> 749 <tr><td class="lineno" valign="top"></td><td class="lblock"> (see Section <span class="delete">9) </span> as a cache entry, MAY return it without validation if</td><td> </td><td class="rblock"> (see Section <span class="insert">10)</span> as a cache entry, MAY return it without validation</td><td class="lineno" valign="top"></td></tr>750 <tr><td class="lineno" valign="top"></td><td class="lblock"> i t is fresh, and MAY return it after successful validation. If there</td><td> </td><td class="rblock"> if it is fresh, and MAY return it after successful validation. If</td><td class="lineno" valign="top"></td></tr>751 <tr><td class="lineno" valign="top"></td><td class="lblock"> is neither a cache validator nor an explicit expiration time</td><td> </td><td class="rblock"> thereis neither a cache validator nor an explicit expiration time</td><td class="lineno" valign="top"></td></tr>749 <tr><td class="lineno" valign="top"></td><td class="lblock"> (see Section <span class="delete">9) as a cache entry, MAY return it without validation if</span></td><td> </td><td class="rblock"> (see Section <span class="insert">10) as a cache entry, MAY return it without validation</span></td><td class="lineno" valign="top"></td></tr> 750 <tr><td class="lineno" valign="top"></td><td class="lblock"> i<span class="delete">t is fresh, and MAY return it after successful validation. If there</span></td><td> </td><td class="rblock"> i<span class="insert">f it is fresh, and MAY return it after successful validation. If</span></td><td class="lineno" valign="top"></td></tr> 751 <tr><td class="lineno" valign="top"></td><td class="lblock"> is neither a cache validator nor an explicit expiration time</td><td> </td><td class="rblock"> <span class="insert">there </span>is neither a cache validator nor an explicit expiration time</td><td class="lineno" valign="top"></td></tr> 752 752 <tr><td class="lineno" valign="top"></td><td class="left"> associated with a response, we do not expect it to be cached, but</td><td> </td><td class="right"> associated with a response, we do not expect it to be cached, but</td><td class="lineno" valign="top"></td></tr> 753 753 <tr><td class="lineno" valign="top"></td><td class="left"> certain caches MAY violate this expectation (for example, when little</td><td> </td><td class="right"> certain caches MAY violate this expectation (for example, when little</td><td class="lineno" valign="top"></td></tr> … … 828 828 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 829 829 <tr><td><a name="diff0057" /></td></tr> 830 <tr><td class="lineno" valign="top"></td><td class="lblock"> Some features of <span class="delete">the HTTP/1.1 protocol, </span> such as Digest</td><td> </td><td class="rblock"> Some features of <span class="insert">HTTP/1.1,</span> such as Digest Authentication, depend on</td><td class="lineno" valign="top"></td></tr>831 <tr><td class="lineno" valign="top"></td><td class="lblock"> Authentication, depend on the value of certain end-to-end headers. A</td><td> </td><td class="rblock"> the value of certain end-to-end headers. A transparent proxy SHOULD</td><td class="lineno" valign="top"></td></tr>832 <tr><td class="lineno" valign="top"></td><td class="lblock"> transparent proxy SHOULD NOT modify an end-to-end header unless the</td><td> </td><td class="rblock"> NOT modify an end-to-end header unless the definition of that header</td><td class="lineno" valign="top"></td></tr>833 <tr><td class="lineno" valign="top"></td><td class="lblock"> definition of that headerrequires or specifically allows that.</td><td> </td><td class="rblock"> requires or specifically allows that.</td><td class="lineno" valign="top"></td></tr>830 <tr><td class="lineno" valign="top"></td><td class="lblock"> Some features of <span class="delete">the HTTP/1.1 protocol, such as Digest</span></td><td> </td><td class="rblock"> Some features of <span class="insert">HTTP/1.1, such as Digest Authentication, depend on</span></td><td class="lineno" valign="top"></td></tr> 831 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Authentication, depend on the value of certain end-to-end headers. A</span></td><td> </td><td class="rblock"> <span class="insert">the value of certain end-to-end headers. A transparent proxy SHOULD</span></td><td class="lineno" valign="top"></td></tr> 832 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">transparent proxy SHOULD NOT modify an end-to-end header unless the</span></td><td> </td><td class="rblock"> <span class="insert">NOT modify an end-to-end header unless the definition of that header</span></td><td class="lineno" valign="top"></td></tr> 833 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">definition of that header </span>requires or specifically allows that.</td><td> </td><td class="rblock"> requires or specifically allows that.</td><td class="lineno" valign="top"></td></tr> 834 834 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 835 835 <tr><td class="lineno" valign="top"></td><td class="left"> A transparent proxy MUST NOT modify any of the following fields in a</td><td> </td><td class="right"> A transparent proxy MUST NOT modify any of the following fields in a</td><td class="lineno" valign="top"></td></tr> … … 1009 1009 <tr><td class="lineno" valign="top"></td><td class="left"> We note one exception to this rule: since some applications have</td><td> </td><td class="right"> We note one exception to this rule: since some applications have</td><td class="lineno" valign="top"></td></tr> 1010 1010 <tr><td><a name="diff0073" /></td></tr> 1011 <tr><td class="lineno" valign="top"></td><td class="lblock"> traditionally used <span class="delete">GETs</span> and <span class="delete">HEADs</span> with <span class="delete">query</span> URLs <span class="delete">(those</span> containing a</td><td> </td><td class="rblock"> traditionally used <span class="insert">GET</span> and <span class="insert">HEAD requests</span> with URLs containing a <span class="insert">query</span></td><td class="lineno" valign="top"></td></tr>1012 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">"?" in the rel_path part) </span> to perform operations with significant side</td><td> </td><td class="rblock"><span class="insert"> part</span> to perform operations with significant side effects, caches MUST</td><td class="lineno" valign="top"></td></tr>1013 <tr><td class="lineno" valign="top"></td><td class="lblock"> effects, caches MUST NOT treat responses to such URIs as fresh unless</td><td> </td><td class="rblock"> NOT treat responses to such URIs as fresh unless the server provides</td><td class="lineno" valign="top"></td></tr>1014 <tr><td class="lineno" valign="top"></td><td class="lblock"> the server provides an explicit expiration time. This specifically</td><td> </td><td class="rblock"> an explicit expiration time. This specifically means that responses</td><td class="lineno" valign="top"></td></tr>1015 <tr><td class="lineno" valign="top"></td><td class="lblock"> means that responses from HTTP/1.0 servers for such URIs SHOULD NOT</td><td> </td><td class="rblock"> from HTTP/1.0 servers for such URIs SHOULD NOT be taken from a cache.</td><td class="lineno" valign="top"></td></tr>1016 <tr><td class="lineno" valign="top"></td><td class="lblock"> be taken from a cache. See Section 8.1.1 of [Part2] for related</td><td> </td><td class="rblock"> See Section 8.1.1 of [Part2] for related information.</td><td class="lineno" valign="top"></td></tr>1017 <tr><td class="lineno" valign="top"></td><td class="lblock"> information.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>1011 <tr><td class="lineno" valign="top"></td><td class="lblock"> traditionally used GET<span class="delete">s and HEADs with query URLs (those containing a</span></td><td> </td><td class="rblock"> traditionally used GET<span class="insert"> and HEAD requests with URLs containing a query</span></td><td class="lineno" valign="top"></td></tr> 1012 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">"?" in the rel_path part) to perform operations with significant side</span></td><td> </td><td class="rblock"> <span class="insert">part to perform operations with significant side effects, caches MUST</span></td><td class="lineno" valign="top"></td></tr> 1013 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">effects, caches MUST NOT treat responses to such URIs as fresh unles</span>s</td><td> </td><td class="rblock"> <span class="insert">NOT treat responses to such URIs as fresh unless the server provide</span>s</td><td class="lineno" valign="top"></td></tr> 1014 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">the server provides an explicit expiration time. This specifically</span></td><td> </td><td class="rblock"> <span class="insert">an explicit expiration time. This specifically means that responses</span></td><td class="lineno" valign="top"></td></tr> 1015 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">means that responses from HTTP/1.0 servers for such URIs SHOULD NOT</span></td><td> </td><td class="rblock"> <span class="insert">from HTTP/1.0 servers for such URIs SHOULD NOT be taken from a cache.</span></td><td class="lineno" valign="top"></td></tr> 1016 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">be taken from a cache. See Section 8.1.1 of [Part2] for related</span></td><td> </td><td class="rblock"> <span class="insert">See Section 8.1.1 of [Part2] for related information.</span></td><td class="lineno" valign="top"></td></tr> 1017 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> information.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1018 1018 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1019 1019 <tr><td><a name="diff0074" /></td></tr> … … 1027 1027 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1028 1028 <tr><td><a name="diff0075" /></td></tr> 1029 <tr><td class="lineno" valign="top"></td><td class="lblock"> There is no way for <span class="delete">the </span> HTTP <span class="delete">protocol</span> to guarantee that all such</td><td> </td><td class="rblock"> There is no way for HTTP to guarantee that all such cache entries are</td><td class="lineno" valign="top"></td></tr>1030 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache entries are marked invalid. For example, the request that</td><td> </td><td class="rblock"> marked invalid. For example, the request that caused the changeat</td><td class="lineno" valign="top"></td></tr>1031 <tr><td class="lineno" valign="top"></td><td class="lblock"> caused the change at the origin server might not have gone through</td><td> </td><td class="rblock"> the origin server might not have gone through the proxy where a cache</td><td class="lineno" valign="top"></td></tr>1032 <tr><td class="lineno" valign="top"></td><td class="lblock"> the proxy where a cache entry is stored. However, several rules help</td><td> </td><td class="rblock"> entry is stored. However, several rules help reduce the likelihood</td><td class="lineno" valign="top"></td></tr>1033 <tr><td class="lineno" valign="top"></td><td class="lblock"> reduce the likelihoodof erroneous behavior.</td><td> </td><td class="rblock"> of erroneous behavior.</td><td class="lineno" valign="top"></td></tr>1029 <tr><td class="lineno" valign="top"></td><td class="lblock"> There is no way for <span class="delete">the HTTP protocol to guarantee that all such</span></td><td> </td><td class="rblock"> There is no way for <span class="insert">HTTP to guarantee that all such cache entries are</span></td><td class="lineno" valign="top"></td></tr> 1030 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">cache entries are marked invalid. For example, the request th</span>at</td><td> </td><td class="rblock"> <span class="insert">marked invalid. For example, the request that caused the change </span>at</td><td class="lineno" valign="top"></td></tr> 1031 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">caused the change at the origin server might not have gone through</span></td><td> </td><td class="rblock"> <span class="insert">the origin server might not have gone through the proxy where a cache</span></td><td class="lineno" valign="top"></td></tr> 1032 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">the proxy where a cache entry is stored. However, several rules help</span></td><td> </td><td class="rblock"> <span class="insert">entry is stored. However, several rules help reduce the likelihood</span></td><td class="lineno" valign="top"></td></tr> 1033 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">reduce the likelihood </span>of erroneous behavior.</td><td> </td><td class="rblock"> of erroneous behavior.</td><td class="lineno" valign="top"></td></tr> 1034 1034 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1035 1035 <tr><td class="lineno" valign="top"></td><td class="left"> In this section, the phrase "invalidate an entity" means that the</td><td> </td><td class="right"> In this section, the phrase "invalidate an entity" means that the</td><td class="lineno" valign="top"></td></tr> … … 1176 1176 <tr><td class="lineno" valign="top"></td><td class="left"> cache-request-directive =</td><td> </td><td class="right"> cache-request-directive =</td><td class="lineno" valign="top"></td></tr> 1177 1177 <tr><td><a name="diff0086" /></td></tr> 1178 <tr><td class="lineno" valign="top"></td><td class="lblock"> "no-cache" ; Section <span class="delete">15.2.1</span></td><td> </td><td class="rblock"> "no-cache" ; Section <span class="insert">16.2.1</span></td><td class="lineno" valign="top"></td></tr>1179 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "no-store" ; Section <span class="delete">15.2.2</span></td><td> </td><td class="rblock"> | "no-store" ; Section <span class="insert">16.2.2</span></td><td class="lineno" valign="top"></td></tr>1180 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "max-age" "=" delta-seconds ; Section <span class="delete">15.2.3, 15.2.4</span></td><td> </td><td class="rblock"> | "max-age" "=" delta-seconds ; Section <span class="insert">16.2.3, 16.2.4</span></td><td class="lineno" valign="top"></td></tr>1181 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "max-stale" [ "=" delta-seconds ] ; Section <span class="delete">15.2.3</span></td><td> </td><td class="rblock"> | "max-stale" [ "=" delta-seconds ] ; Section <span class="insert">16.2.3</span></td><td class="lineno" valign="top"></td></tr>1182 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "min-fresh" "=" delta-seconds ; Section <span class="delete">15.2.3</span></td><td> </td><td class="rblock"> | "min-fresh" "=" delta-seconds ; Section <span class="insert">16.2.3</span></td><td class="lineno" valign="top"></td></tr>1183 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "no-transform" ; Section <span class="delete">15.2.5</span></td><td> </td><td class="rblock"> | "no-transform" ; Section <span class="insert">16.2.5</span></td><td class="lineno" valign="top"></td></tr>1184 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "only-if-cached" ; Section <span class="delete">15.2.4</span></td><td> </td><td class="rblock"> | "only-if-cached" ; Section <span class="insert">16.2.4</span></td><td class="lineno" valign="top"></td></tr>1185 <tr><td class="lineno" valign="top"></td><td class="lblock"> | cache-extension ; Section <span class="delete">15.2.6</span></td><td> </td><td class="rblock"> | cache-extension ; Section <span class="insert">16.2.6</span></td><td class="lineno" valign="top"></td></tr>1178 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> "no-cache" ; Section 15</span>.2.1</td><td> </td><td class="rblock"> <span class="insert">"no-cache" ; Section 16</span>.2.1</td><td class="lineno" valign="top"></td></tr> 1179 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "no-store" ; Section 15</span>.2.2</td><td> </td><td class="rblock"> <span class="insert">| "no-store" ; Section 16</span>.2.2</td><td class="lineno" valign="top"></td></tr> 1180 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "max-age" "=" delta-seconds ; Section 15.2.3, 15</span>.2.4</td><td> </td><td class="rblock"> <span class="insert">| "max-age" "=" delta-seconds ; Section 16.2.3, 16</span>.2.4</td><td class="lineno" valign="top"></td></tr> 1181 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "max-stale" [ "=" delta-seconds ] ; Section 15</span>.2.3</td><td> </td><td class="rblock"> <span class="insert">| "max-stale" [ "=" delta-seconds ] ; Section 16</span>.2.3</td><td class="lineno" valign="top"></td></tr> 1182 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "min-fresh" "=" delta-seconds ; Section 15</span>.2.3</td><td> </td><td class="rblock"> <span class="insert">| "min-fresh" "=" delta-seconds ; Section 16</span>.2.3</td><td class="lineno" valign="top"></td></tr> 1183 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "no-transform" ; Section 15</span>.2.5</td><td> </td><td class="rblock"> <span class="insert">| "no-transform" ; Section 16</span>.2.5</td><td class="lineno" valign="top"></td></tr> 1184 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "only-if-cached" ; Section 15</span>.2.4</td><td> </td><td class="rblock"> <span class="insert">| "only-if-cached" ; Section 16</span>.2.4</td><td class="lineno" valign="top"></td></tr> 1185 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | cache-extension ; Section 15</span>.2.6</td><td> </td><td class="rblock"> <span class="insert">| cache-extension ; Section 16</span>.2.6</td><td class="lineno" valign="top"></td></tr> 1186 1186 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1187 1187 <tr><td class="lineno" valign="top"></td><td class="left"> cache-response-directive =</td><td> </td><td class="right"> cache-response-directive =</td><td class="lineno" valign="top"></td></tr> 1188 1188 <tr><td><a name="diff0087" /></td></tr> 1189 <tr><td class="lineno" valign="top"></td><td class="lblock"> "public" ; Section <span class="delete">15.2.1</span></td><td> </td><td class="rblock"> "public" ; Section <span class="insert">16.2.1</span></td><td class="lineno" valign="top"></td></tr>1190 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "private" [ "=" DQUOTE 1#field-name DQUOTE ] ; Section <span class="delete">15.2.1</span></td><td> </td><td class="rblock"> | "private" [ "=" DQUOTE 1#field-name DQUOTE ] ; Section <span class="insert">16.2.1</span></td><td class="lineno" valign="top"></td></tr>1191 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "no-cache" [ "=" DQUOTE 1#field-name DQUOTE ]; Section <span class="delete">15.2.1</span></td><td> </td><td class="rblock"> | "no-cache" [ "=" DQUOTE 1#field-name DQUOTE ]; Section <span class="insert">16.2.1</span></td><td class="lineno" valign="top"></td></tr>1192 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "no-store" ; Section <span class="delete">15.2.2</span></td><td> </td><td class="rblock"> | "no-store" ; Section <span class="insert">16.2.2</span></td><td class="lineno" valign="top"></td></tr>1193 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "no-transform" ; Section <span class="delete">15.2.5</span></td><td> </td><td class="rblock"> | "no-transform" ; Section <span class="insert">16.2.5</span></td><td class="lineno" valign="top"></td></tr>1194 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "must-revalidate" ; Section <span class="delete">15.2.4</span></td><td> </td><td class="rblock"> | "must-revalidate" ; Section <span class="insert">16.2.4</span></td><td class="lineno" valign="top"></td></tr>1195 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "proxy-revalidate" ; Section <span class="delete">15.2.4</span></td><td> </td><td class="rblock"> | "proxy-revalidate" ; Section <span class="insert">16.2.4</span></td><td class="lineno" valign="top"></td></tr>1196 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "max-age" "=" delta-seconds ; Section <span class="delete">15.2.3</span></td><td> </td><td class="rblock"> | "max-age" "=" delta-seconds ; Section <span class="insert">16.2.3</span></td><td class="lineno" valign="top"></td></tr>1197 <tr><td class="lineno" valign="top"></td><td class="lblock"> | "s-maxage" "=" delta-seconds ; Section <span class="delete">15.2.3</span></td><td> </td><td class="rblock"> | "s-maxage" "=" delta-seconds ; Section <span class="insert">16.2.3</span></td><td class="lineno" valign="top"></td></tr>1198 <tr><td class="lineno" valign="top"></td><td class="lblock"> | cache-extension ; Section <span class="delete">15.2.6</span></td><td> </td><td class="rblock"> | cache-extension ; Section <span class="insert">16.2.6</span></td><td class="lineno" valign="top"></td></tr>1189 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> "public" ; Section 15</span>.2.1</td><td> </td><td class="rblock"> <span class="insert">"public" ; Section 16</span>.2.1</td><td class="lineno" valign="top"></td></tr> 1190 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "private" [ "=" DQUOTE 1#field-name DQUOTE ] ; Section 15</span>.2.1</td><td> </td><td class="rblock"> <span class="insert">| "private" [ "=" DQUOTE 1#field-name DQUOTE ] ; Section 16</span>.2.1</td><td class="lineno" valign="top"></td></tr> 1191 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "no-cache" [ "=" DQUOTE 1#field-name DQUOTE ]; Section 15</span>.2.1</td><td> </td><td class="rblock"> <span class="insert">| "no-cache" [ "=" DQUOTE 1#field-name DQUOTE ] ; Section 16</span>.2.1</td><td class="lineno" valign="top"></td></tr> 1192 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "no-store" ; Section 15</span>.2.2</td><td> </td><td class="rblock"> <span class="insert">| "no-store" ; Section 16</span>.2.2</td><td class="lineno" valign="top"></td></tr> 1193 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "no-transform" ; Section 15</span>.2.5</td><td> </td><td class="rblock"> <span class="insert">| "no-transform" ; Section 16</span>.2.5</td><td class="lineno" valign="top"></td></tr> 1194 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "must-revalidate" ; Section 15</span>.2.4</td><td> </td><td class="rblock"> <span class="insert">| "must-revalidate" ; Section 16</span>.2.4</td><td class="lineno" valign="top"></td></tr> 1195 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "proxy-revalidate" ; Section 15</span>.2.4</td><td> </td><td class="rblock"> <span class="insert">| "proxy-revalidate" ; Section 16</span>.2.4</td><td class="lineno" valign="top"></td></tr> 1196 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "max-age" "=" delta-seconds ; Section 15</span>.2.3</td><td> </td><td class="rblock"> <span class="insert">| "max-age" "=" delta-seconds ; Section 16</span>.2.3</td><td class="lineno" valign="top"></td></tr> 1197 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | "s-maxage" "=" delta-seconds ; Section 15</span>.2.3</td><td> </td><td class="rblock"> <span class="insert">| "s-maxage" "=" delta-seconds ; Section 16</span>.2.3</td><td class="lineno" valign="top"></td></tr> 1198 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> | cache-extension ; Section 15</span>.2.6</td><td> </td><td class="rblock"> <span class="insert">| cache-extension ; Section 16</span>.2.6</td><td class="lineno" valign="top"></td></tr> 1199 1199 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1200 1200 <tr><td class="lineno" valign="top"></td><td class="left"> cache-extension = token [ "=" ( token | quoted-string ) ]</td><td> </td><td class="right"> cache-extension = token [ "=" ( token | quoted-string ) ]</td><td class="lineno" valign="top"></td></tr> … … 1206 1206 <tr><td class="lineno" valign="top"></td><td class="left"> response. This mechanism supports extensibility; implementations of</td><td> </td><td class="right"> response. This mechanism supports extensibility; implementations of</td><td class="lineno" valign="top"></td></tr> 1207 1207 <tr><td><a name="diff0088" /></td></tr> 1208 <tr><td class="lineno" valign="top"></td><td class="lblock"> future versions of <span class="delete">the </span> HTTP <span class="delete">protocol</span> might apply these directives to</td><td> </td><td class="rblock"> future versions of HTTP might apply these directives to header fields</td><td class="lineno" valign="top"></td></tr>1209 <tr><td class="lineno" valign="top"></td><td class="lblock"> header fieldsnot defined in HTTP/1.1.</td><td> </td><td class="rblock"> not defined in HTTP/1.1.</td><td class="lineno" valign="top"></td></tr>1208 <tr><td class="lineno" valign="top"></td><td class="lblock"> future versions of <span class="delete">the HTTP protocol might apply these directives to</span></td><td> </td><td class="rblock"> future versions of <span class="insert">HTTP might apply these directives to header fields</span></td><td class="lineno" valign="top"></td></tr> 1209 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">header fields </span>not defined in HTTP/1.1.</td><td> </td><td class="rblock"> not defined in HTTP/1.1.</td><td class="lineno" valign="top"></td></tr> 1210 1210 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1211 1211 <tr><td class="lineno" valign="top"></td><td class="left"> The cache-control directives can be broken down into these general</td><td> </td><td class="right"> The cache-control directives can be broken down into these general</td><td class="lineno" valign="top"></td></tr> … … 1659 1659 <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 1: URIs, Connections,</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 1: URIs, Connections,</td><td class="lineno" valign="top"></td></tr> 1660 1660 <tr><td><a name="diff0120" /></td></tr> 1661 <tr><td class="lineno" valign="top"></td><td class="lblock"> and Message Parsing", <span class="delete">draft-ietf-httpbis-p1-messaging-01</span></td><td> </td><td class="rblock"> and Message Parsing", <span class="insert">draft-ietf-httpbis-p1-messaging-02</span></td><td class="lineno" valign="top"></td></tr>1662 <tr><td class="lineno" valign="top"></td><td class="lblock"> (work in progress), <span class="delete">Jan uary</span> 2008.</td><td> </td><td class="rblock"> (work in progress), <span class="insert">February</span>2008.</td><td class="lineno" valign="top"></td></tr>1661 <tr><td class="lineno" valign="top"></td><td class="lblock"> and Message Parsing", draft-ietf-httpbis-p1-messaging-0<span class="delete">1</span></td><td> </td><td class="rblock"> and Message Parsing", draft-ietf-httpbis-p1-messaging-0<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> 1662 <tr><td class="lineno" valign="top"></td><td class="lblock"> (work in progress), <span class="delete">Jan</span>uary 2008.</td><td> </td><td class="rblock"> (work in progress), <span class="insert">Febr</span>uary 2008.</td><td class="lineno" valign="top"></td></tr> 1663 1663 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1664 1664 <tr><td class="lineno" valign="top"></td><td class="left"> [Part2] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [Part2] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> … … 1666 1666 <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 2: Message</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 2: Message</td><td class="lineno" valign="top"></td></tr> 1667 1667 <tr><td><a name="diff0121" /></td></tr> 1668 <tr><td class="lineno" valign="top"></td><td class="lblock"> Semantics", <span class="delete">draft-ietf-httpbis-p2-semantics-01</span> (work in</td><td> </td><td class="rblock"> Semantics", <span class="insert">draft-ietf-httpbis-p2-semantics-02</span> (work in</td><td class="lineno" valign="top"></td></tr>1669 <tr><td class="lineno" valign="top"></td><td class="lblock"> progress), <span class="delete">Jan uary</span> 2008.</td><td> </td><td class="rblock"> progress), <span class="insert">February</span>2008.</td><td class="lineno" valign="top"></td></tr>1668 <tr><td class="lineno" valign="top"></td><td class="lblock"> Semantics", draft-ietf-httpbis-p2-semantics-0<span class="delete">1</span> (work in</td><td> </td><td class="rblock"> Semantics", draft-ietf-httpbis-p2-semantics-0<span class="insert">2</span> (work in</td><td class="lineno" valign="top"></td></tr> 1669 <tr><td class="lineno" valign="top"></td><td class="lblock"> progress), <span class="delete">Jan</span>uary 2008.</td><td> </td><td class="rblock"> progress), <span class="insert">Febr</span>uary 2008.</td><td class="lineno" valign="top"></td></tr> 1670 1670 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1671 1671 <tr><td class="lineno" valign="top"></td><td class="left"> [Part3] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [Part3] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> … … 1673 1673 <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 3: Message Payload</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 3: Message Payload</td><td class="lineno" valign="top"></td></tr> 1674 1674 <tr><td><a name="diff0122" /></td></tr> 1675 <tr><td class="lineno" valign="top"></td><td class="lblock"> and Content Negotiation", <span class="delete">draft-ietf-httpbis-p3-payload-01</span></td><td> </td><td class="rblock"> and Content Negotiation", <span class="insert">draft-ietf-httpbis-p3-payload-02</span></td><td class="lineno" valign="top"></td></tr>1676 <tr><td class="lineno" valign="top"></td><td class="lblock"> (work in progress), <span class="delete">Jan uary</span> 2008.</td><td> </td><td class="rblock"> (work in progress), <span class="insert">February</span>2008.</td><td class="lineno" valign="top"></td></tr>1675 <tr><td class="lineno" valign="top"></td><td class="lblock"> and Content Negotiation", draft-ietf-httpbis-p3-payload-0<span class="delete">1</span></td><td> </td><td class="rblock"> and Content Negotiation", draft-ietf-httpbis-p3-payload-0<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr> 1676 <tr><td class="lineno" valign="top"></td><td class="lblock"> (work in progress), <span class="delete">Jan</span>uary 2008.</td><td> </td><td class="rblock"> (work in progress), <span class="insert">Febr</span>uary 2008.</td><td class="lineno" valign="top"></td></tr> 1677 1677 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1678 1678 <tr><td class="lineno" valign="top"></td><td class="left"> [Part4] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [Part4] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> … … 1680 1680 <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 4: Conditional</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 4: Conditional</td><td class="lineno" valign="top"></td></tr> 1681 1681 <tr><td><a name="diff0123" /></td></tr> 1682 <tr><td class="lineno" valign="top"></td><td class="lblock"> Requests", <span class="delete">draft-ietf-httpbis-p4-conditional-01</span> (work in</td><td> </td><td class="rblock"> Requests", <span class="insert">draft-ietf-httpbis-p4-conditional-02</span> (work in</td><td class="lineno" valign="top"></td></tr>1683 <tr><td class="lineno" valign="top"></td><td class="lblock"> progress), <span class="delete">Jan uary</span> 2008.</td><td> </td><td class="rblock"> progress), <span class="insert">February</span>2008.</td><td class="lineno" valign="top"></td></tr>1682 <tr><td class="lineno" valign="top"></td><td class="lblock"> Requests", draft-ietf-httpbis-p4-conditional-0<span class="delete">1</span> (work in</td><td> </td><td class="rblock"> Requests", draft-ietf-httpbis-p4-conditional-0<span class="insert">2</span> (work in</td><td class="lineno" valign="top"></td></tr> 1683 <tr><td class="lineno" valign="top"></td><td class="lblock"> progress), <span class="delete">Jan</span>uary 2008.</td><td> </td><td class="rblock"> progress), <span class="insert">Febr</span>uary 2008.</td><td class="lineno" valign="top"></td></tr> 1684 1684 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1685 1685 <tr><td class="lineno" valign="top"></td><td class="left"> [Part5] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [Part5] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> … … 1687 1687 <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 5: Range Requests and</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 5: Range Requests and</td><td class="lineno" valign="top"></td></tr> 1688 1688 <tr><td><a name="diff0124" /></td></tr> 1689 <tr><td class="lineno" valign="top"></td><td class="lblock"> Partial Responses", <span class="delete">draft-ietf-httpbis-p5-range-01</span> (work</td><td> </td><td class="rblock"> Partial Responses", <span class="insert">draft-ietf-httpbis-p5-range-02</span> (work</td><td class="lineno" valign="top"></td></tr>1690 <tr><td class="lineno" valign="top"></td><td class="lblock"> in progress), <span class="delete">Jan uary</span> 2008.</td><td> </td><td class="rblock"> in progress), <span class="insert">February</span>2008.</td><td class="lineno" valign="top"></td></tr>1689 <tr><td class="lineno" valign="top"></td><td class="lblock"> Partial Responses", draft-ietf-httpbis-p5-range-0<span class="delete">1</span> (work</td><td> </td><td class="rblock"> Partial Responses", draft-ietf-httpbis-p5-range-0<span class="insert">2</span> (work</td><td class="lineno" valign="top"></td></tr> 1690 <tr><td class="lineno" valign="top"></td><td class="lblock"> in progress), <span class="delete">Jan</span>uary 2008.</td><td> </td><td class="rblock"> in progress), <span class="insert">Febr</span>uary 2008.</td><td class="lineno" valign="top"></td></tr> 1691 1691 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1692 1692 <tr><td class="lineno" valign="top"></td><td class="left"> [Part7] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td> </td><td class="right"> [Part7] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,</td><td class="lineno" valign="top"></td></tr> … … 1694 1694 <tr><td class="lineno" valign="top"></td><td class="left"> and J. Reschke, Ed., "HTTP/1.1, part 7: Authentication",</td><td> </td><td class="right"> and J. Reschke, Ed., "HTTP/1.1, part 7: Authentication",</td><td class="lineno" valign="top"></td></tr> 1695 1695 <tr><td><a name="diff0125" /></td></tr> 1696 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">draft-ietf-httpbis-p7-auth-01</span> (work in progress),</td><td> </td><td class="rblock"> <span class="insert">draft-ietf-httpbis-p7-auth-02</span> (work in progress),</td><td class="lineno" valign="top"></td></tr>1697 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Jan uary</span> 2008.</td><td> </td><td class="rblock"> <span class="insert">February</span>2008.</td><td class="lineno" valign="top"></td></tr>1696 <tr><td class="lineno" valign="top"></td><td class="lblock"> draft-ietf-httpbis-p7-auth-0<span class="delete">1</span> (work in progress),</td><td> </td><td class="rblock"> draft-ietf-httpbis-p7-auth-0<span class="insert">2</span> (work in progress),</td><td class="lineno" valign="top"></td></tr> 1697 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Jan</span>uary 2008.</td><td> </td><td class="rblock"> <span class="insert">Febr</span>uary 2008.</td><td class="lineno" valign="top"></td></tr> 1698 1698 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> 1699 1699 <tr><td class="lineno" valign="top"></td><td class="left"> [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions)</td><td> </td><td class="right"> [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions)</td><td class="lineno" valign="top"></td></tr> … … 1777 1777 <tr><td><a name="diff0134" /></td></tr> 1778 1778 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">B.3. Since draft-ietf-httpbis-p6-cache-01</span></td><td class="lineno" valign="top"></td></tr> 1779 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>1779 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 1780 1780 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Closed issues:</span></td><td class="lineno" valign="top"></td></tr> 1781 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>1781 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 1782 1782 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/82>: "rel_path</span></td><td class="lineno" valign="top"></td></tr> 1783 1783 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> not used"</span></td><td class="lineno" valign="top"></td></tr> 1784 1784 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Other changes:</span></td><td class="lineno" valign="top"></td></tr> 1785 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>1785 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 1786 1786 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> o Get rid of duplicate BNF rule names ("host" -> "uri-host") (work</span></td><td class="lineno" valign="top"></td></tr> 1787 1787 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> in progress on</span></td><td class="lineno" valign="top"></td></tr> 1788 1788 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/36>)</span></td><td class="lineno" valign="top"></td></tr> 1789 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr>1789 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 1790 1790 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> o Add explicit references to BNF syntax and rules imported from</span></td><td class="lineno" valign="top"></td></tr> 1791 1791 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> other parts of the specification.</span></td><td class="lineno" valign="top"></td></tr> 1792 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> 1792 <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> </span></td><td class="lineno" valign="top"></td></tr> 1793 1793 <tr><td class="lineno" valign="top"></td><td class="left">Index</td><td> </td><td class="right">Index</td><td class="lineno" valign="top"></td></tr> 1794 1794 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1804 1804 <tr><td class="lineno" valign="top"></td><td class="left"> max-age 33</td><td> </td><td class="right"> max-age 33</td><td class="lineno" valign="top"></td></tr> 1805 1805 <tr><td><a name="diff0136" /></td></tr> 1806 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">max-age 34</span></td><td> </td><td class="rblock"> max-stale <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>1807 <tr><td class="lineno" valign="top"></td><td class="lblock"> m ax-stale <span class="delete">33</span></td><td> </td><td class="rblock"> min-fresh <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>1808 <tr><td class="lineno" valign="top"></td><td class="lblock"> m in-fresh <span class="delete">33</span></td><td> </td><td class="rblock"> must-revalidate <span class="insert">34</span></td><td class="lineno" valign="top"></td></tr>1809 <tr><td class="lineno" valign="top"></td><td class="lblock"> must-revalidate <span class="delete">35</span></td><td> </td><td class="rblock"> no-cache <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr>1810 <tr><td class="lineno" valign="top"></td><td class="lblock"> no- cache <span class="delete">30</span></td><td> </td><td class="rblock"> no-store <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>1811 <tr><td class="lineno" valign="top"></td><td class="lblock"> no- store <span class="delete">31</span></td><td> </td><td class="rblock"> no-transform 35</td><td class="lineno" valign="top"></td></tr>1812 <tr><td class="lineno" valign="top"></td><td class="lblock"> no-transform <span class="delete">36</span></td><td> </td><td class="rblock"> <span class="insert">only-if-cached 34</span></td><td class="lineno" valign="top"></td></tr>1813 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> only-if-cached</span> 35</td><td> </td><td class="rblock"> private <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr>1814 <tr><td class="lineno" valign="top"></td><td class="lblock"> pr ivate <span class="delete">30</span></td><td> </td><td class="rblock"> proxy-revalidate <span class="insert">35</span></td><td class="lineno" valign="top"></td></tr>1815 <tr><td class="lineno" valign="top"></td><td class="lblock"> p roxy-revalidate <span class="delete">36</span></td><td> </td><td class="rblock"> public <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr>1816 <tr><td class="lineno" valign="top"></td><td class="lblock"> public <span class="delete">30</span></td><td> </td><td class="rblock"> s-maxage <span class="insert">31</span></td><td class="lineno" valign="top"></td></tr>1817 <tr><td class="lineno" valign="top"></td><td class="lblock"> s-maxage <span class="delete">32</span></td><td> </td><td class="rblock"> Cache-Control header <span class="insert">27</span></td><td class="lineno" valign="top"></td></tr>1818 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache-Control header <span class="delete">28</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>1806 <tr><td class="lineno" valign="top"></td><td class="lblock"> max-<span class="delete">age 34</span></td><td> </td><td class="rblock"> max-<span class="insert">stale 32</span></td><td class="lineno" valign="top"></td></tr> 1807 <tr><td class="lineno" valign="top"></td><td class="lblock"> m<span class="delete">ax-stale 33</span></td><td> </td><td class="rblock"> m<span class="insert">in-fresh 32</span></td><td class="lineno" valign="top"></td></tr> 1808 <tr><td class="lineno" valign="top"></td><td class="lblock"> m<span class="delete">in-fresh 33</span></td><td> </td><td class="rblock"> m<span class="insert">ust-revalidate 34</span></td><td class="lineno" valign="top"></td></tr> 1809 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">must-revalidate 35</span></td><td> </td><td class="rblock"> <span class="insert">no-cache 29</span></td><td class="lineno" valign="top"></td></tr> 1810 <tr><td class="lineno" valign="top"></td><td class="lblock"> no-<span class="delete">cach</span>e 30</td><td> </td><td class="rblock"> no-<span class="insert">stor</span>e 30</td><td class="lineno" valign="top"></td></tr> 1811 <tr><td class="lineno" valign="top"></td><td class="lblock"> no-<span class="delete">store 31</span></td><td> </td><td class="rblock"> no-<span class="insert">transform 35</span></td><td class="lineno" valign="top"></td></tr> 1812 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">no-transform 36</span></td><td> </td><td class="rblock"> <span class="insert">only-if-cached 34</span></td><td class="lineno" valign="top"></td></tr> 1813 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">only-if-cached 35</span></td><td> </td><td class="rblock"> <span class="insert">private 29</span></td><td class="lineno" valign="top"></td></tr> 1814 <tr><td class="lineno" valign="top"></td><td class="lblock"> pr<span class="delete">ivate 30</span></td><td> </td><td class="rblock"> pr<span class="insert">oxy-revalidate 35</span></td><td class="lineno" valign="top"></td></tr> 1815 <tr><td class="lineno" valign="top"></td><td class="lblock"> p<span class="delete">roxy-revalidate 36</span></td><td> </td><td class="rblock"> p<span class="insert">ublic 29</span></td><td class="lineno" valign="top"></td></tr> 1816 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">public 30</span></td><td> </td><td class="rblock"> <span class="insert">s-maxage 31</span></td><td class="lineno" valign="top"></td></tr> 1817 <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete"> s-maxage 32</span></td><td> </td><td class="rblock"> <span class="insert">Cache-Control header 27</span></td><td class="lineno" valign="top"></td></tr> 1818 <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Cache-Control header 28</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> 1819 1819 <tr><td class="lineno" valign="top"></td><td class="left"> cacheable 6</td><td> </td><td class="right"> cacheable 6</td><td class="lineno" valign="top"></td></tr> 1820 1820 <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> … … 1834 1834 <tr><td class="lineno" valign="top"></td><td class="left"> age-value 27</td><td> </td><td class="right"> age-value 27</td><td class="lineno" valign="top"></td></tr> 1835 1835 <tr><td><a name="diff0138" /></td></tr> 1836 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache-Control <span class="delete">29</span></td><td> </td><td class="rblock"> Cache-Control <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>1837 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-directive <span class="delete">29</span></td><td> </td><td class="rblock"> cache-directive <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>1838 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-extension <span class="delete">29</span></td><td> </td><td class="rblock"> cache-extension <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>1839 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-request-directive <span class="delete">29</span></td><td> </td><td class="rblock"> cache-request-directive <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>1840 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-response-directive <span class="delete">29</span></td><td> </td><td class="rblock"> cache-response-directive <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>1836 <tr><td class="lineno" valign="top"></td><td class="lblock"> Cache-Control 2<span class="delete">9</span></td><td> </td><td class="rblock"> Cache-Control 2<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1837 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-directive 2<span class="delete">9</span></td><td> </td><td class="rblock"> cache-directive 2<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1838 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-extension 2<span class="delete">9</span></td><td> </td><td class="rblock"> cache-extension 2<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1839 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-request-directive 2<span class="delete">9</span></td><td> </td><td class="rblock"> cache-request-directive 2<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1840 <tr><td class="lineno" valign="top"></td><td class="lblock"> cache-response-directive 2<span class="delete">9</span></td><td> </td><td class="rblock"> cache-response-directive 2<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1841 1841 <tr><td class="lineno" valign="top"></td><td class="left"> delta-seconds 27</td><td> </td><td class="right"> delta-seconds 27</td><td class="lineno" valign="top"></td></tr> 1842 1842 <tr><td><a name="diff0139" /></td></tr> 1843 <tr><td class="lineno" valign="top"></td><td class="lblock"> Expires <span class="delete">38</span></td><td> </td><td class="rblock"> Expires <span class="insert">37</span></td><td class="lineno" valign="top"></td></tr>1844 <tr><td class="lineno" valign="top"></td><td class="lblock"> extension-pragma <span class="delete">39</span></td><td> </td><td class="rblock"> extension-pragma <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>1845 <tr><td class="lineno" valign="top"></td><td class="lblock"> Pragma <span class="delete">39</span></td><td> </td><td class="rblock"> Pragma <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>1846 <tr><td class="lineno" valign="top"></td><td class="lblock"> pragma-directive <span class="delete">39</span></td><td> </td><td class="rblock"> pragma-directive <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>1847 <tr><td class="lineno" valign="top"></td><td class="lblock"> Vary <span class="delete">39</span></td><td> </td><td class="rblock"> Vary <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>1843 <tr><td class="lineno" valign="top"></td><td class="lblock"> Expires 3<span class="delete">8</span></td><td> </td><td class="rblock"> Expires 3<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr> 1844 <tr><td class="lineno" valign="top"></td><td class="lblock"> extension-pragma 3<span class="delete">9</span></td><td> </td><td class="rblock"> extension-pragma 3<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1845 <tr><td class="lineno" valign="top"></td><td class="lblock"> Pragma 3<span class="delete">9</span></td><td> </td><td class="rblock"> Pragma 3<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1846 <tr><td class="lineno" valign="top"></td><td class="lblock"> pragma-directive 3<span class="delete">9</span></td><td> </td><td class="rblock"> pragma-directive 3<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1847 <tr><td class="lineno" valign="top"></td><td class="lblock"> Vary 3<span class="delete">9</span></td><td> </td><td class="rblock"> Vary 3<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1848 1848 <tr><td class="lineno" valign="top"></td><td class="left"> warn-agent 40</td><td> </td><td class="right"> warn-agent 40</td><td class="lineno" valign="top"></td></tr> 1849 1849 <tr><td class="lineno" valign="top"></td><td class="left"> warn-code 40</td><td> </td><td class="right"> warn-code 40</td><td class="lineno" valign="top"></td></tr> … … 1861 1861 <tr><td class="lineno" valign="top"></td><td class="left"> Pragma 38</td><td> </td><td class="right"> Pragma 38</td><td class="lineno" valign="top"></td></tr> 1862 1862 <tr><td><a name="diff0141" /></td></tr> 1863 <tr><td class="lineno" valign="top"></td><td class="lblock"> Vary <span class="delete">39</span></td><td> </td><td class="rblock"> Vary <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>1863 <tr><td class="lineno" valign="top"></td><td class="lblock"> Vary 3<span class="delete">9</span></td><td> </td><td class="rblock"> Vary 3<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> 1864 1864 <tr><td class="lineno" valign="top"></td><td class="lblock"> Warning <span class="delete">40</span></td><td> </td><td class="rblock"> Warning <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr> 1865 1865 <tr><td class="lineno" valign="top"></td><td class="left"> heuristic expiration time 7</td><td> </td><td class="right"> heuristic expiration time 7</td><td class="lineno" valign="top"></td></tr>
Note: See TracChangeset
for help on using the changeset viewer.