2015-05-14 56 views
-1

想象一下这样的情景:铬TCP HTTP连接

  • 有Chrome版客户端,Ç
  • 有一个Web服务器,W¯¯
  • 在Web服务器是一个HTML文件,WH,图片WI

C想访问W的网页。 TCP连接已打开。网络服务器发送WHCç看到,有上WHWI图像...

现在问题来了:客户是否建立一个新的TCP连接请求的形象呢?或者它只是发送一个新的PSH-ACK?


秒问题:浏览器之间有不同吗?

回答

2

客户端请求使用另一个HTTP GET请求的图像。它可以在同一连接上执行此操作,也可以打开新的连接。如果客户端在下载时开始解析页面,则可能会使用新的连接,因此这两个文件可以同时下载。如果它看到更多的图像标签,它可以为此打开其他连接。为了防止服务器过载,运行良好的浏览器对同时连接的同时连接数量有限制,一般在4左右。

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

+0

感谢您的帮助,我发现'Keep-Alive'标题只会让客户端打开一个连接。没有这个头部,它会打开更多的连接。 –

+0

这在TCP/1.1中不应该是必须的,它应该默认保持连接打开状态。你使用的是TCP/1.0吗? – Barmar