该网站是用SpringBoot开发的,部署在Linux服务器上。当我在Chrome中打开一个网站页面,并打开TCP查看器时,我看到我的计算机与服务器之间有多个TCP连接。他们正在使用完全不同的端口。

我检查了Chrome DevTool中的网络选项卡,我看到在requst头中有保持活动的状态。我猜它使用的是HTTP1.1和长连接。
所以这让我很困惑。既然是长连接,所有的内容都应该是通过一个TCP连接,为什么会有这么多TCP连接呢?
发布于 2018-10-10 06:02:02
虽然HTTP/1.0和HTTP/1.1支持在同一个TCP连接中处理多个HTTP请求的持久连接,但这些请求仍然在同一连接中彼此处理。如果一个站点需要许多资源,那么使用单个TCP连接的顺序加载将太慢。因此,使用多个TCP连接进行并行加载。由于大多数站点加载了许多资源(主HTML、各种CSS、JavaScript、图像、字体.)可以看到与大多数站点一起使用的多个TCP连接。
对于HTTP/2,支持在单个TCP连接中并行加载。在这种情况下,通常只会看到一个到站点的TCP连接。当然,如果资源从多个站点加载(即ads,跟踪.)您还会再次看到多个TCP连接--但如果HTTP/2用于特定的目的地,则每个目的地只有一个连接。
https://stackoverflow.com/questions/52731867
复制相似问题