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-12-24怎么切换 Git 项目的远程仓库地址?-icode9专业技术文章分享
- 2024-12-24怎么更改 Git 远程仓库的名称?-icode9专业技术文章分享
- 2024-12-24更改 Git 本地分支关联的远程分支是什么命令?-icode9专业技术文章分享
- 2024-12-24uniapp 连接之后会被立马断开是什么原因?-icode9专业技术文章分享
- 2024-12-24cdn 路径可以指定规则映射吗?-icode9专业技术文章分享
- 2024-12-24CAP:Serverless?+AI?让应用开发更简单
- 2024-12-23新能源车企如何通过CRM工具优化客户关系管理,增强客户忠诚度与品牌影响力
- 2024-12-23原创tauri2.1+vite6.0+rust+arco客户端os平台系统|tauri2+rust桌面os管理
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享