【计算机网络】强缓存和协商缓存

强缓存和协商缓存是浏览器缓存机制的两种不同策略,用于优化网页加载速度和减少网络请求。

强缓存(HTTP Cache-Control 和 Expires)

强缓存是通过在HTTP响应头中设置相关字段来实现的,它告诉浏览器在一段时间内直接使用缓存的资源,而不必再向服务器发起请求。两个主要的HTTP响应头字段用于强缓存:

  1. Cache-Control :这是一个指令,可以设置多种缓存策略,如public(允许所有缓存)、private(只允许私有缓存,如浏览器缓存,不允许代理服务器缓存)、max-age(指定缓存的最长时间,以秒为单位)等。

  2. Expires:这是一个日期时间,指定了资源的到期时间。在到期时间之前,浏览器可以从缓存中加载资源,无需再次请求。

协商缓存(HTTP ETag 和 Last-Modified)

协商缓存是通过在HTTP请求头中包含条件信息,与服务器进行"协商",以确定是否需要重新获取资源。这个机制避免了不必要的网络传输,当资源没有发生实际变化时,浏览器可以直接使用缓存。

  1. ETag (实体标签):这是服务器生成的资源唯一标识符,可以是资源内容的哈希值或其他标识。当浏览器请求资源时,服务器会在响应头中发送ETag。如果浏览器再次请求资源,它会在请求头中携带If-None-Match字段,包含上次获取的ETag。服务器会检查ETag是否与当前资源匹配,如果匹配则返回304 Not Modified,浏览器可以使用缓存。

  2. Last-Modified :这是资源的最后修改时间,服务器在响应头中发送。浏览器再次请求资源时,会在请求头中携带If-Modified-Since字段,包含上次获取的资源的最后修改时间。服务器会检查最后修改时间是否一致,如果一致则返回304 Not Modified,浏览器可以使用缓存。

强缓存和协商缓存可以结合使用,从而更有效地控制资源的缓存策略。当浏览器首次请求资源时,会根据响应头中的缓存策略来决定是否将资源存入缓存。当浏览器再次请求资源时,会根据缓存策略和协商缓存机制来决定是否使用缓存,或者是否与服务器进行协商,以确定是否需要重新获取资源。

相关推荐
nvd111 小时前
LiteLLM 与 Redis 响应缓存机制:从精确哈希匹配到模型底层 KV-Cache 边界
redis·缓存·哈希算法
河北之花3 小时前
计算机三级:路由器选型
网络·计算机网络·智能路由器
名字还没想好☜4 小时前
Next.js 用 cookies()/headers() 读请求信息:动态渲染触发、缓存失效与在 Server Action 里读写 cookie
前端·javascript·缓存·react·next.js·app router
lv__pf5 小时前
redis缓存数据库进阶
数据库·redis·缓存
草莓熊Lotso5 小时前
【Redis 初阶】Hash 类型深度解析:结构化数据存储的最优解
linux·网络·数据库·redis·tcp/ip·缓存·哈希算法
李白你好7 小时前
今日网络技术热点:【计算机网络 | 数据链路层8:CSMA/CD
网络·计算机网络
kyle~7 小时前
计算机系统 --- 缓存一致性
开发语言·c++·缓存·计算机系统
Zguigo16 小时前
lesson24-26计算机网络第三章精讲:从MAC地址到CSMA/CD,数据链路层核心知识一网打尽
计算机网络·macos
深念Y19 小时前
SSD 寿命洁癖:编译过程不入盘的原则与实践
缓存·io·内存·编译·ssd·读取·写入
智购科技无人售货机厂家19 小时前
2026自动售货机实时库存管理系统:从Redis缓存到持久化的数据架构演进~YH
redis·缓存·架构