随着SPDY的推动,是否有任何点在远期到期头文件?

据我了解,在SPDY推送服务器提供一个HTML文档,发送之前,它看,并决定我需要图像/ CSS资源XY和Z,所以也发送它们。

它是如何知道不打扰,如果他们已经被我的浏览器caching? 或者,如果客户端使用spdy / 3浏览器,试图caching静态资源基本没有意义?

(显然不是每个客户都会,但我对这个案子感兴趣)

根据Chromium开发者网站上的资源,这是其中的一个缺点。 服务器不可能知道客户端是否已经拥有该资源,因此可能是浪费的传输。

资料来源: http : //www.chromium.org/spdy/link-headers-and-server-hint

如果您确实需要优化首页加载时间:

  • 生成首页加载期间所需的所有引导静态文件的签名(md5 / sha哈希的子string)。 这通常只是基本的CSS + JS引导。 从那里开始,通常js正在加载东西(特别是客户端丰富的应用程序,所以你不需要服务器推送,客户端将适当地重用caching)
  • 将设置为引导版本签名的持久cookie设置为“bootstrap-version”。
  • 当客户端请求页面时:

    • 如果引导版本cookie不是最新的或者不存在,请启动引导文件的服务器推送。
    • 否则,假设客户端将它们caching起来(可能不会造成小的回归,但是对于99%的情况)

这样,你将达到一个非常高的效率和首页加载将有效地看起来像重复访问与caching由于服务器推动。

去和节点spdy实现允许您玩服务器推。 AFAIK nginx / apache模块还没有这个function。 我希望他们很快就会根据应用程序提供的标题或类似的内容添加它。