Http Etag和Last-Modified

http request header
If-Modified-Since: Wed, 20 Jun 2007 18:29:03 GMT
If-None-Match: "-1"

 

http response header
Last-Modified: Wed, 20 Jun 2007 18:33:36 GMT
Etag: "经常是inodb编号"

304 not modified,代表资源没有变化不需要重新下载
If-Modified-Since对应于Last-Modified
If-None-Match对应于Etag

 

注意:
如果设置了response.setHeader("Cache-Control","no-cache"),那么在再次请求时不会发送以上两个header,因为内容根本没缓存。

浏览器中的图片等资源是在浏览器分离的线程中执行获取的,因此主页面设置的response.setHeader("Cache-Control","no-cache")对其他线程获取的资源没有影响,也就是资源线程的http response仍然会缓存资源,再次请求时也会发送相应的两个http header。

 

另外,对于打开新窗口、浏览器地址栏回车、F5刷新、浏览器后退按钮这四种方式打开网页,浏览器会进行不同的处理,可能发送以上两个header,也可能不发送。具体见:http://www.laruence.com/2010/03/05/1332.html


参考:
http://www.oreillynet.com/onjava/blog/2004/07/optimizing_http_downloads_in_j.html
http://www.infoq.com/cn/articles/etags
http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值