On Wed, Aug 26, 2009 at 11:47 AM, William A. Rowe, Jr.<[email protected]> wrote: > I think we blew it :) > > Vary: user-agent is not practical for correcting errant browser behavior. > > For example; > > User-Agent: Mozilla/5.0 Gecko/20090729 Firefox/3.5.2 > > produces a myriad number of 'variant' flavors when tagging Vary with > the User-Agent when determining if the deflate/gzip compression should > be served, or the uncompressed variant. > > What we really meant to do was to determine which Accept-Encoding values > were invalid based on known browser bugs, and -remove them- from the A-E > header *prior* to determining the cache handling (quick handler hook) or > typical content handling. > > Which implies that setenvif + headers need an extra chance to run really > first in front of the quick handler. > > Any better suggestions?
Yes, write a Varied header to 'hash' plugin API for mod_cache. I would write little lua scriptlets that map user agents to two buckets: supports gzip, doesnt support gzip. store the thing in mod_cache only twice, instead of once for every user agent.
