Ignore:
Timestamp:
Aug 29, 2011, 6:05:39 PM (8 years ago)
Author:
mnot@…
Message:

Move 'freshening responses' under 'validation model'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p6-cache.xml

    r1418 r1419  
    960960   satisfied by that stored response.
    961961</t>
    962 <t>
    963    A 304 (Not Modified) response status code indicates that the stored
    964    response can be updated and reused; see <xref target="freshening.responses"/>.
    965 </t>
    966 <t>
    967    A full response (i.e., one with a response body) indicates that none of the
    968    stored responses nominated in the conditional request is suitable. Instead,
    969    a cache &SHOULD; use the full response to satisfy the request and &MAY;
    970    replace the stored response(s).
    971 </t>
    972 <t>
    973    If a cache receives a 5xx response while attempting to validate a response,
    974    it &MAY; either forward this response to the requesting client, or act as
    975    if the server failed to respond. In the latter case, it &MAY; return a
    976    previously stored response (see <xref target="serving.stale.responses" />).
    977 </t>
     962
     963<t>Cache handling of a response to a conditional request is dependent upon its status code:</t>
     964
     965<t>
     966   <list style="symbols">
     967      <t>
     968         A 304 (Not Modified) response status code indicates that the stored
     969         response can be updated and reused; see <xref
     970         target="freshening.responses"/>.
     971      </t>
     972      <t>
     973         A full response (i.e., one with a response body) indicates that none
     974         of the stored responses nominated in the conditional request is
     975         suitable. Instead, a cache &SHOULD; use the full response to satisfy
     976         the request and &MAY; replace the stored response(s).
     977      </t>
     978      <t>
     979         However, if a cache receives a 5xx response while attempting to
     980         validate a response, it &MAY; either forward this response to the
     981         requesting client, or act as if the server failed to respond. In the
     982         latter case, it &MAY; return a previously stored response (see <xref
     983         target="serving.stale.responses" />).
     984      </t>
     985   </list>
     986</t>
     987
     988<section anchor="freshening.responses" title="Freshening Responses">
     989<t>
     990   When a cache receives a 304 (Not Modified) response and already has one
     991   or more stored 200 (OK) responses for the same cache key, the cache needs
     992   to identify which of the stored responses are updated by this new response
     993   and then update the stored response(s) with the new information provided in
     994   the 304 response.
     995   <list style="symbols">
     996    <t>
     997     If the new response contains a strong validator, then that strong
     998     validator identifies the selected representation.  All of the stored
     999     responses with the same strong validator are selected.
     1000     If none of the stored responses contain the same strong validator, then
     1001     this new response corresponds to a new selected representation and
     1002     &MUST-NOT; update the existing stored responses.
     1003    </t>
     1004    <t>
     1005     If the new response contains a weak validator and that validator
     1006     corresponds to one of the cache's stored responses, then the most
     1007     recent of those matching stored responses is selected.
     1008    </t>
     1009    <t>
     1010     If the new response does not include any form of validator, there is
     1011     only one stored response, and that stored response also lacks a
     1012     validator, then that stored response is selected.
     1013    </t>
     1014   </list>
     1015</t>
     1016<t>
     1017   If a stored response is selected for update, the cache &MUST;:
     1018   <list style="symbols">
     1019      <t>delete any Warning header fields in the stored response with
     1020         warn-code 1xx (see <xref target="header.warning" />);</t>
     1021      <t>retain any Warning header fields in the stored response with
     1022         warn-code 2xx; and,</t>
     1023      <t>use other header fields provided in the 304 response to replace
     1024         all instances of the corresponding header fields in the stored
     1025         response.</t>
     1026   </list>
     1027</t>
     1028</section>
     1029
    9781030</section>
    9791031
     
    11221174</section>
    11231175
    1124 <section anchor="freshening.responses" title="Freshening Responses">
    1125 <t>
    1126    When a cache receives a 304 (Not Modified) response and already has one
    1127    or more stored 200 (OK) responses for the same cache key, the cache needs
    1128    to identify which of the stored responses are updated by this new response
    1129    and then update the stored response(s) with the new information provided in
    1130    the 304 response.
    1131    <list style="symbols">
    1132     <t>
    1133      If the new response contains a strong validator, then that strong
    1134      validator identifies the selected representation.  All of the stored
    1135      responses with the same strong validator are selected.
    1136      If none of the stored responses contain the same strong validator, then
    1137      this new response corresponds to a new selected representation and
    1138      &MUST-NOT; update the existing stored responses.
    1139     </t>
    1140     <t>
    1141      If the new response contains a weak validator and that validator
    1142      corresponds to one of the cache's stored responses, then the most
    1143      recent of those matching stored responses is selected.
    1144     </t>
    1145     <t>
    1146      If the new response does not include any form of validator, there is
    1147      only one stored response, and that stored response also lacks a
    1148      validator, then that stored response is selected.
    1149     </t>
    1150    </list>
    1151 </t>
    1152 <t>
    1153    If a stored response is selected for update, the cache &MUST;:
    1154    <list style="symbols">
    1155       <t>delete any Warning header fields in the stored response with
    1156          warn-code 1xx (see <xref target="header.warning" />);</t>
    1157       <t>retain any Warning header fields in the stored response with
    1158          warn-code 2xx; and,</t>
    1159       <t>use other header fields provided in the 304 response to replace
    1160          all instances of the corresponding header fields in the stored
    1161          response.</t>
    1162    </list>
    1163 </t>
    1164 </section>
    11651176
    11661177</section>
Note: See TracChangeset for help on using the changeset viewer.