什么是强制缓存?什么是协商缓存?cache

强制缓存和协商缓存是用于在Web浏览器和服务器之间进行缓存控制的两种机制。

  1. 强制缓存(强缓存,强制缓存):
    强制缓存是通过设置HTTP响应头来实现的,它告诉浏览器在一定时间内直接使用缓存的副本,而不需要再向服务器发起请求。常见的强制缓存相关的响应头有两个:
    • Expires:指定一个绝对过期时间,即缓存将在该时间之后失效。
    • Cache-Control:通过设置max-age指令来指定一个相对过期时间,即缓存将在指定的秒数之后失效。

当浏览器发送请求时,会检查强制缓存相关的响应头信息。如果缓存仍然有效,浏览器将直接从缓存中读取资源,并且不会发送请求到服务器。这样可以显著提高页面加载速度,减少对服务器的访问。

  1. 协商缓存(协商缓存,条件缓存):
    协商缓存是在强制缓存失效的情况下进行的一种机制,用于验证缓存的有效性。当浏览器发现强制缓存失效时,它会向服务器发送一个附带条件的请求,以判断缓存是否仍然有效。服务器会根据请求的条件进行验证,并返回相应的状态码来指示缓存是否有效。

协商缓存相关的请求头和响应头有以下几个常见的:

  • If-Modified-Since / Last-Modified:浏览器在请求时发送If-Modified-Since头,将上次缓存的最后修改时间发送给服务器。服务器通过比较资源的最后修改时间来判断缓存是否有效,并返回相应的状态码(如304 Not Modified)。
  • If-None-Match / ETag:浏览器在请求时发送If-None-Match头,将上次缓存的ETag值发送给服务器。服务器通过比较资源的ETag来判断缓存是否有效,并返回相应的状态码。

如果服务器返回的状态码指示缓存仍然有效,浏览器将继续使用缓存的副本。如果缓存失效,服务器将返回新的资源内容,并带有新的缓存相关的响应头,浏览器将使用新的资源并更新缓存。

综合使用强制缓存和协商缓存可以有效地减少对服务器的请求,提高页面加载速度,并减轻服务器的负载。

相关推荐
Justin3go3 小时前
HUNT0 上线了——尽早发布,尽早发现
前端·后端·程序员
怕浪猫4 小时前
第一章 JSX 增强特性与函数组件入门
前端·javascript·react.js
铅笔侠_小龙虾4 小时前
Emmet 常用用法指南
前端·vue
钦拆大仁4 小时前
跨站脚本攻击XSS
前端·xss
VX:Fegn08955 小时前
计算机毕业设计|基于springboot + vue校园社团管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·课程设计
ChangYan.6 小时前
直接下载源码但是执行npm run compile后报错
前端·npm·node.js
skywalk81636 小时前
在 FreeBSD 上可以使用的虚拟主机(Web‑Hosting)面板
前端·主机·webmin
ohyeah7 小时前
深入理解 React 中的 useRef:不只是获取 DOM 元素
前端·react.js
MoXinXueWEB7 小时前
前端页面获取不到url上参数值
前端
低保和光头哪个先来7 小时前
场景6:对浏览器内核的理解
开发语言·前端·javascript·vue.js·前端框架