Chrome TCP HTTP 连接
Chrome TCP HTTP connection
想象一下这个场景:
- Chrome、C
上有一个客户端
- 有一个网络服务器,W
- 网络服务器上有一个 html 文件,WH,一个图像 WI
C 想访问 W 上的网页。打开一个 TCP 连接。网络服务器将 WH 发送到 C。 C看到WH,WI...
上有图
现在问题来了:客户端是否建立新的TCP连接来请求图片?或者它只是发送一个新的 PSH-ACK?
第二个问题:这在浏览器之间有区别吗?
客户端使用另一个 HTTP GET
请求请求图像。它可以在同一个连接上执行此操作,也可以打开一个新连接。如果客户端在下载时开始解析页面,它可能会使用新连接,以便两个文件可以同时下载。如果它看到更多图像标签,它可以为此打开额外的连接。为了避免服务器过载,行为良好的浏览器对它们打开到同一服务器的并发连接数有限制,通常在 4 左右。
如果它首先下载整个WH,它可以重新使用原来的连接来请求图像。但是如果有多个图像,它可能会为每个图像打开单独的连接(达到上述限制),以便可以并行下载它们。
想象一下这个场景:
- Chrome、C 上有一个客户端
- 有一个网络服务器,W
- 网络服务器上有一个 html 文件,WH,一个图像 WI
C 想访问 W 上的网页。打开一个 TCP 连接。网络服务器将 WH 发送到 C。 C看到WH,WI...
上有图现在问题来了:客户端是否建立新的TCP连接来请求图片?或者它只是发送一个新的 PSH-ACK?
第二个问题:这在浏览器之间有区别吗?
客户端使用另一个 HTTP GET
请求请求图像。它可以在同一个连接上执行此操作,也可以打开一个新连接。如果客户端在下载时开始解析页面,它可能会使用新连接,以便两个文件可以同时下载。如果它看到更多图像标签,它可以为此打开额外的连接。为了避免服务器过载,行为良好的浏览器对它们打开到同一服务器的并发连接数有限制,通常在 4 左右。
如果它首先下载整个WH,它可以重新使用原来的连接来请求图像。但是如果有多个图像,它可能会为每个图像打开单独的连接(达到上述限制),以便可以并行下载它们。