美文网首页工作生活
胖飚帮学:浏览器缓存机制

胖飚帮学:浏览器缓存机制

作者: 失语失芯不失梦 | 来源:发表于2019-07-01 19:01 被阅读0次

浏览器缓存机制 

浏览器在加载资源的时候,会根据http请求头来判断是否命中强缓存:如果命中则从本地缓存获取资源,请求不会发送到服务器;如果没有命中强缓存,则会发送请求到服务器,然后服务器根据请求头中参数来判断是否命中协商缓存:若命中则返回告知客户端从缓存中获取资源,否则将最新的资源返回。 

强缓存与协商缓存的共同点是:如果命中都会从缓存中获取资源,而不从服务端获取。区别在于:强缓存不会发送请求到服务器,而协商缓存会发送请求。

强缓存原理、管理、应用

强缓存原理:第一次请求资源时, http1.0中,服务端返回 Expires 设置过期时间(绝对时间)。http1.1中,服务端返回 Cache-Control 设置缓存有效时间(相对时间),浏览器连同资源缓存到本地。 再次请求资源时,客户端从缓存中找到资源,比对当前时间是否小于Expires的时间(1.0),或者与上次请求的时间做差值看是否在Cache-Control的有效时间内(1.1),如果在有效期内则从缓存中获取,否则从服务端从新请求。重新请求之后,服务端会更新 Expires/Cache-Control。 两者比较,后者更为有效安全,因为客户端时间和服务端时间可能会有较大差距。当两者同时存在时,Cache-Control优先级更高。

强缓存的设置: 第一种:通过代码方式在服务器返回的响应头中添加Expires或Cache-Control;第二种:配置服务器,在响应资源时统一添加Expires或Cache-Control。

强缓存的应用: 强缓存是前端性能优化最有力的工具,对于有大量静态资源的网页,一定要利用强缓存,提高响应速度。

协商缓存原理、管理、应用

协商缓存是根据 Last-Modified/If-Modified-Since ETag/If-None-Match 两对header来控制工作的。

Last-Modified/If-Modified-Since原理: 浏览器首次从服务端获取资源时,服务端会在返回头中添加Last-Modified来记录资源上次修改时间;如果下次浏览器未命中强缓存时,请求服务端的时候会在请求头中通过If-Modified-Since将之前服务端返回的资源更新时间传入,然后服务端进行判断文件是否修改,若无修改则返回304,告知客户端从缓存获取资源,否则返回新的资源并更新Last-Modified值。

由于Last-Modified记录的是文件修改时间,但有时资源内容修改,最后修改时间却不会改变,所以就会影响协商缓存的可靠性,此时就有了ETag/If-None-Macth的产生。

ETag/If-None-Match原理: 浏览器首次从服务端获取资源时,服务端会在返回头中添加ETag来标记资源的唯一标识字符串(通过算法实现,内容只要改变,唯一标识就会改变);如果下次浏览器未命中强缓存时,请求服务端时会在请求头中通过If-None-Match将之前服务端返回的资源标识传入,然后服务端进行判断文件是否修改,若无修改则返回304,告知客户端从缓存获取资源,否则返回新的资源并更新ETag值。

相关文章

  • 胖飚帮学:浏览器缓存机制

    浏览器缓存机制 浏览器在加载资源的时候,会根据http请求头来判断是否命中强缓存:如果命中则从本地缓存获取资源,请...

  • 【转载】彻底理解浏览器的Http缓存机制

    转自:彻底理解浏览器的缓存机制(http缓存机制) 概述 浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是...

  • 浏览器缓存机制

    浏览器缓存机制:浏览器缓存机制,其实主要就是http协议定义的缓存机制(如:Expires;Cache-contr...

  • 让我们学习了解浏览器的缓存,提高页面的流畅度

    浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是根据HTTP报文的缓存标识进行的,所以在分析浏览器缓存机制...

  • Web浏览器的缓存机制

    原文转载【Web缓存机制系列】2 – Web浏览器的缓存机制 浏览器端的缓存规则 对于浏览器端的缓存来讲,这些规则...

  • 2020-08-14 彻底理解浏览器的Http缓存机制

    彻底理解浏览器的Http缓存机制 概述 浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是根据HTTP报文的...

  • http的缓存机制(个人笔记)

    本文来源:彻底理解浏览器的Http缓存机制 概述 浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是根据HT...

  • nginx 缓存(11)

    介绍nginx是如何设置缓存之前,我们还是先聊聊web浏览器的缓存机制。 1.浏览器缓存 浏览器的缓存机制也就是我...

  • http 缓存机制

    概述 浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是根据HTTP报文的缓存标识进行的,所以在分析浏览器缓...

  • 浏览器缓存(http缓存)

    浏览器缓存有两种:强制缓存和协商缓存 浏览器缓存机制 浏览器发送请求,会先从浏览器缓存中查找【请求结果】和【缓存标...

网友评论

    本文标题:胖飚帮学:浏览器缓存机制

    本文链接:https://www.haomeiwen.com/subject/cumncctx.html