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

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

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

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

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

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

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

强缓存(强制缓存):

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

协商缓存:

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

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

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

总结:

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

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

相关推荐
難釋懷8 小时前
缓存同步
spring·缓存·mybatis
呼啦啦56110 小时前
C++vector
java·c++·缓存
刘~浪地球10 小时前
数据库与缓存--分库分表实战指南
网络·数据库·缓存
深蓝电商API12 小时前
Redis在海淘场景下的缓存策略设计
数据库·redis·缓存·海淘
杰克尼12 小时前
redis(day04-达人探店)
数据库·redis·缓存
一只小bit15 小时前
Redis 初步入门教程:简单介绍和安装配置
数据库·redis·缓存
juniperhan15 小时前
Flink 系列第 3 篇:核心概念精讲|分布式缓存 + 重启策略 + 并行度 底层原理 + 代码实战 + 生产规范
大数据·分布式·缓存·flink
難釋懷16 小时前
Nginx实现本地缓存查询
nginx·spring·缓存
刘~浪地球16 小时前
数据库与缓存--Redis 集群架构与优化
数据库·redis·缓存
IT枫斗者16 小时前
AI Agent 设计模式全景解析:从单体智能到分布式协作的架构演进
人工智能·redis·分布式·算法·spring·缓存·设计模式