2

当我加载显示的网页时,为什么要为每个图像的 HTTP 请求打开一个新的 TCP 连接?为什么在页面加载期间不重用单个 TCP 连接?

4

3 回答 3

4

我认为浏览器通常会打开多个连接,以便它可以并行加载内容。另一种可能性是服务器可能在完成发送图像文件后关闭连接,从而强制浏览器创建新连接。

于 2013-10-26T06:37:14.710 回答
2

浏览器还结合了一种称为 HTTP 流水线的技术,其中现有的 TCP 连接用于多个 HTTP 请求,但问题是所有传入的 HTTP 响应应该与发送的请求的顺序相同。

HTTP管道:

在此处输入图像描述

欲了解更多信息,请访问页面

于 2013-10-26T06:41:35.010 回答
1

尽管已经引用的大多数原因都是正确的(并且我赞成),即您可能需要通过不同的连接获取不同的资源,例如一个加载徽标,其他加载页面数据等,并且管道衬里并不总是可能的,而且它试图在平行线。

尽管如此,多个 TCP 连接的开销仍然会影响http 整体变慢。这就是为什么google 一直在努力加快速度,新模型 http 2.0 将使用单个 http 连接。

几天前在黑客新闻上发布了详细信息,基准标记非常令人印象深刻,尽管它还有其他几个因素,例如使用较少的字节数进行协议开销。

SPDY是谷歌自己的早期版本

于 2013-10-26T06:54:07.770 回答