首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >accept-encoding意味着什么?

accept-encoding意味着什么?
EN

Stack Overflow用户
提问于 2011-10-21 19:33:37
回答 2查看 38.5K关注 0票数 52

google页面加速插件告诉我:

代码语言:javascript
运行
复制
The following publicly cacheable, compressible resources should have a "Vary: Accept-Encoding" header:
//some .js and .css files

我不明白这是什么意思。我已经像这样压缩了这些文件:

代码语言:javascript
运行
复制
if (encodings.Contains("gzip") || encodings == "*")
{
    app.Response.Filter = new GZipStream(baseStream, CompressionMode.Compress);
    app.Response.AppendHeader("Content-Encoding", "gzip");
}

这一切似乎都奏效了。为什么有必要使用Vary: Accept-Encoding

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-21 19:42:32

它允许缓存根据浏览器是否请求GZIP编码来提供页面的不同缓存版本。如果在所指示的标头中存在任何变化,则variation标头指示高速缓存存储页面的不同版本。

目前的情况是,缓存中将有页面的一个(可能是压缩的)副本。假设它是压缩版本:如果有人请求资源但不支持gzip编码,他们将得到错误的内容。

票数 31
EN

Stack Overflow用户

发布于 2011-10-21 19:42:00

Vary: Accept-Encoding通知服务器关于缓存所请求资源的表示的行为。如果接收到对先前缓存的资源的新请求,则将从缓存中提供该请求,除非新请求的Accept-Encoding报头与先前缓存的表示形式不同,此时该请求将被视为新请求,并且不会从缓存中提供服务。

**编辑**正如spender指出的那样--如果你从缓存中提供一个压缩文件,而客户端不接受你的压缩机制,他们会得到一个垃圾页面,所以这是必要的。不过,通过常规测试,您不一定会注意到其中的差异。

请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7848796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档