你知道 HTTP 是如何使用 TCP 连接的吗?今天我就来告诉你( 三 )


持久连接
HTTP 1.1 允许 HTTP 设备在事务处理结束之后 将 TCP 连接保持在打开状态 , 以便为未来的 HTTP 请求重用现存的连接 。在事务处理结束之后仍然保持在打开状态的 TCP 连接被称为持久连接 。非持久连接会在每个事务结束之后关闭 。持久连接会在不同事务之间保持打开状态 , 直到客户端或服务器决定将其关闭为止 。
管道化连接(也有人称之为管线化)
HTTP/1.1 允许在持久连接上可选地使用请求管道 。这是相对于 keep-alive 连接的又一性能优化 。在响应到达之前 , 可以将多条请求放入队列 。当第一条请求通过网络流向地球另一端的服务器时 , 第二条和第三条请求也可以开始发送了 。在高时延网络条件下 , 这样做可以降低网络的环回时间 , 提高性能 。
其实管道化说白了就是 传送过程中不需先等待服务端的回应 , 然后又发了几条 , 浏览器将 HTTP 要求大批提交可大幅缩短页面的加载时间 , 特别是在传输延迟(lag/latency)较高的情况下(如卫星连接) 。此技术之关键在于多个 HTTP 的要求消息可以同时塞入一个 TCP 分组中 , 所以只提交一个分组即可同时发出多个要求 , 借此可减少网络上多余的分组并降低线路负载 。

【你知道 HTTP 是如何使用 TCP 连接的吗?今天我就来告诉你】


推荐阅读