首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

HTTP缓存,浏览器缓存

前端缓存 可分为两大类:http缓存浏览器缓存。我们今天重点讲的是http缓存,所以关于浏览器缓存大家自行去查阅。...下面这张图是前端缓存的一个大致知识点: HTTP 缓存策略分为两种: 强缓存 和 协商缓存 ,这两种缓存策略都是服务端设置 HTTP Header 来实现的 (一)强缓存缓存的意思很简单,直接从浏览器缓存过的本地进行读取...30秒,在这30秒内都是强缓存,不会去请求服务器 s-maxage:这个和上面的一样,只不过这个设置的是代理服务器的缓存时间 privte:这个表示缓存只能被客户端的浏览器缓存,不能被代理服务器缓存...public:这个表示缓存既可以被浏览器缓存,也可以被代理服务器缓存 no-store:这个属性表示不缓存,在任何情况下,都是与服务器进行最新的交互 no-cache:这个并非不缓存的意思,这个表示强制进行协商缓存...,会在下面描述 (二)协商缓存 协商缓存表示在使用本地的缓存之前,会先向服务器发一个请求,与服务器协商当前浏览器缓存是否已经过期了,如果没过期,那么就使用本地的资源,如果过期了就去请求最新资源。

77750

浏览器缓存

HTTP header 缓存工作原理 浏览器发起请求的时候,根据请求头的 express 和 cache-control 来判断是否命中强缓存,如果是,怎直接从缓存读取资源,不会发起请求。...如果没有命中强缓存浏览器会发起一个请求到服务端,并通过 last-modified If-modified-since 和 etag if-none-match 判断资源是否命中协商缓存,如果命中,...如果没有命中缓存,则发起请求,直接从服务器加载资源。...cookie:4kb,可以手动设置过期时间 localStorage:5M,不手动清除一直存在,可以跨标签访问 sessionStorage:5M,不可以跨标签访问,窗口回话结束自己清除 indexDB...:浏览器数据库,无限容量,除非手动清除,否则一直存在 webSQL:关系数据库,废弃

76210

浏览器缓存

浏览器访问服务器端,服务器给予响应时,服务器会根据需求/场景在响应头里告知浏览器,将以下数据缓存下来:把这次请求得到的响应体缓存到本地文件中标记这次请求的请求方法和请求路径根据服务器返回值,标记缓存(...过期)时间记录服务器这次响应时间,格式为格林威治时间标记录服务器给予的资源编号标记录资源的上一次修改时间,格式为格林威治时间浏览器再次请求时,会优先去缓存里查找,有没有命中的缓存,没有的话,即立即请求...相比之下,Expires不如Cache-COntrol准确,因为Expires是截止到xxxx-xx-xx xx:xx:xx失效,无法保证浏览器和服务器的时间是同步的,所以相对不准确。...可以理解为,没有强缓存,但是会有协商缓存协商缓存如果设置了no-cache,以及max-age(max-age=0为立即过期)过期了,这么着就命中了协商缓存,此时浏览器向服务器端请求,服务器端返回304...,即缓存有效,使用缓存数据;如果返回200,即缓存失效,使用服务器端最新数据除此之外,两者还有以下一些区别:强缓存其实更多的发生在浏览器端,而 协商缓存更多的在服务器端在浏览器强制刷新的情况下,强缓存不会生效

35440

浏览器缓存

响应头中控制缓存的有两个字段pragma、Expires和Cache-Control Expires 到期时间(相对服务器来说)支持时间GTM格式(2020-08-04T16:00:00.000Z)。”...这种方式存在一个问题,客户端和服务端的时间可能会不一致 Cache-Control “Cache-Control”: “max-age=10” 表示该资源有效缓存时间为10秒。...Last-Modified(最后修改时间) Last-Modified表示为资源最后一次修改时间,服务端会通过增加Last-Modified响应头来作为缓存标识符, 通常取服务端资源修改的最后时间作为值...,在使用缓存前,不管缓存资源是否过期了,都必须进行校验 客户端提醒缓存服务器,在使用缓存前,不管缓存资源是否过期了,都必须进行校验 max-age=[秒] 秒 如果缓存资源的缓存时间值小于指定的时间值,...则客户端接收缓存资源(如果值为0,缓存服务器通常需要将请求转发给源服务器进行响应,不使用缓存) 在指定时间内,缓存服务器不再对资源的有效性进行确认,可以使用 no-store 无 暗示请求报文中可能含有机密信息

71030

浏览器缓存

浏览器缓存分为强缓存和协商缓存。...强制刷新⽹⻚时,直接从服务器加载,跳过强缓存和协商缓存; 当 f5 刷新⽹⻚时,跳过强缓存,但是会检查协商缓存; 强缓存缓存 表示在缓存期间不需要请求,state code 为 200, 有两种实现方式...:Expires 和 Cache-Control Expires (该字段是 http1.0 时的规范,值为⼀个绝对时间的 GMT 格式的时间字符 串,代表缓存资源的过期时间) Cache-Control...协商缓存需要客户端和服务端共同实现,有两种实现方式:Last-Modified 和 If-Modifien-Since Last-Modified (值为资源最后更新时间,随服务器response返回)...If-Modified-Since (通过⽐较两个时间来判断资源在两次请求期间是否有过修改,如 果没有修改,则命中协商缓存) ETag(表示资源内容的唯⼀标识,随服务器 response 返回) If-None-Match

72120

节点缓存VS浏览器缓存

背景: CDN节点缓存策略: 可根据实际业务场景设置合理的缓存策略,比如遵循源站、遵循CDN配置的缓存时间等,可针对不同的文件,或目录等灵活设置。...在缓存时间内,CDN节点直接以缓存响应给客户端;若缓存过期,用户访问会触发节点回源校验文件是否更新。...浏览器缓存策略: 强制缓存:当浏览器向服务器发起请求时,服务器会将缓存规则放入HTTP响应报文的HTTP头中和请求结果一起返回给浏览器,控制强制缓存的字段分别是Expires和Cache-Control...协商缓存:强制缓存失效后,浏览器携带缓存标识向服务器发起请求,一般是使用 if-modified-since/Last-Modified 和 if-none-match/Etag 由服务器来决定浏览器缓存的资源是否可以使用...如下所示,该域名无浏览器缓存过期配置。在这种场景下,浏览器缓存多久取决于访问某资源时,服务器响应的Cache-Control 或Expires。

1.2K81

web浏览器缓存机制_网站利用浏览器缓存

浏览器缓存机制之一(经典缓存) 因为在接手的项目中用到过比较新的HTML5应用缓存,也用到了经典的缓存如设置max-age,Etag之类,而之前一直就是在用着没有去深究其中原理。...1.关于浏览器缓存 记得去年看《HTTP权威指南》的时候,有一章是专门讲浏览器缓存的,一年时间过得太快,逝去的时光还真是如同人群中消失的好姑娘,眼看她嫁给别人。...我这里把浏览器缓存分为经典的浏览器缓存(以下简称为经典缓存)和HTML5应用缓存这两类。...Etag:web服务器响应请求时,返回Etag头部用来告知浏览器该文档在服务器的唯一标示。apache中Etag是对文件的Inode,大小以及最后修改时间mtime进行hash后得到。...– 有些服务器无法准确判断页面最后修改时间。 – 有些服务器提供的文档会在毫秒间发生变化,而这个对服务器以秒为粒度的修改日期就不够用了。 3.用户行为与缓存 用户行为也会影响浏览器缓存机制。

83620

PHP 浏览器缓存_php缓存引擎

浏览器缓存动态内容,缓存的内容在浏览器本地,而内容由web服务器生成,任何一方都不可能完成这一系列过程,他们之间有一种沟通机制,这就是缓存协商....如何协商 当浏览器向web服务器请求内容时,服务器需要告诉浏览器那些内容可以被缓存,一旦浏览器知道某个内容可以缓存后,下次当浏览器需要请求这个内容时,它便不会直接向服务器请求完整内容,而是询问服务器是否可以使用本地的缓存...> 如用ie浏览器访问这个页面时,返回状态码200,连续多次刷新这个页面,这个页面并没有使用本地缓存,也没有向服务器作出任何表示.打开ie的和这个临时文件目录发发现,该缓存文件的”上次修改时间”为无,...浏览器并不知道这个文件的生成时间或上次修改时间,没有过期检查的依据,自然无法使用缓存. last-modified 当在动态程序添加了last-modified后,浏览器请求了该地址,再次刷新该地址会发现请求参数中携带了一个...浏览器缓存截止期 Expires告诉浏览器该内容在何时过期,暗示浏览器在该内容过期之前不需要询问服务器,而直接使用本地缓存即可.

2K30

浏览器缓存机制浅析--HTTP缓存

非HTTP协议定义缓存 浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires; Cache-control等)。...Expires的值对应一个GMT(格林尼治时间),比如“Mon, 22 Jul 2002 11:12:01 GMT”来告诉浏览器资源缓存过期时间,如果还没过该时间点则不发请求。...image.png Web服务器告诉浏览器在1981-11-19 08:52:00 这个时间点之前,可以使用缓存文件。...另外,响应报文中Expires所定义的缓存时间是相对服务器上的时间而言的,如果客户端上的时间跟服务器上的时间不一致(特别是用户修改了自己电脑的系统时间),那缓存时间可能就没啥意义了。 2....,也不包含Cache-Control/Expires的请求无法被缓存 用户行为与缓存 浏览器缓存行为还有用户的行为有关!!!

87920

浏览器缓存机制

什么是浏览器缓存 浏览器通常会将常用资源缓存在个人电脑的磁盘和内存中。 缓存是性能优化中简单高效的一种优化方式,它可以显著减少网络传输所带来的损耗。...对于一个数据请求来说,可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以在第一和第三个步骤汇总优化性能。...它只在会话(session)中存在,一旦会话结束就会被释放,并且缓存时间也短。 网上kiang来的结论: 所有的资源都能被推送,并且能够被缓存,但是Edge和Safari浏览器支持相对较差。...缓存策略 通常浏览器缓存策略分为两类:强缓存和协商缓存,并且缓存策略都是通过设置http Header字段实现的。...强缓存 主要是根据header中的expires和cache-control: expires的值是一个绝对时间的GMT格式的时间字符串。缺点是当服务器和客户端时间偏差较大是,就会导致缓存混乱。

70920

浏览器缓存机制

浏览器通过HTTP头部的字段来控制文件的缓存:要不要缓存以及缓存的过期时间。...Cache-Control/Expires Cache-Control和Expires控制文件的缓存,在缓存文件的有效时间内,浏览器直接使用本地文件,不与服务器交互。...Cache-Control的值是一个单位为秒的数字,表示缓存文件的有效时间有多少秒。 Expire的值是一个绝对时间点,表示缓存文件在某个时间点之前有效。...Ctrl+F5 强制使上面两种浏览器缓存失效: Cache-Control:no-cache Pragma:no-cache 利用浏览器缓存 理想的缓存机制应该是这样的: 缓存文件没更新,尽可能使用缓存...,不用和服务器交互; 当用户刷新时,尽可能减少浏览器和服务器之间的数据传输; 缓存文件有更新时,第一时间能使用到新的文件; 缓存的文件要保持完整性,不使用被修改过的缓存文件; 缓存的容量大小要能设置或控制

98860

浏览器缓存机制

(err){ console.log('注册失败') }) } // sw.js // 监听install事件,回调中缓存所需文件 self.addEventListener('install.../index.js']) }) ) }) // 拦截所有请求事件 // 如果缓存中已经有数据就直接用缓存,否则去请求数据 self.addEventListner('fetch',e =>{...Push cache中的缓存只能被使用一次 浏览器可以拒绝接受已经存在的资源推送 你可以给其他域名推送资源 缓存策略 ---- 通常浏览器缓存策略分为两种:强缓存和协商缓存,并且缓存策略都是通过设置...并且Expires受限于本地时间,如果修改了本地时间,可能会造成缓存失效。...那么如果没设置任何缓存策略,浏览器会怎么处理? 这时,浏览器会采用一个启发式的算法,通常会取响应头中的Date减去Last-Modified值的10%作为缓存时间

1.3K20

图解浏览器缓存

浏览器缓存,是浏览器端保存数据,用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和加快页面速度,从而提高用户体验。...; (2)Expires规定了缓存失效时间(Date为当前时间),是绝对时间。...由于Expires返回的是一个绝对时间,在服务器时间与客户端时间相差较大的时候,缓存命中不准确; Cache-Control: (1)Cache-Control是HTTP1.1的 (2)Cache-Control...1.2 强缓存的过程 强缓存浏览器直接从本地缓存中获取数据,不与服务器进行交互。...cache) 例如:请求某个图片后,当浏览器再次访问这个图片时,发现有这个图片的缓存,且缓存没过期,所以就使用缓存

4.1K476

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券