缓存/过期启发式如何在客户端(浏览器、本机移动或桌面应用程序)上工作?

问题描述 投票:0回答:0

阅读 MDN 文档、HTTP 权威指南和许多谷歌搜索,如果响应不包含

Cache-Control: max-age
标头或
Expires
标头,缓存可以通过发送的
Last-Modified
标头计算最大年龄启发式由服务器本身。

  1. MDN 文档说“......如果满足某些条件,响应将被存储和重用......”是什么意思?那些条件是什么?我知道客户至少必须执行以下公式:

    (currentdate - lastModified) * 0.10
    。此行为在浏览器中自动完成,将响应存储在缓存中。只有这个条件吗?

  2. 如果服务器不发送

    Last-Modified
    标头会怎样?我设法发现浏览器(chorme)仍然缓存响应,但是浏览器缓存了多长时间?

  3. 启发式缓存的相同行为是否发生在本机移动或桌面应用程序中?例如,当使用 Dart、Java、Kotlin、Rust、Go 等时,当使用这些语言发出 http 客户端请求时(浏览器会自动执行,但在某些语言中,是否必须以编程方式手动完成?)。

  4. 一个更普遍的问题,原生移动和桌面应用程序或使用某种语言作为http客户端,它们是否自动执行http标头标准,例如

    Cache-Control
    Transfer-Enncoding
    等,等等?我应该以编程方式手动执行吗?还是取决于所使用的 http 语言或库?

我希望你能帮助我。

http caching server httpclient browser-cache
© www.soinside.com 2019 - 2024. All rights reserved.