理解HTTP响应的ETag

本文介绍了HTTP响应头中的ETag机制,解释了为何在last-modified无法满足某些场景需求时引入ETag,阐述了ETag的工作原理以及与last-modified的结合使用,最后讨论了如何利用ETag和last-modified优化Web性能。
摘要由CSDN通过智能技术生成

在使用 Google Page Analysis 和 YSlow 进行网页性能分析的时候,都会遇到

Configure entity tags (ETags)

这一项。

 

要理解ETage,首先要弄清楚 HTTP 响应头的last-modified.

 

      在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:
  Last-Modified: Fri, 12 May 2006 18:53:33 GMT
  客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 报头,询问该时间之后文件是否有被修改过:
  If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT
  如果服务器端的资源没有变化,则自动返回 HTTP 304 (Not Changed.)状态码,内容为空,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。从而保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。

 

那么,理论上根据last-modified 就可以判断该文件是否被修改过,是否使用本地缓存,将服务器端的返回状态为304。但是遇到如下情况,last-modified就无法解决了:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值