Skip to content

Latest commit

 

History

History
13 lines (7 loc) · 1.55 KB

1-zh-cn.md

File metadata and controls

13 lines (7 loc) · 1.55 KB

前言

超文本传输协议(HTTP)是一个非常成功的协议。但是,HTTP/1.1使用下层传输层([RFC7230]第6章)的方式所具有的一些特性,对如今的应用层性能产生了一个全面的消极的影响。

尤其是,在一个给定的TCP连接上,HTTP/1.0只允许发送一次,每次一个请求。HTTP/1.1增加了管线技术,但这只是部分地实现了并发请求,并且仍然存在着线头阻塞问题。因此,HTTP/1.0和HTTP/1.1的用户要发送大量请求时,就使用多个连接来达到并发和减少延迟的目的。

此外,HTTP首部字段常常是重复和冗余的,从而产生了不必要的网络流量,也导致初始TCP拥塞窗口被快速填满。当在一个新建立的TCP连接上发送多个请求时,这会产生极大的时延。

HTTP/2通过定义一个优化的HTTP语义到底层连接的映射来解决这些问题。具体来说,它允许请求和响应交错地使用同一个连接,并可以使用高效编码的HTTP报头。它还允许请求具有优先级,让更重要的请求更快速地完成,这进一步提高了性能。

由此产生的协议对网络更加友好,因为相比HTTP/1.x它可以使用更少的TCP连接来完成同样的功能。这意味着流量的竞争更少,连接的生命周期更长。这就能更好地利用现有的网络容量。

此外,通过使用二进制消息帧,HTTP/2也能更有效地处理消息。