If-Range with other conditionals

Hi there,

RFC 2616 says:

   An HTTP/1.1 origin server, upon receiving a conditional request that
   includes both a Last-Modified date (e.g., in an If-Modified-Since or
   If-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 cache
   validators, MUST NOT return a response status of 304 (Not Modified)
   unless doing so is consistent with all of the conditional header
   fields in the request.

As far as I can see, a 304 (Not Modified) response code SHOULD NOT be
generated for an If-Range request. If-Range definition implies that
only 200 (OK) and 206 (Partial Content) responses are valid. Can a 304
response be ever "consistent with" an If-Range field?

Can a 412 response be ever "consistent with" an If-Range field?


And a related question regarding proxy behavior; RFC 2616 says:

   An HTTP/1.1 caching proxy, upon receiving a conditional request that
   includes both a Last-Modified date and one or more entity tags as
   cache validators, MUST NOT return a locally cached response to the
   client unless that cached response is consistent with all of the
   conditional header fields in the request.

What does "return a locally cached response" mean exactly? Does it
include returning a 304 response (cached headers, no content)? Or just
responses with locally cached _content_ (such as 200 and 206
responses, but not 412).


I find it curious that all "If-*" sections in the RFC have "the
behavior when both If-Foo and If-Bar are present is undefined"
clauses, _except_ for the If-Range section. It sort of implies that
If-Range can be used in combination with all others, but valid server
behavior upon receiving certain combinations is not clear to me. Thus
the questions above.

Can the author(s) or anybody clarify the intent?

Thank you,

Alex.

-- 
                            | HTTP performance - Web Polygraph benchmark
www.measurement-factory.com | HTTP compliance+ - Co-Advisor test suite
                            | all of the above - PolyBox appliance

Received on Monday, 23 September 2002 20:13:09 UTC