Chrome 里 Max-age 和 ETag 的古怪逻辑
浏览:2795次 出处信息
简单的说,对于 Header 里同时有 Max-age 和 ETag 的情况,Chrome 跟所有其他浏览器的解释都是相反的
按我的理解,如果同时设置了 Max-age 和 ETag,在 Max-age 的有效期内,浏览器是不再发请求的,等过了有效期,再在请求里带上 ETag。但是在 Chrome 里反而会起反效果:如果一个网页里的图片只有 ETag,那么在 Chrome 当前 tab 页的整个生存周期,可能只会偶尔被重新读取,可如果同时包含了 ETag 和 Max-age,那么你每点一次链接,那些图片都要被重新读取(也就是比没设 Max-age 时更糟糕了)。这只有网很慢的时候才会被观察到,就像我昨晚用 ssh -D 连接一个远程 phpMyAdmin 时,每点一步操作,都会看到所有图标白上那么一两秒,然后才被读出来,直到调用了内置的 Developer Tools > Resources 时,看到一大堆图片的 304 返回时,才明白是 ETag 跟 Max-age 冲突了,索性在 Apache 里设置全局的 FileETag none
由于 Chrome 的出格,导致 ETag 更加鸡肋了,我怀疑只有极少数的 AJAX POST 才需要像以前介绍过的那样由脚本自己做 ETag。当页面被 squid/CDN 缓存了两层之后,最简单有效的方法还是设置超大 Max-age、一旦有更改就变文件名。
建议继续学习:
- Chrome和goagent的配置方法,你懂的 (阅读:15464)
- QQ上传大文件为什么这么快 (阅读:12359)
- 警惕 Chrome 的查看源代码 (View Page Source) 功能 (阅读:5822)
- webapp网页调试工具Chrome Devtools (阅读:5259)
- PHP处理Etag、lastModified和Expires (阅读:5107)
- [译]Google Chrome中的高性能网络 (阅读:5094)
- 通过使用Chrome的开发者工具来学习JavaScript (阅读:5029)
- chrome扩展应用开发教程之开发chrome应用基础 (阅读:4660)
- 如何制作chrome扩展程序 (阅读:4587)
- 如何创建google浏览器插件 (阅读:3824)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:关于使用python开发web应用的几个库总结
后一篇:状态模式和策略模式的比较 >>
文章信息
- 作者:Platinum 来源: Soulogic
- 标签: Chrome ETag Max-age
- 发布时间:2010-07-21 09:36:03
建议继续学习
近3天十大热文
- [67] Go Reflect 性能
- [67] Oracle MTS模式下 进程地址与会话信
- [67] 如何拿下简短的域名
- [61] IOS安全–浅谈关于IOS加固的几种方法
- [60] 图书馆的世界纪录
- [59] android 开发入门
- [59] 【社会化设计】自我(self)部分――欢迎区
- [56] 视觉调整-设计师 vs. 逻辑
- [49] 给自己的字体课(一)——英文字体基础
- [47] 界面设计速成