浏览器HTTP连接限制和YouTube



我正在开发一项服务,人们可以同时流式传输多个音频文件。

不幸的是,当同时传输大约4个流时,Chrome的HTTP连接限制似乎开始生效:新的流请求只有在前一个连接关闭时才能到达服务器。

有趣的是,我可以在YouTube上同时播放10多个视频。

YouTube在这里使用了什么样的技术来绕过浏览器的同时http连接限制?

我认为关键的一点是YouTube流不是由浏览器直接控制的,它们是嵌入式Flash播放器,使用由Flash处理的流。如果你想把流媒体过程交给外部应用程序/库(Flash, Java等),你可以很容易地绕过这些限制。

另一点是YouTube有一个巨大的CDN,所以不能保证你从同一台服务器上获得任何两个视频,这也有助于规避并发限制(至少在某种程度上)。

我并不惊讶Chrome在一段时间后停止了你,因为谷歌做了大量关于浏览器并发性和相对效率的研究和实验,我记得在某个地方读到他们的结论,3-4个并发连接到同一台服务器代表了在直接HTTP上最有效的数据传输架构。令人恼火的是,我找不到一个有信誉的来源来参考(尽管我一开始就从一个人那里得到了),但是这是相关的,可能是同一个研究项目的一部分。

这也是Facebook大量参与的研究,你可能会在http://developers.facebook.com/上找到一些有用的信息,如果你能在垃圾中找到它的话…

最新更新