On 09/18/2007 07:40 PM, Roy T.Fielding wrote:
> On Sep 18, 2007, at 6:46 PM, Plüm, Rüdiger, VF-Group wrote:
>> This works "as designed". Please see the difference between the accept
>> headers sent by
>> IE6 and Firefox
>>
>> IE6    : Accept-Encoding: gzip, deflate
>> Firefox: Accept-Encoding: gzip,deflate
>>
>> IE6 adds an additional space between gzip and deflate.
>> As the response varies on Accept-Encoding two representations of the
>> response get saved
>> (which are actually the same).
>> It could be argued that this should not matter.
> 
> Argued?  The space does not change the value of the field (which is
> a comma-separated list).  The question is really up to us as to how

But this is only true for this special case of Accept-Encoding (and all other
headers where the field-value is a comma separated list), correct?
It wouldn't be true for a header whose field-content is made of *TEXT, right?
How do we know if a field-value is just *TEXT or field-content LWS 
field-content?
e.g. IMHO the field-value of the header Example below could be seen as *TEXT
as well as token *separator token:

Example: token1, token2

If we think it is *TEXT I think

token1, token2

and

token1,token2

are different values, whereas if we see it as

token *separator token

I think they represent the same value.

> much effort we make to compare the values for equality, since the
> non-match just makes our cache slow and bulky.  Given the number

Agreed. Depending on the answers above we may need to have a list of headers
(like Accept-Encoding) where we compare the tokens in the field-value.
For all other headers we would stay with the plain compare we do today.
See also the TODO comments in mod_disk_cache.c::regen_key.

Regards

Rüdiger

Reply via email to