Optimization 配置电子标签

Optimization 配置电子标签,optimization,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/ea

我使用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网站优化指南,但我还不能真正理解电子标签的含义,实体标签是HTTP协议的一项功能,请参见

实体标记用于比较同一实体中的两个或多个实体 请求的资源。HTTP/1.1在ETag中使用实体标记(第 14.19),如果匹配(第14.24节),如果不匹配(第14.26节),以及 如果范围(第14.27节)标题字段。如何定义它们 如第13.3.3节所述,使用和比较缓存验证器。一 实体标记由不透明的带引号的字符串组成,可能前缀为 弱点指标


把电子标签看作是一种散列。当浏览器请求某个资源时,它会发送它缓存的文件版本的电子标签。如果服务器确定文件足够相似(电子标签有“强”和“弱”两个版本,因此并不总是简单的比较检查),它将向客户端发送“304未修改”响应,而不是资源本身。这可以转化为速度提升,因为它可以防止带宽浪费在未更改的文件上

电子标签通过HTTP头发送

这里有一个很好的电子标签示例(以及如何在Apache中禁用它们):

直接找到来源,YSlow提供了所有建议的指导,包括如何使用。

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


正如ShZ所说,基本上是一个散列,对于一个文件来说应该是唯一的或几乎是唯一的。

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


删除它们的方式取决于您使用的web服务器。对于IIS 7,它可以通过一个简单的HttpModule来完成。

展示了如何为IIS禁用etag,并展示了如何为Apache禁用etag。

假设您正在运行Apache

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

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

FileETag None

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

通过删除ETag头,您可以禁用缓存和浏览器,使其无法验证文件,因此它们被迫依赖于您的缓存控制和Expires头

将这些行添加到
.htaccess

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

标题未设置ETag
FileTag无

如果您发布您可以更改的内容,例如您是否可以管理您的服务器、它是什么操作系统以及您在站点上使用的任何编程语言,您可能会得到更好的答案。没有这些信息,没有人能告诉你如何更改设置,你只能得到一般信息。在.htaccess中输入“FileETag MTime Size”对我的情况没有帮助。但是,将其放入httpd.conf并重新启动Apache确实有效。下面是一个更详细的示例:httpd.conf是一个更好的解决方案,但是如果您有AllowOverride,那么.htaccess应该可以正常工作。如果您有多个服务器,为什么要禁用ETag?如果您为ETag指定了您提到的第一个配置,那么生成ETag时将不考虑inode编号,因此即使对于多个服务器,它也是安全的。对于Apache,我必须首先打开mod_头,并通过运行以下命令
a2enmod头
Correct,Header指令是mod_headers模块的一部分,因此需要首先启用该模块。对于Apache上的用户,AskApache.com在不添加任何重定向的情况下更改了他们的站点结构。新的URL是:太棒了,谢谢Michael,我更新了我答案中的链接。实际帖子中应该包含一个最小的答案。链接可能会中断。为什么一个遥远的到期日是一个更好的方法?在什么情况下?AskApache.com在没有添加任何重定向的情况下更改了其网站结构。新网址为: