什么是强缓存,什么是协商缓存

强缓存浏览器又是怎么判断它是还在缓存时间内有没有过期

强缓存主要是根据响应头中的两个字段来判断是否过期:

Expires:这是一个绝对时间,表示资源过期的具体时间点,浏览器会在这个时间之前直接使用缓存,不发请求。

Cache-Control:这是更现代和灵活的控制字段,常用的指令有 max-age,表示资源在多少秒内有效,浏览器在这个时间内直接使用缓存。

浏览器会优先使用 Cache-Control 的设置,如果没有,则使用 Expires。只要缓存未过期,浏览器就不会向服务器发起请求,直接使用本地缓存资源。

那你讲一下什么是强缓存,什么是协商缓存

强缓存(强制缓存):

浏览器在请求资源时,会先检查本地缓存是否存在且未过期,如果满足条件,直接使用缓存资源,不会向服务器发送请求。强缓存主要通过响应头中的 Cache-Control(如 max-age)和 Expires 来控制。

协商缓存:

当强缓存失效后,浏览器会向服务器发送请求,带上上次服务器返回的标识(如 Last-Modified 或 ETag),服务器根据标识判断资源是否修改过:

如果未修改,返回 304 状态码,浏览器继续使用缓存资源。

如果修改了,返回新的资源和状态码 200。

总结:

强缓存优先使用本地缓存,不发请求。

协商缓存会发请求,服务器判断是否使用缓存。

相关推荐
仍然.7 小时前
Redis---缓存
数据库·redis·缓存
骇客野人8 小时前
微服务多级缓存架构设计
缓存·微服务·架构
禾小西14 小时前
05丨Redis 内存快照:宕机后,如何实现快速恢复?
数据库·redis·缓存
李纲明16 小时前
WordPress 站点变慢:按 TTFB → 缓存 → 查询 → 前端 分层排查(含配置注意)
前端·缓存·性能优化·wordpress·后端开发
我不会插花弄玉16 小时前
4.string类型【由浅入深-redis】
数据库·redis·缓存
Riwuarua17 小时前
从近似0基础开始FPGA开发——Part.23:AXI/AXIS 数据搬运、DMA 与 DDR 缓存架构设计
缓存·fpga开发
姜鱼问生1 天前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
weixin199701080162 天前
《1688图片空间API踩坑:img.upload 与 album.* 的防盗链与CDN缓存问题》(附Python源码)
开发语言·python·缓存
hweiyu002 天前
Redis命令:BLPOP
redis·缓存