Re: ETags vs Variants, was: Revising RFC2616 - what's happening

Roy T. Fielding schrieb:
>> In 13.6 it says:
>>
>> "When the cache receives a subsequent request whose Request-URI 
>> specifies one or more cache entries including a Vary header field, the 
>> cache MUST NOT use such a cache entry to construct a response to the 
>> new request unless all of the selecting request-headers present in the 
>> new request match the corresponding stored request-headers in the 
>> original request." 
>> (<http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.13.6>)
>>
>> At least this part IMHO needs to be fixed to say how to treat the case 
>> where a header doesn't appear in the request.
> 
> Why?  That seems completely unambiguous to me, and I have a hard time
> believing that any implementer would fail to understand that a missing
> header field is different from a present header field.  Would it be
> more clear if we replaced "all of the" with "the set of"?  I.e.,
> 
> "When the cache receives a subsequent request whose Request-URI 
> specifies one or more cache entries including a Vary header field, the 
> cache MUST NOT use such a cache entry to construct a response to the new 
> request unless the set of selecting request-headers present in the new 
> request match the corresponding set of
> stored request-headers in the original request."

Well, that's clearer, but not my interpretation of what it should say. 
Don't we want a missing header to be treated the same way as an empty 
header?

That is, if the cache has a cached response from a previous request with 
"Accept-Language: de", and the server replied with "Vary: 
Accept-Language", can a subsequent request without "Accept-Language" 
header be served with the cached reply? I wouldn't have thought so....

> ...

Best regards, Julian

Received on Friday, 20 October 2006 18:34:21 UTC