【浏览器】HTTP 缓存机制

HTTP 缓存机制

HTTP 缓存存储与请求关联的响应,并将存储的响应复用于后续请求。

分类

私有缓存 & 公有缓存

HTTP Caching 标准中,有两种不同类型的缓存:私有缓存和共享缓存。
私有缓存是绑定至特定客户端的缓存——通常是浏览器缓存,可以保证该响应不与其他客户端共享,因此可以存储该用户的个性化响应。必须指定Cache-Control: private
单独的 cookie 并不会使响应成为私有的,并且如果响应具有Authorization标头,则不能将其存储在私有缓存中。
共享缓存位于客户端和服务端之间,可以进一步分为代理缓存和托管缓存。

  • 代理缓存
    无需开发人员管理

    Cache-Control: no-store, no-cache, max-age=0, must-revalidate, proxy-revalidate

  • 托管缓存

    Cache-Control: no-store

Cache-Control 是一个 HTTP 缓存标头,包含一组参数以指定何时、如何缓存及缓存多长时间,用于定义客户端请求和服务器响应中浏览器的缓存策略。

强制重新验证

// 兼容性更高
Cache-Control: max-age=0, must-revalidate
// HTTP1.1 后应使用 ⬇️
Cache-Control: no-cache

不使用缓存

Cache-Control: no-store
不建议随意授予 no-store,因为你失去了 HTTP 和浏览器所拥有的许多优势,包括浏览器的后退/前进缓存。

避免重新验证

Cache-Control: max-age=31536000, immutable

immutable 明确指示不需要重新验证,因为内容永远不会改变。

强缓存 & 协商缓存

be4QXG

no-store 是缓存有效性的定义,并不影响缓存的存放位置。

缓存的存储位置:https://blog.csdn.net/zhaowanwan/article/details/111181013

Uv5eYJ

缓存主要资源很困难,因为仅使用 HTTP 缓存规范中的标准指令,在服务器上更新内容时无法主动删除缓存内容。但是,可以通过部署托管缓存(例如 CDN 或 service worker)来实现。
例如,允许通过 API 或仪表板操作清除缓存的 CDN 将通过存储主要资源并仅在服务器上发生更新时显式清除相关缓存来实现更积极的缓存策略。
如果 service worker 可以在服务器上发生更新时删除缓存 API 中的内容,它也可以这样做。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值