YSlow—— 配置ETag

标签: 性能测试 测试工具 Etag YSlow 前端优化 | 发表时间:2012-05-03 10:14 | 作者:苏青
出处:http://qa.taobao.com

ETag简介

实体标签(Entity Tag),是server和browser确认缓存组件的有效性的一种机制。 
个人觉得,如果Expires是时间戳,ETag类似版本戳。 【见下图】: 



ETag带来的问题

ETag的问题在于,通常用组件的某些属性(大小、时间、等)来构造它,这些属性对于特定的、寄宿了网站的服务器来说是唯一的。
当浏览器从一台服务器上获取了原始组件,之后,又向另外一台不同的服务器发起请求时,ETag是不会匹配的。 
对于拥有多台服务器的网站,会大大降低有效性验证的成功率。 
如果ETag不匹配,用户就不会按照ETag设计的那样收到更小更快的304响应;
相反,他们会收到普遍的200响应以及组件的所有数据。 
如果你只用一台服务器上寄宿网站,这不是什么问题,但如果使用了服务器集群
 组件下载的次数可能比必须下载的次数多得多,这将导致性能的下降。 
如果有n台服务器,ETag匹配的概率只有 1/n。 【见下图】: 



If-None-Match比If-Modified-Since具有更高的优先级。
实际上没有If-None-Match头反而会好一些。 
你会说“我的组件添加了长久的Expires头”。 
事实上,即使你的组件具有长久的Expires头,一旦用户单击Reload或者Refresh按钮,依然会产生get请求。 
【If-None-Match和If-Modified-Sinc见下图】: 

移除ETag

如何在Apache移除ETag:   http://www.askapache.com/htaccess/apache-speed-etags.html 
只需添加一行配置就能移除ETag: FileETag none 

如何在IIS移除ETag:
   http://www.bytestopshere.com/post.cfm/disable-remove-etags-on-iis-6-to-improve-performance

相关 [yslow etag] 推荐:

YSlow—— 配置ETag

- - Taobao QA Team
实体标签(Entity Tag),是server和browser确认缓存组件的有效性的一种机制.   个人觉得,如果Expires是时间戳,ETag类似版本戳. ETag的问题在于,通常用组件的某些属性(大小、时间、等)来构造它,这些属性对于特定的、寄宿了网站的服务器来说是唯一的. 当浏览器从一台服务器上获取了原始组件,之后,又向另外一台不同的服务器发起请求时,ETag是不会匹配的.

雅虎开源其网页优化工具 YSlow

- - ITeye资讯频道
雅虎日前在BSD许可协议下,开源了其YSlow产品. YSlow 是雅虎创建的一个浏览器插件,发布于2007年. YSlow 可以帮助开发者发现其站点上的很多不足,并且可以提供改进和优化建议. 过去的5年中,YSlow的代码一直由雅虎维护. 现在雅虎将这些代码开源出来,基于BSD协议. 我们鼓励你使用这些源代码,学习它或者用它来创建你自己的项目.

Expires / Cache-Control / Last-Modified / If-Modified-Since / ETag / If-None-Match 区别使用

- - 小彰
本文主要讲解 web缓存的应用.. Expires / Cache-Control / Last-Modified / If-Modified-Since / ETag / If-None-Match 的区别以及使用详解. 为了演示体现缓存的作用,先删除所有的浏览器缓存,然后以如下四种方式访问baidu网站,期间使用 Pagetest作为测试软件,这是一个搭配IE使用的软件,功能上类似HttpWatch,不过它是免费的,有关Pagetest的用法可以参考官方文章提供的 教程:.

expires与ETag控制页面缓存的优先级

- - ITeye博客
我在实际的项目中使用了Etag缓存技术,使Web界面访问速度提升了很多,现在给大家分享相关的经验. expires指令控制HTTP应答中的“Expires”和“Cache-Control”Header头部信息,启动控制页面缓存的作用. time:可以使用正数或负数. “Expires”头标的值将通过当前系统时间加上设定time值来设定.

HTTP中的ETag在移动客户端的应用

- - SegmentFault 最新的文章
绝大多数移动客户端在设计网络模块时,都会选用HTTP作为客户端和服务端通信的网络协议. 随着业务的不断发展以及用户量的持续增长,整个客户端的稳定性和性能会逐渐成为关注的焦点,其中网络的性能优化更是重中之重,本文介绍的 ETag 缓存技术,可以在缓存数据的同时做到数据的实时更新,适用于对数据实效性要求较高的业务.

正确使用Etag和Expires标识处理,可以使得页面更加有效被Cache。

- - 开心平淡对待每一天。热爱生活
  在客户端通过浏览器发出第一次请求某一个URL时,根据 HTTP 协议的规定,浏览器会向服务器传送报头(Http Request Header),服务器端响应同时记录相关属性标记(Http Reponse Header),服务器端的返回状态会是200,格式类似如下:. 客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送报头(Http Request Header),服务器端响应并记录相关记录属性标记文件没有发生改动,服务器端返回304,直接从缓存中读取:.