首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

YSlow—— 配备ETag

2012-09-04 
YSlow—— 配置ETag?ETag简介实体标签(Entity Tag),是server和browser确认缓存组件的有效性的一种机制。个人

YSlow—— 配置ETag

?

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


YSlow—— 配备ETag

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


YSlow—— 配备ETag

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


YSlow—— 配备ETag

移除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

热点排行