浏览器缓存概念以及流程

作者: 漓漾li | 来源:发表于2018-11-06 10:58 被阅读4次

请求资源流程

浏览器行为的影响

  • 在浏览器输入地址,然后回车:
    会进行上述完整流程
  • f5刷新
    则忽略资源有效时间,直接带相关条件(If-None-Match ( If-Modified-Since))去请求服务器
  • ctrl+f5
    忽略资源有效时间,忽略条件,直接请求服务器资源

cache-control


缓存驱逐

驱逐算法用于将陈旧的缓存副本替换为新鲜的,注意,一个陈旧的缓存是不会直接被清除或忽略的,当客户端发起一个请求时,缓存检索到已有一个对应的陈旧缓存,则缓存会先将此请求附加一个If-None-Match头,然后发给目标服务器,以此来检查该缓存是否是依然还是算新鲜的,若服务器返回了 304 (Not Modified)(该响应不会有带有实体信息),则表示此资源副本是新鲜的,这样一来,可以节省一些带宽。若服务器通过 If-None-Match 或 If-Modified-Since判断后发现已过期,那么会带有该资源的实体内容返回。


vary

vary会指定一个字段,只有请求头中的这个字段与缓存资源中的这个字段相同时,才会返回缓存资源,否则请求服务器。
用vary头有利于内容服务的动态多样性。例如,使用Vary: User-Agent头,缓存服务器需要通过UA判断是否使用缓存的页面。如果需要区分移动端和桌面端的展示内容,利用这种方式就能避免在不同的终端展示错误的布局。


加速资源

一些长期不更新的文件,缓存时间会很长,更新它们也很有难度。在这些资源名称后面加入版本号,可以解决此问题


max-age expires

max-age 表示缓存资源的有效时间
expires 表示缓存自愿的到期时间
如果两个值同时存在,那么max-age优先级更高



etag

一般是一个文件的散列值,即文件的md5签名,用于对比显示文件是否有变化


Last-Modified

一个文件上次修改的时间


相关文章

  • 浏览器缓存概念以及流程

    请求资源流程 浏览器行为的影响 在浏览器输入地址,然后回车:会进行上述完整流程f5刷新则忽略资源有效时间,直接带相...

  • 今日弄懂—Http缓存、eventloop、闭包

    1.Http缓存 浏览器缓存分为强缓存和协商缓存,浏览器加载一个页面的简单流程如下: 浏览器先根据这个资源的htt...

  • DSBD

    1.浏览器缓存 浏览器每次发起请求,都会先在浏览器缓存中查找该请求的结果以及缓存标识 强制缓存优先于协商缓存进...

  • HTTP

    HTTP请求的流程 浏览器搜索自身的DNS缓存 搜索操作系统自身的DNS缓存(浏览器没有找到缓存或者缓存已经失效)...

  • http缓存

    http缓存分为强缓存和协商缓存。 ● 每次发起请求,浏览器都会先在浏览器缓存中查找该请求的结果以及缓存标识。● ...

  • 浏览器缓存 - 流程图

    好的链接浏览器缓存过程浏览器缓存举例 看完整理一份流程图 举个场景

  • 浏览器缓存

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

  • 浏览器缓存

    浏览器缓存分为两种,强缓存和协商缓存。浏览器缓存的流程大致如下: 强缓存 强缓存就是图中第一个判定条件。有两种方式...

  • 说一下 Http 缓存策略,有什么区别,分别解决了什么问题(口述

    1)浏览器缓存策略 浏览器每次发起请求时,先在本地缓存中查找结果以及缓存标识,根据缓存标识来判断是否使用本地缓存。...

  • 对http客户端缓存的探索

    浏览器缓存的话分为强缓存和协商缓存,类型是需要根据响应头返回的内容来决定的。 本地请求流程 合理利用浏览器缓存的优...

网友评论

    本文标题:浏览器缓存概念以及流程

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