简单比较http1、http2和http3

HTTP(超文本传输协议)是一种应用协议,自 1989 年推出以来一直用于在万维网上进行通信。1997 年,IETF 发布了 HTTP 的第一个稳定版本。从那时起,它已成为事实上的在线通信规范。HTTP 利用一些简单的方法在计算机之间发送和接收信息。最常见的两种方法是 GET 和 POST。

然而,自 1997 年以来,互联网已经发生了很大变化,它对http1提出了更高的要求。我们现在有内容丰富的网站,也有高清视频等。我们希望所有网页都能快速加载,并具有更好的安全性等。HTTP/1 协议存在许多问题,如 HOL 问题、HTTP 头文件过长、为获得更多资源而打开许多 TCP 连接等。

所有这些都要求对该协议进行修订,IETF 于 2015 年发布了一个新版本,称为http2,也就是当前版本。

http2引入了报头字段压缩,并允许在同一连接上进行多次并发交换,从而更有效地利用网络资源并减少延迟感。  它对 HTTP 头数据进行了有效编码,并允许在同一连接上交错发送请求和响应信息。此外,它还能对请求进行优先排序,使更重要的请求更快完成,并提高性能。

因此,与 HTTP/1.x 相比,可以使用更少的 TCP 连接,从而使产生的协议对网络更友好。因此,连接持续时间更长,与其他流量的竞争减少,从而提高了网络容量的利用率。最后,http2 还可以支持二进制消息,使信息处理更有效。

然而,http2也存在一些问题,如 TCP 线头阻塞。http2的其他显著问题包括流重用攻击和http2流控制的安全风险。

更新后的 HTTP 协议称为http3,于 2020 年 8 月推出,基于 QUIC 网络协议。推出这个新版本的 HTTP 是为了通过在 UDP 上发送加密数据来增强http2,它力求取得许多重大进步。

http3并不是要完全取代http2:相反,http3目的是在特定情况下使用时提高速度,特别是流传送的情况下,http3将更能保证大量持续的流数据输出,如视频、音频和流数据,当然,正确性上可能会大折扣。

日常如果无法使用http3,可以将http3 用作备份。