Cache-Control的理解
2021/7/31 23:08:20
本文主要是介绍Cache-Control的理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Cache-Control
计算一个response的Freshness Lifetime(新鲜生命周期、保质期)值的规则为:
- 如果cache是共享的、且response中含有s-maxage,则值为s-maxage;
- 如果response中含有max-age,则值为max-age;
- 如果response的header中含有Expires,则值为Expires减去response header中的Date;
- 否则的话,表示response中没有显式的过期时间,可能会采用探测型的策略(Last-Modified);
Request Cache-Control Directives:
-
max-age: <delta-seconds>
表示client不愿意接收age超过delta-seconds秒的response。
-
max-stale: <delta-seconds>
如果max-stale被赋值,表示client愿意接收超过其freshness lifetime delta-seconds秒的response;如果max-stale未被赋值,则表示client愿意接收任何age的stale response。
-
min-fresh
-
no-cache
表示在没有成功验证server时,
-
no-store
-
no-transform
-
only-if-cached
表示client仅仅愿意接受一个stored response。server如果有缓存则返回缓存,否则返回504错误。
表示client愿意接受超过其freshness lifetime一定时间的response。如果max-stale没有被赋值,则表示client愿意接受任何陈旧(stale)的值。
Response Cache-Control Directives
-
must-revalidate
-
no-cache
在使用任何cached response之前,必须先重新验证服务器(revalidate with the server)。首先连接服务器、并比较服务器上资源的ETag和缓存中的ETag是否一样,如果一样,则返回缓存的资源;
否则,就意味着资源已经发生更新,client需要下载最新的资源并返回。
-
no-store
-
no-transform
-
public
-
private
-
proxy-revalidate
-
max-age=<delta-seconds>
该response在delta-seconds秒以后将变为陈旧的。
-
s-maxage=<delta-seconds>
在共享的缓存中,s-maxage会覆盖max-age指令值或者Expires header的值。
这篇关于Cache-Control的理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-07Dify + TiDB Vector,快速构建你的AI Agent
- 2024-07-06有没有什么开源的py项目可以对图像进行分类-icode9专业技术文章分享
- 2024-07-05feign默认connecttimeout和readtimeout是多少-icode9专业技术文章分享
- 2024-07-05idea控制台,日志太多,导致部分想看得日志被刷走 搜不到-icode9专业技术文章分享
- 2024-07-05The server selected protocol version Tls10 is not accepted by client preferences [TLs12]-icode9专业技术文章分享
- 2024-07-05怎么清理项目缓存-icode9专业技术文章分享
- 2024-07-04安装 Eyoucms详细图文教程-icode9专业技术文章分享
- 2024-07-04ueditor 复制文章时,图片的链接是一个下载图片地址,该如何处理?-icode9专业技术文章分享
- 2024-07-04怎样判断host有没有对wordpress有缓存呢-icode9专业技术文章分享
- 2024-07-04具有编译功能的系统make后,无法ssh连接-icode9专业技术文章分享