HTTP/3与HTTP/2的比较

HTTP/3面向QUIC设计,QUIC是一个自己处理数据流的传输层协议。

HTTP/2面向TCP设计,因此数据流在HTTP层处理。

相似之处

这两个协议为客户端提供了几乎相同的功能集。

  • 两者都提供数据流

  • 两者都提供服务器推送

  • 两者都有头部压缩,QPACK与HPACK的设计非常类似

  • 两者都通过单一连接上的数据流提供复用

  • 两者都提供数据流的优先度设置

不同之处

两个协议的主要不同点在于细节,不同之处主要由HTTP/3使用的QUIC带来。

  • 得益于QUIC的0-RTT握手,HTTP/3可以提供更好的早期数据支持,而TCP快速打开和TLS通常只能传输更少的数据,且经常存在问题。

  • 得益于QUIC,HTTP/3的握手速度比TCP+TLS快得多。

  • HTTP/3不存在明文的不安全版本。尽管在互联网上很少见,HTTP/2还是可以不配合HTTPS来实现和使用。

  • 通过ALPN拓展,HTTP/2可以直接在TLS握手时进行协商。HTTP/3基于QUIC,所以需要凭借响应中的 Alt-Svc: 头部来向客户端宣告。

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「IT平头哥联盟」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""