https://issues.apache.org/bugzilla/show_bug.cgi?id=39727

--- Comment #39 from Henrik Nordstrom <[email protected]> ---
This has already been discussed to death and still comes back...

There is no escape from the rule that each variant of a given URL MUST have a
unique ETag value, or none at all. How the ETag value is formed is entirely up
ot the server implementation and may carry any amount of unstructured and
structured data as needed by the server to uniquely identify a variant.

Weak ETags have slightly different rules but is irrelevant to this discussion.
Applies i.e. to when using dynamic adjustment of gzip encoding levels based on
CPU load, but not for identity vs gzip encoded variant which are semantically
different.

(In reply to Anshul from comment #38)
> The server response contains proper Vary header clearly indicating the
> response varies depending whether client is able to accept gzip content or
> not.

No. The server has sent a Vary header indicating that the servers variant
selection depends on the content of the Accept-Encoding header in the request,
and quite often User-Agent as well.

> In that case, the responsibility lies with the intermediate proxy to make
> sure all conditional headers check are met before sending a cached response
> for an ETag.

No. It's the origin servers responsibility to perform variant selection. Caches
uses If-None-Match to ask the server which variant among a set of known cached
variants of the requested URL should be used in response to unknown request
combinations. The response to such requests ONLY says "Use the variant with
ETag XXXX".

Semantically transparent proxies are not allowed to guess what variant
selection preferences the server has. I.e. which browsers it had blacklisted
content of type X for etc, or which browsers the server knows handles gzip
content encoding when there is not Accept-encoding header present.

gzip compression is onlhy a tiny tiny little bit of server side variant
selection. The same mechanism for selecting the correct variant amont a set of
cached variants of a URL is used for a vide variety of response variance
(selection of content-encoding, content-language, content-type, browser based,
custom headers, etc etc)

Note: Apache mod_negotiation does the right thing in all cases known. Issues
only arise with dynamic content encoding with mod_deflate (and a numbe of other
similar modules performing dynamic content transformation) often forgetting
about the meaning of ETag and it's relation to If-None-Match.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to