HTTP-2做错了什么?刚刚辉煌2年就要被弃用了!?

HTTP/2在2018年达到高峰,但随着HTTP/3的临近,HTTP/2的TCP队头阻塞和握手时长问题日益凸显。尽管HTTP/2通过多路复用解决了HTTP队头阻塞,但TCP层面的问题仍存在。由于中间设备和操作系统更新滞后,升级TCP协议困难,HTTP/3选择基于UDP并进行改造以解决这些问题。
摘要由CSDN通过智能技术生成

最近一段时间以来,关于HTTP/3的新闻有很多,越来越多的国际大公司已经开始使用HTTP/3了。

image

image

所以,HTTP/3已经是箭在弦上了,全面使用只是个时间问题,那么,作为一线开发者,我们也是时候了解下到底什么是HTTP/3,为什么需要HTTP/3了。

于是,我准备开始写这篇文章,但是要想把HTTP/3的事情说清楚,一定绕不过的问题就是HTTP/2,所以写着写着,篇幅越来越多,于是我就把他们分成了上下两篇。

这一篇我们主要来回顾下HTTP/2,然后再来重点看一下HTTP/2存在哪些问题,为什么要被弃用。

HTTP/2 辉煌不在?

虽然HTTP/2标准在2015年5月就以RFC 7540正式发表了,并且多数浏览器在2015年底就支持了。

但是,真正被广泛使用起来要到2018年左右,但是也是在2018年,11月IETF给出了官方批准,认可HTTP-over-QUIC成为HTTP/3。

2018年的时候,那时候HTTP/2还是个新技术,刚刚开始有软件支持,短短两年过去了,现在HTTP/3已经悄然而至了。

**根据W3Techs的数据,截至2019年6月,全球也仅有36.5%的网站支持了HTTP/2。**所以,可能很多网站还没开始支持HTTP/2,HTTP/3就已经来了。

所以,对于很多网站来说,或许直接升级HTTP/3是一个更加正确的选择。

回顾 HTTP/2

我默认大家对HTTP/2有了一定的基本了解。

我们知道,HTTP/2的诞生,主要是为了解决HTTP/1.1中的效率问题,HTTP/2中最核心的技术就是多路复用技术,即允许同时通过单一的HTTP/2.0连接发起多重的请求-响应消息。

image

同时还实现了二进制分帧、header压缩、服务端推送等技术。

从HTTP/1.0诞生,一直到HTTP/2,在这24年里,HTTP协议已经做过了三次升级,但是有一个关键的技术点是不变的,那就是这所有的HTTP协议,都是基于TCP协议实现的。

流水的HTTP,铁打的TCP。这是因为相对于UDP协议,TCP协议更加可靠。

虽然在HTTP/1.1的基础上推出HTTP/2大大的提升了效率,但是还是有很多人认为这只是个"临时方案",这也是为什么刚刚推出没多久,业内就开始大力投入HTTP/3的研发与推广了。

而这背后的深层次原因也正是因为他还是基于TCP协议实现的。TCP协议虽然更加可靠,但是还是存在着一定的问题,接下来具体分析下。

HTTP/2 问题

队头阻塞

队头阻塞翻译自英文head-of-line blocking,这个词并不新鲜,因为早在HTTP/1.1时代,就一直存在着队头阻塞的问题。

但是很多人在一些资料中会看到有论点说HTTP/2解决了队头阻塞的问题。但是这句话只对了一半。

只能说HTTP/2解决了HTTP的队头阻塞问题,但是并没有解决TCP队头阻塞问题!

如果大家对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值