11.07.2015 Views

Network Working Group R. Fielding Request for Comments: 2616 ...

Network Working Group R. Fielding Request for Comments: 2616 ...

Network Working Group R. Fielding Request for Comments: 2616 ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

cache-conditional requests. This allows both HTTP/1.0 andHTTP/1.1 caches to respond appropriately.An HTTP/1.1 origin server, upon receiving a conditional request thatincludes both a Last-Modified date (e.g., in an If-Modified-Since orIf-Unmodified-Since header field) and one or more entity tags (e.g.,in an If-Match, If-None-Match, or If-Range header field) as cachevalidators, MUST NOT return a response status of 304 (Not Modified)unless doing so is consistent with all of the conditional headerfields in the request.An HTTP/1.1 caching proxy, upon receiving a conditional request thatincludes both a Last-Modified date and one or more entity tags ascache validators, MUST NOT return a locally cached response to theclient unless that cached response is consistent with all of theconditional header fields in the request.Note: The general principle behind these rules is that HTTP/1.1servers and clients should transmit as much non-redundantin<strong>for</strong>mation as is available in their responses and requests.HTTP/1.1 systems receiving this in<strong>for</strong>mation will make the mostconservative assumptions about the validators they receive.HTTP/1.0 clients and caches will ignore entity tags. Generally,last-modified values received or used by these systems willsupport transparent and efficient caching, and so HTTP/1.1 originservers should provide Last-Modified values. In those rare caseswhere the use of a Last-Modified value as a validator by anHTTP/1.0 system could result in a serious problem, then HTTP/1.1origin servers should not provide one.13.3.5 Non-validating ConditionalsThe principle behind entity tags is that only the service authorknows the semantics of a resource well enough to select anappropriate cache validation mechanism, and the specification of anyvalidator comparison function more complex than byte-equality wouldopen up a can of worms. Thus, comparisons of any other headers(except Last-Modified, <strong>for</strong> compatibility with HTTP/1.0) are neverused <strong>for</strong> purposes of validating a cache entry.<strong>Fielding</strong>, et al. Standards Track [Page 90]RFC <strong>2616</strong> HTTP/1.1 June 199913.4 Response Cacheability

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!