?HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC)

每一代HTTP解决了什么问题?

下面的图表显示了它们的关键特点。

??HTTP 1.0于1996年完成并完全记录。每个向同一服务器的请求需要一个单独的TCP连接。

??HTTP 1.1于1997年发布。TCP连接可以保持打开以进行重用(持久连接),但它无法解决HOL(线路开头阻塞)问题。

HOL阻塞-当浏览器中允许的并行请求数量用完时,后续请求需要等待前面的请求完成。

??HTTP 2.0于2015年发布。它通过请求多路复用解决了HOL问题,该复用消除了应用层中的HOL阻塞,但是在传输(TCP)层仍存在HOL问题。

正如您在图表中看到的,HTTP 2.0引入了HTTP“流”的概念:一种允许将不同的HTTP交换多路复用到同一TCP连接的抽象。每个流不需要按顺序发送。

??HTTP 3.0的第一稿于2020年发布。它是HTTP 2.0的继任者。它使用QUIC而不是TCP作为底层传输协议,因此消除了传输层中的HOL阻塞。

QUIC基于UDP。它将流作为一流公民引入传输层。QUIC流共享相同的QUIC连接,因此无需创建新连接,也不需要慢启动,但QUIC流独立交付,因此在大多数情况下影响一个流的数据包丢失不会影响其他流。

原创文章,作者:小技术君,如若转载,请注明出处:https://www.sudun.com/ask/34050.html

(0)
小技术君's avatar小技术君
上一篇 2024年4月4日 上午7:49
下一篇 2024年4月4日 上午7:51

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注