Ignore:
Timestamp:
Jul 8, 2012, 7:50:41 AM (7 years ago)
Author:
julian.reschke@…
Message:

Work-in-progress: hyperlink header field definitions(P4)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p4-conditional.xml

    r1738 r1739  
    422422   or
    423423  <list style="symbols">
    424      <t>The validator is about to be used by a client in an If-Modified-Since,
    425         If-Unmodified-Since header field, because the client has a cache entry,
    426         or <x:ref>If-Range</x:ref> for the associated representation, and</t>
     424     <t>The validator is about to be used by a client in an <x:ref>If-Modified-Since</x:ref>,
     425        <x:ref>If-Unmodified-Since</x:ref> header field, because the client has
     426        a cache entry, or <x:ref>If-Range</x:ref> for the associated
     427        representation, and</t>
    427428     <t>That cache entry includes a Date value, which gives the time
    428429        when the origin server sent the original response, and</t>
     
    663664        or if it is unfeasible to send a strong entity-tag.</t>
    664665
    665      <t>&SHOULD; send a Last-Modified value if it is feasible to send one.</t>
     666     <t>&SHOULD; send a <x:ref>Last-Modified</x:ref> value if it is feasible to
     667        send one.</t>
    666668  </list>
    667669</t>
    668670<t>
    669671   In other words, the preferred behavior for an HTTP/1.1 origin server
    670    is to send both a strong entity-tag and a Last-Modified value.
     672   is to send both a strong entity-tag and a <x:ref>Last-Modified</x:ref> value.
    671673</t>
    672674<t>
     
    674676  <list style="symbols">
    675677     <t>&MUST; use that entity-tag in any cache-conditional request (using
    676         If-Match or If-None-Match) if an entity-tag has been provided by the
    677         origin server.</t>
    678 
    679      <t>&SHOULD; use the Last-Modified value in non-subrange cache-conditional
    680         requests (using If-Modified-Since) if only a Last-Modified value has
    681         been provided by the origin server. </t>
    682 
    683      <t>&MAY; use the Last-Modified value in subrange cache-conditional
    684         requests (using If-Unmodified-Since) if only a Last-Modified value has
    685         been provided by an HTTP/1.0 origin server. The user agent &SHOULD;
    686         provide a way to disable this, in case of difficulty.</t>
     678        <x:ref>If-Match</x:ref> or <x:ref>If-None-Match</x:ref>) if an
     679        entity-tag has been provided by the origin server.</t>
     680
     681     <t>&SHOULD; use the <x:ref>Last-Modified</x:ref> value in non-subrange
     682        cache-conditional requests (using <x:ref>If-Modified-Since</x:ref>)
     683        if only a Last-Modified value has been provided by the origin server.</t>
     684
     685     <t>&MAY; use the <x:ref>Last-Modified</x:ref> value in subrange
     686        cache-conditional requests (using <x:ref>If-Unmodified-Since</x:ref>)
     687        if only a Last-Modified value has been provided by an HTTP/1.0 origin
     688        server. The user agent &SHOULD; provide a way to disable this, in case
     689        of difficulty.</t>
    687690
    688691     <t>&SHOULD; use both validators in cache-conditional requests if both an
    689         entity-tag and a Last-Modified value have been provided by the origin
    690         server. This allows both HTTP/1.0 and HTTP/1.1 caches to respond
    691         appropriately.</t>
     692        entity-tag and a <x:ref>Last-Modified</x:ref> value have been provided
     693        by the origin server. This allows both HTTP/1.0 and HTTP/1.1 caches to
     694        respond appropriately.</t>
    692695  </list>
    693696</t>
    694697<t>
    695698   An HTTP/1.1 origin server, upon receiving a conditional request that
    696    includes both a Last-Modified date (e.g., in an If-Modified-Since or
    697    If-Unmodified-Since header field) and one or more entity-tags (e.g.,
    698    in an If-Match, If-None-Match, or <x:ref>If-Range</x:ref> header field) as
    699    cache validators, &MUST-NOT; return a response status code of
    700    <x:ref>304 (Not Modified)</x:ref> unless doing so is consistent with all of
    701    the conditional header fields in the request.
     699   includes both a Last-Modified date (e.g., in an <x:ref>If-Modified-Since</x:ref>
     700   or <x:ref>If-Unmodified-Since</x:ref> header field) and one or more
     701   entity-tags (e.g., in an <x:ref>If-Match</x:ref>, <x:ref>If-None-Match</x:ref>,
     702   or <x:ref>If-Range</x:ref> header field) as cache validators, &MUST-NOT;
     703   return a response status code of <x:ref>304 (Not Modified)</x:ref> unless
     704   doing so is consistent with all of the conditional header fields in the
     705   request.
    702706</t>
    703707<t>
     
    782786<t>
    783787   The result of a request having both an If-Match header field and
    784    either an If-None-Match or an If-Modified-Since header field is
    785    undefined by this specification.
     788   either an <x:ref>If-None-Match</x:ref> or an <x:ref>If-Modified-Since</x:ref>
     789   header field is undefined by this specification.
    786790</t>
    787791</section>
     
    822826   Instead, if the request method was GET or HEAD, the server &SHOULD;
    823827   respond with a <x:ref>304 (Not Modified)</x:ref> status code, including the cache-related
    824    header fields (particularly ETag) of the selected representation that has
     828   header fields (particularly <x:ref>ETag</x:ref>) of the selected representation that has
    825829   a matching entity-tag.  For all other request methods, the server &MUST;
    826830   respond with a <x:ref>412 (Precondition Failed)</x:ref> status code.
     
    829833   If none of the entity-tags match, then the server &MAY; perform the
    830834   requested method as if the If-None-Match header field did not exist,
    831    but &MUST; also ignore any If-Modified-Since header field(s) in the
    832    request. That is, if no entity-tags match, then the server &MUST-NOT;
     835   but &MUST; also ignore any <x:ref>If-Modified-Since</x:ref> header field(s)
     836   in the request. That is, if no entity-tags match, then the server &MUST-NOT;
    833837   return a <x:ref>304 (Not Modified)</x:ref> response.
    834838</t>
     
    839843   header field &MUST; be ignored. (See <xref
    840844   target="rules.for.when.to.use.entity.tags.and.last-modified.dates"/> for
    841    a discussion of server behavior when both If-Modified-Since and
    842    If-None-Match appear in the same request.)
     845   a discussion of server behavior when both <x:ref>If-Modified-Since</x:ref>
     846   and If-None-Match appear in the same request.)
    843847</t>
    844848<t>
     
    854858<t>
    855859   The result of a request having both an If-None-Match header field and
    856    either an If-Match or an If-Unmodified-Since header field is
    857    undefined by this specification.
     860   either an <x:ref>If-Match</x:ref> or an <x:ref>If-Unmodified-Since</x:ref>
     861   header field is undefined by this specification.
    858862</t>
    859863</section>
     
    915919      response. To get best results when sending an If-Modified-Since
    916920      header field for cache validation, clients are
    917       advised to use the exact date string received in a previous Last-Modified
    918       header field whenever possible.
     921      advised to use the exact date string received in a previous
     922      <x:ref>Last-Modified</x:ref> header field whenever possible.
    919923    </t><t>
    920924      &Note; If a client uses an arbitrary date in the If-Modified-Since
    921       header field instead of a date taken from the Last-Modified header field for
    922       the same request, the client needs to be aware that this
     925      header field instead of a date taken from the <x:ref>Last-Modified</x:ref>
     926      header field for the same request, the client needs to be aware that this
    923927      date is interpreted in the server's understanding of time.
    924928      Unsynchronized clocks and rounding problems, due to the different
     
    937941<t>
    938942   The result of a request having both an If-Modified-Since header field
    939    and either an If-Match or an If-Unmodified-Since header field is
    940    undefined by this specification.
     943   and either an <x:ref>If-Match</x:ref> or an <x:ref>If-Unmodified-Since</x:ref>
     944   header field is undefined by this specification.
    941945</t>
    942946</section>
     
    976980<t>
    977981   The result of a request having both an If-Unmodified-Since header
    978    field and either an If-None-Match or an If-Modified-Since header
    979    field is undefined by this specification.
     982   field and either an <x:ref>If-None-Match</x:ref> or an <x:ref>If-Modified-Since</x:ref>
     983   header field is undefined by this specification.
    980984</t>
    981985</section>
     
    984988<t>
    985989   The "If-Range" header field provides a special conditional request
    986    mechanism that is similar to If-Match and If-Unmodified-Since but
    987    specific to HTTP range requests. If-Range is defined in &header-if-range;.
     990   mechanism that is similar to <x:ref>If-Match</x:ref> and
     991   <x:ref>If-Unmodified-Since</x:ref> but specific to HTTP range requests.
     992   If-Range is defined in &header-if-range;.
    988993</t>
    989994</section>
     
    10141019   reasonable approximation of the current time.  If a <x:ref>200 (OK)</x:ref>
    10151020   response to the same request would have included any of the header fields
    1016    Cache-Control, Content-Location, ETag, <x:ref>Expires</x:ref>, or
    1017    <x:ref>Vary</x:ref>, then those same header fields &MUST; be sent in a 304
    1018    response.
     1021   <x:ref>Cache-Control</x:ref>, Content-Location, <x:ref>ETag</x:ref>,
     1022   <x:ref>Expires</x:ref>, or <x:ref>Vary</x:ref>, then those same header
     1023   fields &MUST; be sent in a 304 response.
    10191024</t>
    10201025<t>
     
    12531258  <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-p6-cache-&ID-VERSION;"/>
    12541259  <x:source href="p6-cache.xml" basename="p6-cache">
     1260    <x:defines>Cache-Control</x:defines>
    12551261    <x:defines>Expires</x:defines>
    12561262    <x:defines>Vary</x:defines>
     
    13731379</t>
    13741380<t>
    1375   Change ETag header field ABNF not to use quoted-string, thus avoiding
    1376   escaping issues.
     1381  Change <x:ref>ETag</x:ref> header field ABNF not to use quoted-string, thus
     1382  avoiding escaping issues.
    13771383  (<xref target="header.etag"/>)
    13781384</t>
Note: See TracChangeset for help on using the changeset viewer.