Etag缓存和If-None-Match缓存

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

更多精彩内容请看 web前端中文站
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缓存

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

0
如无特殊说明,文章均为原作者原创,转载请注明出处

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论

Hi,请填写昵称和邮箱!

取消评论
代码 贴图 加粗 链接 删除线 签到