阅读 MDN 文档、HTTP 权威指南和许多谷歌搜索,如果响应不包含
Cache-Control: max-age
标头或 Expires
标头,缓存可以通过发送的 Last-Modified
标头计算最大年龄启发式由服务器本身。
MDN 文档说“......如果满足某些条件,响应将被存储和重用......”是什么意思?那些条件是什么?我知道客户至少必须执行以下公式:
(currentdate - lastModified) * 0.10
。此行为在浏览器中自动完成,将响应存储在缓存中。只有这个条件吗?
如果服务器不发送
Last-Modified
标头会怎样?我设法发现浏览器(chorme)仍然缓存响应,但是浏览器缓存了多长时间?
启发式缓存的相同行为是否发生在本机移动或桌面应用程序中?例如,当使用 Dart、Java、Kotlin、Rust、Go 等时,当使用这些语言发出 http 客户端请求时(浏览器会自动执行,但在某些语言中,是否必须以编程方式手动完成?)。
一个更普遍的问题,原生移动和桌面应用程序或使用某种语言作为http客户端,它们是否自动执行http标头标准,例如
Cache-Control
,Transfer-Enncoding
等,等等?我应该以编程方式手动执行吗?还是取决于所使用的 http 语言或库?
我希望你能帮助我。