美文网首页
浏览器缓存资源的方式

浏览器缓存资源的方式

作者: 风雅欢乐 | 来源:发表于2020-04-29 20:15 被阅读0次

浏览器缓存是指浏览器在本地磁盘对用户最近请求过的文档进行存储,当用户再次访问同一页面、请求同一资源时,浏览器就可以直接从本地磁盘中加载。这样的好处是:减少冗余数据传输、减轻服务器负担、加快客户端加载网页的速度。

浏览器缓存分为强制缓存协商缓存

  1. 强制缓存

HTTP响应头中,Cache-Control(HTTP 1.1)和Expires(HTTP 1.0)字段都表示对本资源启动强制缓存,Cache-Control优先级更高、使用更广泛。

Cache-Control: max-age=3600 (单位:秒)

Cache-Control常用值

  • no-cache:不使用本地缓存,需使用协商缓存
  • no-store: 本资源禁止浏览器缓存数据
  • public:可以被所有用户缓存,包括终端用户和CDN等中间代理服务器
  • private: 只能被终端用户的浏览器缓存

Expires字段规定过期时间,再次加载资源时,如果在过期时间内,则命中强制缓存。

  1. 协商缓存

客户端先从本地缓存中获得一个缓存标识,带着这个标识向服务器发送验证请求。如果缓存没有失效,服务端返回304,此时直接从本地缓存中获取数据;如果缓存失效,则从服务端获取数据。

协商缓存标识: Last-Modified和Etag

Last-Modified: 资源被服务器返回时,响应头中此标识会记录资源在浏览器上的最后修改时间。浏览器再次请求时,会将上次Last-Modified的值作为请求头If-Modified-Since头的值发送,服务器收到后,会查看最后修改时间以后,资源是否被改动过,如果没改动就返回304,否则返回状态码200以及整个资源。

Etag: 资源被服务器返回时,服务器通过算法生成针对这个资源的唯一标识作为Etag的值返回给浏览器。下次再次请求时,浏览器将上次的Etag值作为这个请求头的值发送给服务器。服务器通过这个标识检测资源是否被修改过,如果没有改动,返回304,否则返回200及整个资源。

Last-Modified的时间单位是秒,而Etag每次改变都能确保精度;性能上Etag因为需要算法计算出一个hash值,因此差于Last-Modified。
优先级上,服务器校验资源新鲜度优先考虑Etag。

相关文章

  • Web前端基础篇-HTML5-07-浏览器缓存机制

    缓存是性能优化的方式之一,浏览器缓存可以减少请求次数,减少带宽,缩短请求资源的距离,那么今天我们就来聊聊浏览器缓存...

  • http缓存过程

    注:http 缓存只能缓存 get 方式请求的资源浏览器缓存分 强制缓存 和 协商缓存 ,分别使用的字段前者是Ex...

  • 浏览器缓存机制

    浏览器缓存分为强缓存和协商缓存。 强缓存 浏览器加载资源时,会先根据本地缓存资源 header 中的信息(expi...

  • 缓存、cookie、token、session、localSto

    一、缓存分类 服务器端缓存(CDN缓存) 客户端缓存(浏览器缓存); 二、浏览器缓存 强缓存:浏览器在加载资源时,...

  • 浏览器缓存问题

    1. 浏览器缓存基本类型 强缓存浏览器加载资源时,会先根据本地缓存资源的 header 中的 Expire 和 ...

  • 2021-01-31 缓存

    浏览器缓存分为协商缓存和强缓存。浏览器在请求时,如果缓存中存在这个资源,并且这个资源以及缓存标识没有失效,那么直接...

  • 浏览器缓存

    浏览器缓存概述 浏览器缓存分为强缓存和协商缓存。当客户端请求某个资源时,获取缓存的流程如下: 先根据这个资源的一些...

  • 浏览器缓存机制

    浏览器缓存实际上就是对一些静态资源或是变化不多的资源进行本地缓存以加快访问速度的一种方式,善于利用缓存机制可以给网...

  • 浏览器缓存资源的方式

    浏览器缓存是指浏览器在本地磁盘对用户最近请求过的文档进行存储,当用户再次访问同一页面、请求同一资源时,浏览器就可以...

  • 从输入url到页面呈现

    1.在浏览器地址输入url2.浏览器查看缓存,如果请求资源在浏览器里有缓存并且新鲜,跳转到转码步骤 如果资源未缓存...

网友评论

      本文标题:浏览器缓存资源的方式

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