我使用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关于网站优化的指南,但我无法真正了解电子标签的内容
答案 0 :(得分:27)
答案 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)