缓存是一种保存资源副本并在下次请求时直接使用该副本的技术,可减少等待时间和网络流量,显著提升网站性能。
Control+Shift+J
、Mac快捷键Command+Option+J
);disk cache
和 memory cache
都是使用了缓存;Disable cache
,勾选意味着禁用缓存功能。下图列出服务器返回的资源,只需要点击其中一行,即可显示资源请求和响应的详细信息,图中 Cache-Control
就是服务器对此资源的缓存配置。
资源被更新了,浏览器也必须重新获取资源,才能显示最新版本的网站。下面几种情况都会触发验证请求,如果资源更新了,服务器返回最新资源给客户端,否则客户端继续使用缓存显示页面。
缓存的本地时长超过 Cache-Control 中 max-age 设定的时长时,需要进行缓存验证,图中的验证结果是 304(Not Modified),表示缓存没有改动,无需更新,可继续使用。
缓存的具体信息(资源id,修改时间等)都在请求头中,服务器对比下这些信息,即可知道缓存是否需要更新。常见的缓存验证的请求头组合:
ETag 是资源的唯一标识,可以快速确定是否需要返回最新资源给请求方。
这两种是根据时间来确定缓存是否需要更新,通常使用在没有 ETag 的情况。
HTTP头
说明Cache-Control 是 HTTP 协议的请求头和响应头,用于实现缓存功能。单个请求可包含多个指令,用逗号隔开,指令不区分大小写但建议小写。详细用法,看这里!
Vary 是 HTTP 协议的其中一个响应头,代理服务器用它来判断是否存在共享缓存来响应客户,没有就向源服务器发新请求来响应用户。详细用法,看这里!
存在或不存在
?;有或没有
修改过?Nginx 作为代理服务器,开启缓存功能,可以减轻源服务器的压力,提升整个网站的性能。详情,看这里!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。