配置电子标签

时间:2009-12-02 08:16:26

标签: optimization

我使用Yslow作为简单的速度基准测试工具,我遇到了一个非常令人困惑的概念。电子标签

所以主要问题是:如何配置电子标签?我在yslow的成绩说:

有19个组件配置错误的ETag

* http://thehotelinventory.com/media/js/jquery.min.js
* http://thehotelinventory.com/media/js/jquery.colorbox.min.js
* http://thehotelinventory.com/media/js/easyslider.min.js
* http://thehotelinventory.com/media/js/jquery.tools.min.js
* http://thehotelinventory.com/media/js/custom.min.js
* http://thehotelinventory.com/media/js/jquery.validate.min.js
* http://thehotelinventory.com/media/images/colorbox/loading_background.png
* http://thehotelinventory.com/media/images/productheaderbg.jpg
* http://thehotelinventory.com/media/images/buttons/field-bg. //etc

我浏览了developer.yahoo.com关于网站优化的指南,但我无法真正了解电子标签的内容

8 个答案:

答案 0 :(得分:27)

This page显示了如何禁用IIS的ETag,this page显示了如何为Apache执行此操作。

答案 1 :(得分:8)

假设您正在运行Apache ......

您可以设置一个简单的ETag:

FileETag MTime Size

如果您有多台服务器,则需要禁用ETag。

FileETag None

将上述代码放入httpd.conf(如果您有权限),否则您可以将其放入.htaccess

答案 2 :(得分:7)

将E-Tags视为一种哈希。当浏览器发出资源请求时,它会发送缓存的文件版本的E-tag。如果服务器确定文件足够相似(有E-Tags的“强”和“弱”版本,所以它并不总是简单的比较检查),它将向客户端发送“304 Not Modified”响应,而不是资源本身。这转化为速度提升,因为它可以防止带宽浪费在未更改的文件上。

电子标签通过HTTP标头发送。

这里有一个很好的E-Tags工作示例(以及如何为Apache禁用它们): http://www.askapache.com/htaccess/apache-speed-etags.html

答案 3 :(得分:6)

通过删除ETag标头,您可以禁用缓存和浏览器以验证文件,因此他们不得不依赖您的Cache-Control和Expires标头。

将这些行添加到.htaccess

<ifModule mod_headers.c>   
Header unset ETag
</ifModule>
FileETag None

答案 4 :(得分:3)

直接来源,YSlow提供有关其所有建议的指导,包括如何configure ETags

答案 5 :(得分:1)

配置ETag的最佳方法是删除它们。对于静态文件,远期到期日期是一种更好的方法。

删除它们的方法取决于您使用的Web服务器。对于IIS 7,可以使用简单的HttpModule来完成。

答案 6 :(得分:0)

实体标记是HTTP协议的一项功能,请参阅http://www.ietf.org/rfc/rfc2616.txt

  

实体标签用于比较两个或多个实体      请求的资源。 HTTP / 1.1使用ETag中的实体标签(部分      14.19),If-Match(第14.24节),If-None-Match(第14.26节),和      If-Range(第14.27节)标题字段。他们是如何定义的      在第13.3.3节中使用和比较缓存验证器。一个      entity标签由一个不透明的带引号的字符串组成,可能带有前缀      弱点指标。

答案 7 :(得分:0)

维基百科是该男子最好的朋友:)

http://en.wikipedia.org/wiki/HTTP_ETag

基本上是ShZ所说的散列,它应该是唯一的或几乎是一个文件。