30

HTTP连接管理之并行连接、持久化连接(Keep-Alive、Proxy-Connection)、管道化连接

串行事务处理时延

在介绍连接方式之前,先介绍一下串行事务处理时延

  • 如果只对连接进行简单的管理,TCP 的性能时延可能会叠加起来。比如,假设有一个包含了3个嵌入图片的Web页面。浏览器需要发起 4 个 HTTP 事务来显示此页面: 1 个用于顶层的 HTML页面,3 个用于嵌入的图片。如果每个事务都需要(串行地建立)一条新的连接,那么连接时延和慢启动时延就会叠加起来

watermarktype_ZmFuZ3poZW5naGVpdGkshadow_10text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDUzMjg1size_16color_FFFFFFt_70

  • 串行加载的另一个缺点:有些浏览器在对象加载完毕之前无法获知对象的尺寸, 而且它们可能需要尺寸信息来决定将对象放在屏幕的什么位置上,所以在加载了足 够多的对象之前,无法在屏幕上显示任何内容。在这种情况下,可能浏览器串行装 载对象的进度很正常,但用户面对的却是一个空白的屏幕,对装载的进度一无所知

一些提高HTTP连接性能的技术:

  • ①并行连接:通过多条 TCP 连接发起并发的 HTTP 请求
  • ②持久连接:重用 TCP 连接,以消除连接及关闭时延
  • ③管道化连接:通过共享的 TCP 连接发起并发的 HTTP 请求
  • ④复用的连接:交替传送请求和响应报文(实验阶段)

Continue reading