Questions tagged «cache-control»

1
为什么要缓存此响应?
我有一个客户端,其站点的index.html当前返回以下标头: 接受范围:字节 连接:保持活动 内容编码:gzip 内容长度:3658 内容类型:text / html 日期:2013年10月10日星期四,格林尼治标准时间 ETag:“ 4aa95e1-2ed2-4e721324728b7” 保持活动:超时= 5,最大= 100 上次修改时间:2013年9月24日,星期二,格林尼治标准时间 伺服器:Apache / 2.2.22 变化:接受编码,用户代理 我显然会建议他们增加Expires或Cache-Control适当的,但我很困惑:Chrome浏览器缓存它从缓存中(不发送一个请求这个资源,并使用在所有),甚至几个小时后(例如,它重用副本它于昨天上午8:30在下午1:30缓存)。我可以在Chrome控制台的“网络”标签中清楚地看到这一点,该页面显示了请求,并且200 (OK)在“ 状态”列和(from cache)“ 大小”列中显示为灰色。(我尚未更改Chrome的缓存默认设置。) 我意识到,该规范允许用户代理在标题的方向上做出自己的决定。那是这里发生的事吗?Chrome浏览器看到它是在几天前进行了最后一次修改的,可以随意使用一天之久的版本吗?还是我想念的东西?

4
版本CSS和JS URL的最佳方法是什么?
根据Yahoo广为宣传的“加速站点最佳实践”,我们使用远期缓存过期标头提供来自CDN的静态内容。当然,我们有时需要更新这些“静态”文件,因此,我们目前在文件名中添加了一个中缀版本(基于文件内容的SHA1总和)。从而: styles.min.css 成为: styles.min.abcd1234.css 但是,管理版本控制的文件可能会变得乏味,我想知道GET参数表示法是否会越来越好: styles.min.css?v=abcd1234 您使用哪个?为什么?我应该考虑与浏览器或代理/缓存相关的注意事项吗?

2
高速缓存控制的硬性和快速性规则是什么?
坦白:我维护的网站对缓存控制有不同的规则,主要是基于服务器的默认配置,随后是Page Speed&Y-Slow Firefox插件的建议以及Google Speed Tracer中的Network Resources视图。Cache-Control设置为私有/公共,具体取决于它们说的是什么,仅当Y-Slow提示有问题并且在为Amazon手动gzip文件压缩时似乎需要Vary-Accept-Encoding时,才会修补ETag的/最后修改的标头CloudFront。 当通读有关不同选项及其所做内容的材料时,似乎存在相互矛盾的信息,有关代理损坏的规则和货物偏爱的配置。上面提到的分析工具提供的任何官方信息都很难访问,因为它单独处理每个主题而不是作为一个统一的策略来处理(因此,没有技术的交叉引用)。 例如,如果速度分析工具旨在帮助缓存,那么将速度分析工具对具有ETag的网站和没有ETag的网站的评级相同就没有意义。 平台不可知的高速缓存控制策略有哪些硬性规则和快速规则? 编辑: 一个链接通过杰夫·阿特伍德的文章中精湛的深入解释缓存。 为了记录在案,这是硬性规定和快速规定: 如果使用GZIP等压缩文件 -使用“ cache-control:private”作为代理可能会将压缩版本返回给不支持该压缩版本的客户端(尽管浏览器缓存将保存以此方式标记的文件)。还请记住包括一个“ Vary:Accept-Encoding”,以表示它是可压缩的。 将Last-Modified与ETag结合使用 -皮带和花括号的用法可同时提供两个验证器,而ETag基于文件内容,而不是仅基于修改时间,同时使用了所有基础。注意: 由于某种原因,AOL的PageTest对ETag采取了彻底解决方案。如果您在多台服务器上使用Apache来承载相同的内容,那么除非您确实使用相同的实时文件系统,否则从FileETag指令(即“ FileETag MTime Size”)中排除隐式声明的inode即可将其从ETag中移除。 尽可能使用“缓存控制:公共” -这意味着即使页面的其余部分需要HTTP身份验证,代理服务器(和浏览器缓存)也将返回您的内容。

1
如果不设置缓存控制标头,会发生什么?
如果不设置cache-control标题会怎样?HTTP是否指定客户端应遵循的默认行为,还是由客户端决定? 在Chrome浏览器中,我看到了一些Javascript请求,其中没有cache-control标头显示为200 (from disk cache)。Chrome是否正在对此进行优化? 在IE中,我看到它显示为304 (not modified)。 我如何更好地理解这一点?

2
为什么将“ 29030400”秒用作缓存过期的通用值?
我注意到在静态文件的Expires指令中经常使用29030400。 Google建议最多将此类文件缓存1年(至少1个月)。 我进行了数学运算:29030400秒= 336天 那大约是1年减去1个月,因此它恰好在建议的时间间隔内,但是问题是,为什么正是29030400?而不是31536000秒= 365天?只是盲目的复制/粘贴过去随机设置的值?还是有其他解释?

2
Google Pagespeed告诉我在已启用缓存的情况下利用浏览器缓存
Google Pagespeed Insights仍然告诉我,我必须启用浏览器缓存,但是我不了解自己缺少的内容。我正在使用cloudflare启用了优化功能。我在chrome开发人员工具中看到此HTTP标头: 缓存控制:公共,最大年龄= 86400 因此似乎已经启用了缓存!我还加了 <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" /> </staticContent> 在我的web.config文件中。 我不知道该怎么办 这是Google给我的错误:
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.