Oli*_*ver 40 c# asp.net http-headers
google page speed addon告诉我:
The following publicly cacheable, compressible resources should have a "Vary: Accept-Encoding" header:
//some .js and .css files
Run Code Online (Sandbox Code Playgroud)
我不明白这意味着什么.我已经像这样压缩了这些文件:
if (encodings.Contains("gzip") || encodings == "*")
{
app.Response.Filter = new GZipStream(baseStream, CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "gzip");
}
Run Code Online (Sandbox Code Playgroud)
这一切似乎都有效.为什么有Vary: Accept-Encoding必要?
spe*_*der 24
它允许缓存提供页面的不同缓存版本,具体取决于浏览器是否请求GZIP编码.如果指示的标题中存在任何变化,则变换标题指示高速缓存存储不同版本的页面.
事实上,在缓存中将有一个(可能是压缩的)页面副本.假设它是压缩版本:如果某人请求资源但不支持gzip编码,则会向他们提供错误的内容.
cor*_*ori 11
变化:Accept-Encoding通知服务器关于缓存所请求资源的表示的行为.如果收到对先前缓存的资源的新请求,则将从缓存提供该请求,除非新请求的Accept-Encoding标头与先前缓存的表示不同,此时该请求将被视为新请求并且将不会从缓存中提供.
**编辑**正如花钱指出 - 如果你从缓存服务压缩文件而客户端不接受你的压缩机制他们会得到一页垃圾,所以是的,这是必要的.但是,通过正常测试,您不一定会注意到这种差异.
见http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44和http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3
| 归档时间: |
|
| 查看次数: |
30926 次 |
| 最近记录: |