• 欢迎访问web前端中文站,JavaScript,CSS3,HTML5,web前端demo
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏web前端中文站吧

Etag缓存和If-None-Match缓存

JAVA web前端中文站 3年前 (2017-07-21) 1440次浏览 已收录 0个评论

合理的使用浏览器缓存,对我们服务器会减轻不少压力。一个 web 程序设计的好不好,缓存也是很重要的一部分。本文主要讲解 Etag 缓存和 If-None-Match 缓存。

更多精彩内容请看 web 前端中文站
http://www.lisa33xiaoq.net 可按 Ctrl + D 进行收藏

缓存的分类,网上众说纷纭,但是大致有以下几:浏览器缓存,CDN 缓存,数据库缓存,代理服务器缓存;但本文说的是浏览器缓存。

我们有时候有个明显的感觉就是,打开某个网站的时候,第一次会感觉慢和卡,第二次会快得多;当然,没有感觉到的话,也可能是网速比较好,感觉到了就是缓存再起作用,第一次请求的时候,下载的数据比较多,第二次往后有缓存(本地副本),就会节约响应时间。关于这两次请求,发生的过程,分别用下面两张处理流程的说明。

Etag 缓存和 If-None-Match 缓存

下面是浏览器读取缓存的处理流程。

Etag 缓存和 If-None-Match 缓存

上面两张图可以形象的说明,使用缓存和不使用缓存的区别。下面我们来学习《Etag 缓存和 If-None-Match 缓存》。

Etag 和 If-None-Match,是在缓存时间已经失效的情况下,即 Cache-Control:mac-age = 0 的情况下,会判断 Etag 和 If-None-Match 两者是否相等,ETag 是根据实体内容生成的 hash 字符串,具体是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行 Hash 后得到的,

如果 If-None-Match 返回的和 Etag 相等的话,就返回 304,可以使用缓存的资源,文件没有被改动.具体如下:Etag 缓存和 If-None-Match 缓存

【注:本文源自网络文章资源,由站长整理发布】


web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Etag 缓存和 If-None-Match 缓存
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址