谷歌使用哪种缓存来控制 jQuery

谷歌使用哪种缓存来控制 jQuery
> curl --head http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
HTTP/1.1 200 OK
Last-Modified: Thu, 19 Feb 2009 22:38:52 GMT
Content-Type: application/x-javascript; charset=UTF-8
Expires: Fri, 27 Aug 2010 18:40:36 GMT
Date: Thu, 27 Aug 2009 18:40:36 GMT
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
Cache-Control: public, max-age=31536000
Age: 7435
Server: GFE/2.0
Transfer-Encoding: chunked

它说过期日期为 2010 年 8 月 27 日。但是缓存控制却说 max-age = 315360000(未来很远)。这是否意味着浏览器会将这些数据缓存很长时间?还是根据过期值它会立即请求另一份副本?

答案1

我的理解是,Expires 标头是执行此操作的旧方法,而 Cache-Control 是执行此操作的现代方法,它允许更精细地处理代理服务器等。

无论哪种情况,文件的 1.3.2 版本永远都是 1.3.2 版本,所以它们都表示要将其缓存很长很长时间。

答案2

您从 curl 粘贴的 max-age 值为 31536000,即 1 年。因此,两个标头都表示同一件事:认为内容新鲜一年。

答案3

如果 Cache-Control 和 Expires 有冲突,浏览器应该监听 Cache-Control,

这意味着 Cache-Control 会覆盖 Expires(这是在 HTTP/1.1 文档中写的)

相关内容