通过在服务器上托管一些资产而在 CDN 上托管其他资产,这是否允许浏览器协商更多连接?

By hosting some assets on a server and others on a CDN will this allow a browser to negotiate more connections?

小问题 我正在尝试加快静态网站的速度 - html,css,js 该网站也有许多权重分配的图像,在测试期间,浏览器似乎正在努力管理所有这些连接。

如果通过托管我的站点文件 - html、css、VPS 上的 js,然后将所有图像放到 CDN 上,那么除了正常的压缩之外我会徘徊允许浏览器与 2 个服务器协商并且总体上更快。 (显然,由于受用户连接限制,不会有 mbps 速度增益,但我正在徘徊,如果这会让我有更多的开放连接,从而有更快的 TTFB)

有背景的长问题

我有一个网站正在加速,该网站本身都是客户端 html,js,css。该站点的速度问题往往是 a) 文件的大小 b) 文件的数量。 IE。有很多图像,每个图像都分配了权重。

我将做所有常见的事情,将用于 UI 的那些组合成一个精灵 sheet 并使用 jpegmini 等压缩所有图像

我已将站点移至 VPS,这产生了很大的不同,我正在考虑的下一步是设置 CDN 来托管图像,我不会尝试为任何地理分布或负载托管它们平衡的原因(尽管这是一个额外的好处)但我在徘徊如果用户浏览器将获取所有站点文件,下载资产的瓶颈是否会减少:html,js,css 来自VPS 但同时从 CDN 获取图像,这是瓶颈吗?用户浏览器一次只能与 1 个服务器建立这么多连接,但如果我有 2 个服务器,它可以协商相同数量的连接,但同时在两个服务器上?

我猜测服务器上的负载也可能存在问题,但是为了使用 2gb 多核 VPS 测试 im,没有其他人使用,所以在这方面应该不会出现问题在我的测试中。

上下文

传统上,Web 浏览器会限制浏览器可以同时连接到一个域的数量。这些限制是 1999 年由互联网工程任务组 (IETF) 在 HTTP/1.1 规范中制定的。限制的目的是避免网络服务器过载并减少互联网拥塞。通常使用的限制是与任何服务器或代理的同时连接不超过两个。

该限制的解决方案:域分片

域分片是一种通过诱使浏览器打开比通常允许的更多同时连接来加快页面加载时间的技术。

请参阅此 article) 以获取使用多个子域以增加与 CDN 的并行连接的示例。

所以代替:

  • http://cdn.domain.com/img/brown_sheep.jpg
  • http://cdn.domain.com/img/green_sheep.jpg

浏览器可以通过子域使用并行连接:

  • http://cdn.domain.com/img/brown_sheep.jpg
  • http://cdn1.domain.com/img/green_sheep.jpg

现在:提防分片

您可能会考虑使用域分片的缺点,因为在 SPDY 下它不是必需的,甚至会损害性能。如果您的目标浏览器主要是 Chrome、Firefox、Opera 和 IE 11 支持的 SPDY,您可能希望跳过域分片。