如何无限地缓存HTTP响应

时间:2012-08-02 23:33:29

标签: javascript ajax http caching

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

使用说明:这适用于Ajax应用程序中的版本化客户端代码。所有内容都通过不可缓存的example.com/front.htm访问,该示例仅包含链接到example.com/currentversion/bootstrap.js的脚本标记,该标记无限期地缓存。由于不可缓存的HTML文件确定当前版本,因此客户端无需更新脚本。

2 个答案:

答案 0 :(得分:2)

缓存到2038年。由于32-bit Unix Epoch bug,你不能再远远超过(可靠)。使用此标题:

Expires: Sun, 17 Jan 2038 19:14:07 GMT

答案 1 :(得分:2)

根据RFC,“将响应标记为'永不过期',原始服务器会在发送响应后大约一年内发送过期日期.HTTP / 1.1服务器不应发送超过一年的过期日期在将来。“

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

我不知道一年限制背后的原因是什么,所以请把它当作是什么。