如何强制 https 站点的磁盘缓存?

如何强制 https 站点的磁盘缓存?

作为浏览器最终用户,而不是 Web 开发人员,我如何才能简单地强制 Firefox 始终存储 https 缓存,就像存储 http 缓存一样?理想情况下,缓存的有效期应该比网站作者提到的时间更长,但目前这只是一个不错的额外功能。

在这种情况下,我不想要任何自动的安全措施。我知道在 1993 年左右,开发人员不得不为 https 数据添加一些全面的保护措施,但现在每个网站都以 https 形式提供,这带来的不便多于帮助。特别是当你没有始终在线的互联网连接时!

我同意隐私浏览不保存缓存,事实上这甚至会更好。但我我希望我今天看到的通过 https 提供的文档网站,在明天我电脑从睡眠状态恢复时,在没有互联网连接的情况下,仍能显示在我的浏览器中

我已尝试在:、、、、、中启用(=true)。about:configbrowser.cache.disk.enablebrowser.cache.disk_cache_sslbrowser.cache.offline.enabledom.caches.enableddom.caches.testing.enabledprivacy.clearOnShutdown.cache=false

查看他们的文档,https://firefox-source-docs.mozilla.org/networking/cache2/doc.html甚至没有“ssl”或“https”或“secure”字样......

请不要回复说这种行为对我自己更好。事实并非如此。我已经为银行等运行了不同的 Firefox ESR 配置文件,该配置文件在自己的进程命名空间上运行,甚至无法将数据存储到磁盘。但我的常规 Firefox 进程应该使用磁盘缓存总是

答案1

浏览器中的 HTTPS 机制很大程度上依赖于 HTTP 机制,包括使用这两种协议的缓存。

您遇到的问题很可能是计算机处于睡眠状态时缓存页面过期。

我在最近的 Mozilla 文章中没有找到有关到期时间的信息,例如 HTTP 缓存尽管本文深入讨论了诸如 Cache-control 之类的 HTTP 指令。

我发现的文章是古老的 Mozilla 中的 HTTP 缓存 自 2002 年以来,它使用 RFC 2616 来 超文本传输​​协议——HTTP/1.1

最相关的段落是:

新鲜度寿命是根据几个标头计算的。如果指定了“Cache-control: max-age=N”标头,则新鲜度寿命等于 N。如果此标头不存在(这种情况很常见),则我们查找“Expires”标头。如果存在“Expires”标头,则其值减去“Date”标头的值即可确定新鲜度寿命。最后,如果两个标头都不存在,则我们查找“Last-Modified”标头。如果存在此标头,则缓存的新鲜度寿命等于“Date”标头的值减去“Last-modified”标头的值再除以 10。这是 RFC 2616 第 13.2.4 节中建议的简化启发式算法。

到期时间的计算方法如下:

 expirationTime = responseTime + freshnessLifetime - currentAge

其中 responseTime 是浏览器收到响应的时间。

相关内容