指定Vary: Accept-Encoding标头可告诉代理服务器缓存两种版本的资源:压缩和非压缩,这有助于避免一些公共代理不能正确地检测Content-Encoding标头的问题。
由于一些公共代理的错误,可能会导致你的压缩版本资源被服务到不支持压缩的用户。指定Vary: Accept-Encoding标头可指示代理来存储压缩和非压缩的版本资源。
指定标头“Vary:Accept-Encoding”的重要意义
指定“Vary: Accept-Encoding”标头,用一句话来说明它的意义,就是“告诉代理服务器缓存两种版本的资源:压缩和非压缩,这有助于避免一些公共代理不能正确地检测Content-Encoding标头的问题。”不过我想很多人都不理解这句话是什么意思,所以需要更详细的解释。请移步到:标头“Vary:Accept-Encoding”指定方法及其重要性分析
标头“Vary:Accept-Encoding”的指定方法
Apache/.htaccess
- <IfModule mod_headers.c>
- <FilesMatch ".(js|css|xml|gz|html)$">
- Header append Vary: Accept-Encoding
- </FilesMatch>
- </IfModule>
Nginx
- gzip_vary on
IIS
在web.config里加上如下配置,web.config位置在:%windir%\Microsoft.NET\Framework\.net版本号\CONFIG\Web.config 。
- <system.webServer>
- <httpProtocol>
- <customHeaders>
- <remove name="Vary"></remove>
- <add name="Vary" value="Accept-Encoding"></add>
- </customHeaders>
- </httpProtocol>
- </system.webServer>