Re: If-None-Match + Range

On 17.01.2012 05:38, Zhong Yu wrote:
> Let me clarify my question with an example.
>
> The representation remains unchanged between requests; the ETag
> remains "v0". The length of the representation body is 1000 bytes. 
> Now
> consider this request
>
>     GET /resource HTTP/1.1
>     If-None-Match: "v0"
>     Range: bytes=2000-3000
>
> of course, this is a bad request. The question is, which status code
> should be returned? 304 or 416? The two sections I quoted seem to
> yield to each other.

IMHO the MUST about returning other errors when they occur is most 
appropriate
"
    If the request would, without the If-None-Match header field, result
    in anything other than a 2xx or 304 status code, then the If-None-
    Match header field MUST be ignored.
"

ASUI the intent is for 2xx / 3xx response from If-* is an optimisation 
feature and only comes into effect if all the other features in the 
headers are valid and would produce a 2xx response. This is highlighted 
by the MAY clause at the very beginning of the If-None-Match description 
which says it can be ignored entirely by any part of the system.

AYJ

Received on Monday, 16 January 2012 22:49:34 UTC