前情提要
在上一篇文章《【HTTP 2.0】 序言》中,我们简要介绍了 HTTP 2 协议的概要和协议状态。
在本篇文章中,我们将会了解到 HTTP 2 协议简介(Introduction)部分的内容。
简介(Introduction)
超文本传输协议(HTTP)是一个非常成功的协议。然而,HTTP 1.1 所使用的底层传输([RFC7230, 第六节]),对现代的应用程序性能带来了一些负面作用。
尤其是在 HTTP 1.0 中,在一个 TCP 连接中,只允许处理一个请求。 HTTP 1.1 增加了请求流水线,但这只是局部解决了请求并发问题,仍然会受到队首阻塞的影响。因此,在 HTTP 1.0 和 HTTP 1.1 中,客户端需要创建多个连接,才能实现并发请求以降低等待时间。
此外,HTTP 报头字段通常是重复的、冗长的,这造成了不必要的网络流量开销,以及初始 TCP 阻塞窗口快速填满。在一个 TCP 连接上进行多个请求时,可能导致延迟过高的问题。
HTTP 2 在底层连接中,通过定义一个经过优化的 HTTP 语义映射表,来解决这个问题。具体来说,它允许在同一连接上交叉使用请求和响应消息,并使用一个高效率的报头字段编码。它还允许设置请求的优先级次序,让重要的请求更快的完成,进一步提升性能。
新的协议对网络连接更加友好,相较于 HTTP 1.x,可以减少 TCP 连接的个数。这意味着,减少了与其他流和长连接之间的竞争,从而带来了更好的网络利用能力。
最后,HTTP 2 通过使用二进制消息帧,进一步提升了消息处理性能。
本文以 CC BY-NC-SA 3.0 CN 协议共享,转载、共享及二次创作时请保留原文出处及链接,请勿用于商业用途。
本文链接:http://litecodes.com/dev/http-2-spec-introduction/
本系列文章将会在我的 GitBook:http2-spec-zh 同步更新,
下一篇文章将会翻译协议的第二部分:HTTP/2 Protocol Overview(HTTP 2 协议概览),不要错过哟~