【问题标题】:Chrome TCP HTTP connectionChrome TCP HTTP 连接
【发布时间】:2015-07-26 10:33:24
【问题描述】:

想象一下这个场景:

  • Chrome上有一个客户端,C
  • 有一个网络服务器,W
  • 网络服务器上有一个 html 文件,WH,一个图像 WI

C 想要访问 W 上的网页。 TCP 连接已打开。网络服务器将 WH 发送到 CC 看到 WHWI 上有一个图像...

现在问题来了:客户端是否建立新的TCP连接来请求图像?还是只是发送一个新的 PSH-ACK?


秒问:这在浏览器之间有区别吗?

【问题讨论】:

    标签: html google-chrome http tcp


    【解决方案1】:

    客户端使用另一个 HTTP GET 请求请求图像。它可以在同一个连接上执行此操作,也可以打开一个新连接。如果客户端在下载时开始解析页面,它可能会使用新连接,以便两个文件可以同时下载。如果它看到更多的图像标签,它可以为此打开额外的连接。为避免服务器过载,性能良好的浏览器对它们将打开到同一服务器的并发连接数进行了限制,通常约为 4。

    如果它首先下载整个WH,它可以重新使用原始连接来请求图像。但是如果有多个图像,它可能会为每个图像打开单独的连接(达到上述限制),以便可以并行下载。

    【讨论】:

    • 感谢您的帮助,我发现Keep-Alive 标头将使客户端仅通过一个连接打开。如果没有该标头,它将打开更多连接。
    • 这在 TCP/1.1 中不应该是必需的,它应该默认保持连接打开。你在使用 TCP/1.0 吗?
    猜你喜欢
    • 2010-12-01
    • 2016-02-02
    • 2013-04-14
    • 1970-01-01
    • 2017-04-25
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    相关资源
    最近更新 更多