【问题标题】:How to force the browser to cache the content in encrypted format?如何强制浏览器以加密格式缓存内容?
【发布时间】:2025-08-26 13:10:02
【问题描述】:

为了防止浏览器缓存,我关注了How to control web page caching, across all browsers?

  response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
  response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
  response.setDateHeader("Expires", 0);

这在 Google Chrome 上运行良好,但问题出在 Firefox 上。添加上述标题后,Firefox 仍在缓存我的内容。

  1. 有什么方法可以阻止 Firefox 缓存我的内容?

  2. 所有缓存的内容仅以纯文本形式存储。如何强制浏览器在缓存内容之前对其进行加密?

我观察到其他一些网站的缓存不是以纯文本形式存储的。甚至 JavaScript (js) 文件也是加密格式(在缓存中)。

下图显示了响应中收到的标头。

【问题讨论】:

  • 相信 response.setDateHeader("Expires", 0);应该是 response.setHeader("Expires", 0);
  • 我添加了'response.setHeader("Expires", "0");',然后它也在缓存。 setHeader 期望这两个参数都是字符串值。

标签: jsp security caching encryption http-headers


【解决方案1】:

Firefox 不应该缓存这些响应头。您可以发布 Firefox 看到的实际响应标头的屏幕截图吗? (CTRL-SHIFT-C,网络选项卡)。不过,您可能想要response.setHeader("Expires", 0);

如果缓存为空,则无需在客户端加密缓存。而且,你无论如何也做不到。

您使用的是 HTTPS 对吗?

【讨论】: