-1
想象一下这样的情景:铬TCP HTTP连接
- 有Chrome版客户端,Ç
- 有一个Web服务器,W¯¯
- 在Web服务器是一个HTML文件,WH,图片WI
C想访问W的网页。 TCP连接已打开。网络服务器发送WH至C。 ç看到,有上WH,WI图像...
现在问题来了:客户是否建立一个新的TCP连接请求的形象呢?或者它只是发送一个新的PSH-ACK?
秒问题:浏览器之间有不同吗?
想象一下这样的情景:铬TCP HTTP连接
C想访问W的网页。 TCP连接已打开。网络服务器发送WH至C。 ç看到,有上WH,WI图像...
现在问题来了:客户是否建立一个新的TCP连接请求的形象呢?或者它只是发送一个新的PSH-ACK?
秒问题:浏览器之间有不同吗?
客户端请求使用另一个HTTP GET
请求的图像。它可以在同一连接上执行此操作,也可以打开新的连接。如果客户端在下载时开始解析页面,则可能会使用新的连接,因此这两个文件可以同时下载。如果它看到更多的图像标签,它可以为此打开其他连接。为了防止服务器过载,运行良好的浏览器对同时连接的同时连接数量有限制,一般在4左右。
如果它首次下载整个文件,它可以重新使用原始连接请求图像。但是,如果有多个图像,它可能会为每个图像打开单独的连接(达到上述限制),以便它们可以并行下载。
感谢您的帮助,我发现'Keep-Alive'标题只会让客户端打开一个连接。没有这个头部,它会打开更多的连接。 –
这在TCP/1.1中不应该是必须的,它应该默认保持连接打开状态。你使用的是TCP/1.0吗? – Barmar