While trying to reproduce #1172, I've realized what a mess Vary and gzip really is.
In the concrete case, presented in #1172, I believe the reporter is wrong that his backend is correct, it doesn't seem to send Vary: Accept-Encoding for non-gzip requests. However, I've used varnish for compressing uncached content coming from an IIS server. In this case, the IIS will never compress, and therefore doesn't send "Vary: Accept-Encoding". But I set beresp.do_gzip, and would expect to see a proper Vary for the response. Which cases would it be reasonable to expect varnish to make sure that a proper Vary: Accept-Encoding is sent? My expections are: * When the backend does support gzip and sends proper Vary, the client should get Vary: Accept-Encoding for both gzip and non-gzip reqs. This works today. * When the backend does support gzip, but doesn't send Vary on non-gzip requests. Varnish should fix the Vary header as part of the gzip support. I don't believe this works today. * When the backend doesn't support gzip, but beresp.do_gzip is set, varnish should add the proper Vary as part of the gzip support. This doesn't work today. Am I being unreasonable in my expectations? Are there scenarios I haven't covered? -- Andreas _______________________________________________ varnish-dev mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev
