浏览器缓存与刷新

浏览器是通过Last-Modified和Expires两种机制来处理缓存的

过期头 (Expires) 机制

Expires 头部字段提供一个日期和时间,响应在该日期和时间后被认为失效。失效的缓存条目通常不会被缓存(无论是代理缓存还是用户代理缓存)返回,除非首先通过原始 服务器(或者拥有该实体的最新副本的中介缓存)验证。

就我这个俗人来点通俗一点的理解这个就是和cookies的有效期是类似的

控制文件是否有修改 Last-Modified/E-Tag 机制

Last-Modified 实体头部字段值通常用作一个缓存验证器。简单来说,如果实体值在 Last-Modified 值之后没有被更改,则认为该缓存条目有效。ETag 响应头部字段值是一个实体标记,它提供一个 “不透明” 的缓存验证器。这可能在以下几种情况下提供更可靠的验证:不方便存储修改日期;HTTP 日期值的 one-second 解决方案不够用;或者原始服务器希望避免由于使用修改日期而导致的某些冲突。

一个不太形象也不太具象的比喻就是 验证文件的“希哈值”(比喻,比喻而已,非专业的)

然后了解在浏览器中各种刷新的响应机制:

F5:不允许浏览器直接使用本地缓存,因此Last-Modified能起作用,但Expires无效

Ctrl+F5:是强制刷新,因此缓存机制失效

“转至”或地址栏里回车:正常的访问,Last-Modified和Expires都有效

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 7,701评论 0 6
  • 浏览器缓存 浏览器缓存的知识是前端工程师必须要掌握的,因为这些知识直接影响到你的页面的用户体验,影响到你的页面的加...
    _Charles阅读 3,411评论 0 3
  • 缓存一直是前端优化的主战场, 利用好缓存就成功了一半. 本篇从http请求和响应的头域入手, 让你对浏览器缓存有个...
    易斯大大阅读 4,262评论 0 1
  • 浅谈浏览器Http的缓存机制 ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ 针对浏览器的http缓存的分析也算是老生常谈了,每隔...
    meng_philip123阅读 4,664评论 0 10
  • 前言:回调函数在开发中是很实用的一块知识点。本文从原理及应用两个角度深入理解回调函数。希望在交流中得到进步,也本着...
    赵默阳阅读 13,426评论 6 27