资讯专栏INFORMATION COLUMN

浏览器缓存解析

TigerChain / 2584人阅读

摘要:告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。二协商缓存阶段基于客户端和服务器端的协商缓存机制需要与共同使用,如果配置了且没有过期,就不会使用过期了之后,才会使用。

浏览器缓存

浏览器缓存分为几个阶段:

浏览器缓存阶段 一.强制缓存阶段

1.cache-control: 决定了浏览器端和服务器端缓存的策略,可以出现在响应头response header中,或者 请求头 request header中

max-age:指定缓存的最大有效时间,eg:cache-control:max-age=315360000,注意与
expires做区分(与cache-control平级),max-age优先级高于 expires,这个属性时HTTP1.1中新增的属性

s-maxage:指定public的缓存,缓存设备有很多,不仅仅浏览器是缓存设备,在整个网络中,可能会存在代理服务器,CDN属于public缓存设备,因为可以多用户访问并读取信息;什么是private缓存呢,指的是只是你个人访问的设备,浏览器就属于private缓存设备,eg:s-maxage=31536000;他的优先级高于max-age,只能设定public的缓存设备

private

public

no-cache:错误理解:不使用缓存;no-cache指的是不管本地是否设置了max-age(即忽略本地浏览器端的缓存策略),都要向服务器端发送请求,由服务器端来判断缓存情况

no-store:完全不使用任何的缓存策略,不管是服务器端还是浏览器端的

2.expires:Thu, 14 Mar 2019 17:29:17 GMT,这个属性时HTTP1.0中配置,

缓存过期时间,用来指定资源到期时间,是服务器端具体的时间点。

告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。

二.协商缓存阶段

基于客户端和服务器端的协商缓存机制

1.last-modified

last-modified - response header
if-modified-since - request header

需要与cache-control共同使用,如果配置了max-age 且没有过期,就不会使用last-modified;过期了之后,才会使用last-modified。

last-modified 缺点:

服务器端不能精确获取 文件变更时间时

文件修改时间改了,文件内容没有变

以秒为单位,如果是ms内修改了文件,就体现不出来

2.ETag

文档内容的hash值
ETag ---- response header
if-None-Match ----request header

etag优先级高于last-modified

状态码解析

200(from cache): 浏览器端缓存,cache-control:max-age=315360000
或者expires起作用

304: 服务器端缓存,last-modified 或者 etag 起作用

200:浏览器端没有缓存,或者服务器端缓存失效,或者用户点击了ctrl+F5 浏览器直接从服务器端下载最新的数据

注意:Chrome浏览器,手动点击刷新按钮都会 在请求头中,添加 chche-control:max-age=0,这样就肯定不会使用浏览器端的缓存!

更加详细,请参考:缓存详解

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/62071.html

相关文章

  • DNS域名解析

    整个过程大体描述如下,其中前两个步骤是在本机完成的,后8个步骤涉及到真正的域名解析服务器: 浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析...

    PrototypeZ 评论0 收藏0
  • CDN小结

    摘要:二目的是一个经策略性部署的整体系统,从技术上全面解决由于网络带宽小用户访问量大网点分布不均而产生的用户访问网站响应速度慢的根本原因。 一、CDN全称:  Content Delivery Network或Content Ddistribute Network,即内容分发网络。   二、目的:  CDN是一个经策略性部署的整体系统,从技术上全面解决由于网络带宽小、用户访问量大、网点分布不...

    cod7ce 评论0 收藏0
  • 用户访问web服务器过程精解

    摘要:文件如果在本机中仍然无法完成域名的解析,则会真正请求域名服务器来解析这个域名了。若没有命中,就直接到域名服务器请求解析。是国际顶级域名服务器,如等,全球只有台左右。本地域名服务器再向上一步返回的服务器发送请求。 博文参考 http://www.hackdig.com/ http://www.hackdig.com/07/hack-47475.htm http://www.cnblogs...

    Jingbin_ 评论0 收藏0
  • 用户访问web服务器过程精解

    摘要:文件如果在本机中仍然无法完成域名的解析,则会真正请求域名服务器来解析这个域名了。若没有命中,就直接到域名服务器请求解析。是国际顶级域名服务器,如等,全球只有台左右。本地域名服务器再向上一步返回的服务器发送请求。 博文参考 http://www.hackdig.com/ http://www.hackdig.com/07/hack-47475.htm http://www.cnblogs...

    GraphQuery 评论0 收藏0
  • 用户访问web服务器过程精解

    摘要:文件如果在本机中仍然无法完成域名的解析,则会真正请求域名服务器来解析这个域名了。若没有命中,就直接到域名服务器请求解析。是国际顶级域名服务器,如等,全球只有台左右。本地域名服务器再向上一步返回的服务器发送请求。 博文参考 http://www.hackdig.com/ http://www.hackdig.com/07/hack-47475.htm http://www.cnblogs...

    sarva 评论0 收藏0
  • 用户访问web服务器过程精解

    摘要:文件如果在本机中仍然无法完成域名的解析,则会真正请求域名服务器来解析这个域名了。若没有命中,就直接到域名服务器请求解析。是国际顶级域名服务器,如等,全球只有台左右。本地域名服务器再向上一步返回的服务器发送请求。 博文参考 http://www.hackdig.com/ http://www.hackdig.com/07/hack-47475.htm http://www.cnblogs...

    array_huang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<