梗概
- 浏览器会对部分网络资源进行缓存,下次再次进行资源请求时,就会尝试直接从缓存中获取资源数据
- http的缓存方式有两种:强缓存和协商缓存
- 强缓存的优先级比协商缓存高,如果强缓存生效,浏览器不会发送请求到服务器。而协商缓存需要发送请求到服务器进行验证。
应用场景
什么时候用强缓存
-
静态资源:对于不经常更改的静态资源,如网站的图片、样式表和脚本文件,可以使用强缓存。这能显著提高页面加载速度,因为浏览器可以直接从缓存中加载这些资源,而不需要与服务器通信。
-
CDN内容:使用内容分发网络(CDN)分发的文件通常也使用强缓存。这些文件通常是全局优化并且不常更新的,因此通过强缓存可以减少延迟和流量。
-
版本化资源:通过在文件名或路径中加入版本号来管理更新,如style.v1.css、script.v2.js等。这样,即使使用了强缓存,当需要更新时只需更改版本号即可,浏览器会认为是新的资源进行重新请求。
什么时候用协商缓存
-
频繁更新的数据:对于那些可能会频繁更新的数据,例如API返回的数据或者用户个性化内容,协商缓存更为合适。协商缓存允许浏览器在每次请求时向服务器确认资源是否有改变。
-
动态生成的内容:如果网页包含动态生成的内容或用户特定信息,协商缓存可确保用户总能看到最新的信息,同时仍然减少不必要的数据传输。
-
未版本化的静态资源:如果无法对静态资源进行版本化处理,则可以依赖于协商缓存来确保用户获取到最新的版本。