什么是强制缓存?什么是协商缓存?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来判断缓存是否有效,并返回相应的状态码。

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

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

相关推荐
Yan.love15 小时前
【CSS-动画与过渡】丝滑的艺术,从简单位移到贝塞尔曲线
前端·css
黎轩栀海15 小时前
Element-UI 用命令行主题工具修改主题色
前端
梦65015 小时前
Vue 中 v-for 与 v-if 优先级
前端·javascript·vue.js
一只小bit15 小时前
Qt 多媒体:快速解决音视频播放问题
前端·c++·qt·音视频·cpp·页面
梦65015 小时前
React 高阶组件
前端·react.js·前端框架
CHU72903515 小时前
智慧回收新体验:同城废品回收小程序的便捷功能探索
java·前端·人工智能·小程序·php
Marshmallowc15 小时前
从URL变化到组件重绘:React Router 状态分发机制与组件挂载逻辑深度全解
前端·react.js·前端框架·react router·组件生命周期
虹少侠15 小时前
基于 WebKit 构建 macOS 多浮窗视频播放的技术实践(含完整产品落地)
前端·macos·swift·webkit
木易 士心15 小时前
Vue 响应式数据失效全解析:从原理机制到工程实践
前端·javascript·vue.js
Rattenking15 小时前
【CSS】---- 根据【张鑫旭-高宽不等图片固定比例布局的三重进化】的思考
前端·css