2012-10-05 17 views
1

我分析我的页面与谷歌的PageSpeed,但很惊讶地发现,这是谷歌本身带来的错误:一些谷歌CDN资源具有较短的到期日期

建议此页

以下可缓存资源的有一个短暂的新鲜生命。至少指定一个星期在未来到期以下资源:

看来谷歌的CDN文件+1和分析具有超短的到期时间,击败了CDN的目的。

为什么会出现这种情况?

+2

CDN的目的不是很长的到期时间......! – deceze

+0

@deceze嗯,CDN的目的是更快地加载内容,并且30分钟的截止日期似乎无法达到这个目的 – stackunderflow

+1

我的猜测是,他们希望能够立即更新这些文件,特别是对于相对而言新的G +服务。由于谷歌的服务器字面上遍布全球,各种各样的分布式DNS技巧使它们更快,文件非常小,我认为它对于他们来说足够快。 – deceze

回答

2

一个CDN的目的是分发内容,从而把它更贴近用户和减少的往返时间(RTT)的距离因素,并且不产生影响每说上RTT的其他两个因素,即光速和服务器响应请求所花费的时间。

在一般情况下,它通常是静态内容,它可以很容易地从受益于简单的缓存规则,因为大多数CDN没有动态内容生成功能,所以放在CDN上,但没有什么说你不能在CDN上放置动态内容(即不容易缓存)的内容。

至于谷歌为什么选择有相对较短的缓存到期时间窗,总是有一个权衡,当涉及到的任何性能改进,特别是与缓存。缓存的最大折衷是在最新内容的可能性和生成最新内容所需的资源之间取得平衡。

这种平衡受到其影响的用户规模以及您可用于生成内容的资源的巨大影响。在Google的情况下,我猜想他们已经决定30分钟的时间足够长,以至于看到大规模的资源收益,但仍然足够短,以至于他们很乐意将自己限制为部署30分钟的最短响应时间新代码。

Here有趣的是,为什么缓存5秒钟的东西可能是一个有价值的命题,尽管你必须在更新窗口和前面提到的之间取得平衡。

+0

+1感谢您的详细解答。我猜想快速部署新代码对安全修复等很重要。 – stackunderflow