作家
登录

浅谈浏览器缓存机制

作者: 来源: 2017-04-26 15:03:55 阅读 我要评论

缓存过时后, 持续请求该资本, 对于现代浏览器, 拥有如下两种做法:

  • 根据前次响应中的ETag_value, 主动往request header中添加If-None-Match字段. 办事器收到请求后, 拿If-None-Match字段的值与资本的ETag值进行比较, 若雷同, 则射中协商缓存, 返回304响应.
  • 根据前次响应中的Last-Modified_value, 主动往request header中添加If-Modified-Since字段. 办事器收到请求后, 拿If-Modified-Since字段的值与资本的Last-Modified值进行比较, 若雷同, 则射中协商缓存, 返回304响应.

缓存一向是前端优化的主疆场, 应用好缓存就成功了一半. 本篇大年夜http要乞降响应的头域入手, 让你对浏览器缓存有个整体的概念. 最终你会发明强缓存, 协商缓存 和 启发式缓存是如斯的简单.

导读

我不知道迁延症是有多严重, 反正客岁3月开的题, 直到本年4月才开端写.(请尽情吐槽吧)

浏览器对于请求资本, 拥有一系列成熟的缓存策略. 按照产生的时光次序分别为存储策略, 过时策略, 协商策略, 个中存储策略在收到响应后应用, 过时策略, 协商策略在发送请求前应用. 流程图如下所示.

2) 然后又修改本地时光为2017年4月18日23点26分40秒(即往后拨1分钟), 刷新页面, 发明缓存已过时, 此时浏览看从新向办事器提议了验证, 且射中了304协商缓存, 如下所示.

废话不多说, 我们先来看两张表格.

1.http header中与缓存有关的key。

key 描述 存储策略 过时策略 协商策略 Cache-Control 指定缓存机制,覆盖其它设置 ✔ ✔   Pragma http1.0字段,指定缓存机制 ✔     Expires http1.0字段,指定缓存的过不时光   ✔   Last-Modified 资本最后一次的修改时光     ✔ ETag 独一标识请求资本的字符串     ✔

2.缓存协商策略用于从新验证缓存资本是否有效, 有关的key如下

key 描述 If-Modified-Since 缓存校验字段, 值为资本最后一次的修改时光, 即前次收到的Last-Modified值 If-Unmodified-Since 同上, 处理方法与之相反 If-Match 缓存校验字段, 值为独一标识请求资本的字符串, 即前次收到的ETag值 If-None-Match 同上, 处理方法与之相反

下面我们来看下各个头域(key)的感化.

Cache-Control

浏览器缓存里, Cache-Control是金字塔顶尖的规矩, 它鄙弃一切其他设置, 只要其他设置与其抵触, 一律覆盖之.

不仅如斯, 它照样一个复合规矩, 包含多种值, 横跨 存储策略, 过时策略 两种, 同时在请求头和响应头都可设置.

语法为: “Cache-Control : cache-directive”.

假设所请求资本竽暌冠4月5日缓存, 且在4月12日过时.

当max-age 与 max-stale 和 min-fresh 同时应用时, 它们的设置互相之间自力生效, 最为保守的缓存策略老是有效. 这意味着, 如不雅max-age=10 days, max-stale=2 days, min-fresh=3 days, 那么:

  • 根据max-age的设置, 覆盖原缓存周期, 缓存资本将在4月15日掉效(5+10=15);
  • 根据max-stale的设置, 缓存过时后两天依然有效, 此时响应将返回110(Response is stale)状况码, 缓存资本将在4月14日掉效(12+2=14);
  • 根据min-fresh的设置, 至少要留有3天的新鲜期, 缓存资本将在4月9日掉效(12-3=9);

因为客户端老是采取最保守的缓存策略, 是以, 4月9日后, 对于该资本的请求将从新向办事器提议验证.

Pragma

http1.0字段, 平日设置为Pragma:no-cache, 感化同Cache-Control:no-cache. 当一个no-cache请求发送给一个不遵守HTTP/1.1的办事器时, 客户端应当包含pragma指令. 为此, 勾选☑ 上disable cache时, 浏览器主动带上了pragma字段. 如下:

 1/4    1 2 3 4 下一页 尾页

  推荐阅读

  大数据在美国 零售商如何使用人工智能进行预测分析?

当我们为一个俄罗斯大年夜型零售连锁店开辟推荐体系时,我们采取协同过滤。 导语:在美国,人工智能中的猜测分析和推荐算法正在零售范畴发挥侧重要感化。本文是36大年夜数据记者张鲁翻译自>>>详细阅读


本文标题:浅谈浏览器缓存机制

地址:http://www.17bianji.com/lsqh/34978.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)