文档中心 >Google PageSpeed

指定“Vary: Accept-Encoding”标头

概览

指定Vary: Accept-Encoding标头可告诉代理服务器缓存两种版本的资源:压缩和非压缩,这有助于避免一些公共代理不能正确地检测Content-Encoding标头的问题。

由于一些公共代理的错误,可能会导致你的压缩版本资源被服务到不支持压缩的用户。指定Vary: Accept-Encoding标头可指示代理来存储压缩和非压缩的版本资源。

指定标头“Vary:Accept-Encoding”的重要意义

指定“Vary: Accept-Encoding”标头,用一句话来说明它的意义,就是“告诉代理服务器缓存两种版本的资源:压缩和非压缩,这有助于避免一些公共代理不能正确地检测Content-Encoding标头的问题。”不过我想很多人都不理解这句话是什么意思,所以需要更详细的解释。请移步到:标头“Vary:Accept-Encoding”指定方法及其重要性分析

标头“Vary:Accept-Encoding”的指定方法

Apache/.htaccess

  1. <IfModule mod_headers.c>
  2. <FilesMatch ".(js|css|xml|gz|html)$">
  3. Header append Vary: Accept-Encoding
  4. </FilesMatch>
  5. </IfModule>

Nginx

  1. gzip_vary on

IIS

web.config里加上如下配置,web.config位置在:%windir%\Microsoft.NET\Framework\.net版本号\CONFIG\Web.config 。

  1. <system.webServer>
  2. <httpProtocol>
  3. <customHeaders>
  4. <remove name="Vary"></remove>
  5. <add name="Vary" value="Accept-Encoding"></add>
  6. </customHeaders>
  7. </httpProtocol>
  8. </system.webServer>