[ https://issues.apache.org/jira/browse/TS-2245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Leif Hedstrom updated TS-2245: ------------------------------ Fix Version/s: 5.0.0 > Fix the semantics and behavior of e.g. > proxy.config.http.cache.ignore_accept_encoding_mismatch > ---------------------------------------------------------------------------------------------- > > Key: TS-2245 > URL: https://issues.apache.org/jira/browse/TS-2245 > Project: Traffic Server > Issue Type: Bug > Components: HTTP > Reporter: Leif Hedstrom > Assignee: Leif Hedstrom > Fix For: 5.0.0 > > > These four configurations options where added to fix a real problem (content > duplications in cache): > {code} > {RECT_CONFIG, "proxy.config.http.cache.ignore_accept_mismatch", RECD_INT, > "0", RECU_DYNAMIC, RR_NULL, RECC_INT, "[0-1]", RECA_NULL} > , > {RECT_CONFIG, "proxy.config.http.cache.ignore_accept_language_mismatch", > RECD_INT, "0", RECU_DYNAMIC, RR_NULL, RECC_INT, "[0-1]", RECA_NULL} > , > {RECT_CONFIG, "proxy.config.http.cache.ignore_accept_encoding_mismatch", > RECD_INT, "0", RECU_DYNAMIC, RR_NULL, RECC_INT, "[0-1]", RECA_NULL} > , > {RECT_CONFIG, "proxy.config.http.cache.ignore_accept_charset_mismatch", > RECD_INT, "0", RECU_DYNAMIC, RR_NULL, RECC_INT, "[0-1]", RECA_NULL} > , > {code} > However, as implemented, they are pretty much useless, and if enabled, have > high risk of giving wrong content. To make things worse, they are global > configurations, since they are not passable from the HTTPSM into the cache. > I've examine the code thoroughly, and I actually think these configurations > had the right intentions, but just implemented it wrong. What they really > ought to have been is e.g. > proxy.config.http.cache.relax_accept_encoding_match . > What *should* happen (IMO) is that these four configs (ideally we'd rename > them or make new ones) would check if there is no Vary: header in the cached > entry. IF there is no Vary: header, *AND* one of these settings it set, we > skip that matching that happens on the cache client header and the incoming > client header entirely (give the match a score of 1.0). These configs should > ideally also be per-remap overridable, but that requires code changes like > TS-1919. > A real use case scenario is this: Assume a content is always served by origin > without Content-Encoding, or Vary: header. This would be typical for e.g. a > PNG (image). > Upon cache miss, if the first request comes with Accept-Encoding: gzip, > everything is fine, and we serve this cached item to all clients thereafter. > However, if the first request comes with no Accept-Encoding: header > whatsoever, that response can not satisfy a response from a request with AE: > gzip, so we get *at least* two copies of the same object in cache. > I'm curious to get some input on this, and let me know if the explanations > makes no sense. :) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira