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

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

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

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

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

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

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

强缓存(强制缓存):

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

协商缓存:

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

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

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

总结:

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

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

相关推荐
ofoxcoding6 小时前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai
NeilYuen9 小时前
gRPC结合FAISS构建AI助手语义缓存模块(一):设计
人工智能·缓存·faiss
taocarts_bidfans10 小时前
反向海淘跨境缓存架构优化:taocarts Redis分层缓存实战技术
redis·缓存·架构·反向海淘·taocarts
退休倒计时11 小时前
【每日一题】LeetCode 146. LRU 缓存 TypeScript
算法·leetcode·缓存·typescript
炘爚12 小时前
Linux——Redis
数据库·redis·缓存
小挪号底迪滴13 小时前
Redis 和 MySQL 数据不一致怎么办?缓存更新策略实战
redis·mysql·缓存
闪电悠米13 小时前
黑马点评-Redis ZSet-实现关注 Feed 流
服务器·网络·数据库·redis·缓存·junit·lua
Saniffer_SH1 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
AC赳赳老秦1 天前
OpenClaw + 飞书多维表格:自动同步数据、生成统计图表、触发自动化任务
java·大数据·python·缓存·自动化·deepseek·openclaw