1

如何发送任何客户端将永久缓存(或直到其缓存被清除)的 HTTP 响应,以便当浏览器需要该资源时,它不发出 HTTP 请求,而是从本地文件系统检索 HTTP 响应?

使用说明:这适用于 Ajax 应用程序中的版本化客户端代码。一切都通过不可缓存的 example.com/front.htm 访问,它只包含一个链接到 example.com/currentversion/bootstrap.js 的脚本标签,该标签无限期地缓存。因为不可缓存的 HTML 文件决定了当前版本,所以客户端不需要更新脚本。

4

2 回答 2

2

根据 RFC,“为了将响应标记为‘永不过期’,源服务器在发送响应后大约一年发送一个过期日期。HTTP/1.1 服务器不应该在未来一年以上发送过期日期。”

请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21

我不知道一年限制背后的原因是什么,所以就这样吧。

于 2012-08-02T23:44:34.563 回答
2

缓存到 2038 年。由于32 位 Unix Epoch 错误,您不能再进一步(可靠地)。使用此标头:

Expires: Sun, 17 Jan 2038 19:14:07 GMT
于 2012-08-02T23:35:40.400 回答