loading...

HTTP的Etag标记

作者:kimi 发布时间:May 6, 2008 分类:Linux

最近在测试Varnish的过程中,发现了Etag这个HTTP状态标志,发现Etag和Last-Modified配合使用,可以在大负载下对于减轻服务器压力有不小的作用。

什么是”Etag”
HTTP 协议规格说明定义ETag为“被请求变量的实体值” 。另一种说法是,ETag是一个可以与Web资源关联的记号。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端,以下是服务器端返回的格式:
ETag: "50b1c1d4f775c61:df3"
客户端的查询更新格式是这样的:
If-None-Match: W/"50b1c1d4f775c61:df3"
如果ETag没改变,则返回状态304然后不返回文件具体内容。

客户端缓存的合理利用将能够减轻高负载服务器的压力
摘录别人的一段说明文字:很多人首先会想从服务器缓存方面着手对程序进行优化,许多不同的服务器缓存方式都有他们自己的特点。但客户端缓存往往却被人们忽略了,即使服务器的缓存让你的页面访问起来非常地快。但她依然需要依赖浏览器下载并输出,而当你加入客户端缓存时,会给你带来非常多的好处。因为她可以对站点中访问最频繁的页进行缓存充分地提高 Web 服务器的吞吐量(通常以每秒的请求数计算)以提升应用程序性能和可伸缩性。