HTTP/3简介
虽然HTTP/2解决了很多之前旧版本的问题,但是它还是存在一个巨大的问题,主要是底层支撑的TCP协议造成的。
上文提到HTTP/2使用了多路复用,一般来说同一域名下只需要使用一个TCP连接。但当这个连接中出现了丢包的情况,那就会导致HTTP/2的表现情况反倒不如HTTP/1了。
因为在出现丢包的情况下,整个TCP都要开始等待重传,也就导致了后面的所有数据都被阻塞了。但是对于HTTP/1.1来说,可以开启多个TCP连接,出现这种情况反到只会影响其中一个连接,剩余的TCP连接还可以正常传输数据。
那么可能就会有人考虑到去修改TCP协议,其实这已经是一件不可能完成的任务了。因为TCP存在的时间实在太长,已经充斥在各种设备中,并且这个协议是由操作系统实现的,更新起来不大现实。
基于这个原因,Google就另起炉灶搞了一个基于UDP协议的QUIC协议,并且使用在了HTTP/3上,HTTP/3之前名为HTTP-over-QUIC,从这个名字中我们也可以发现,HTTP/3最大的改造就是使用了QUIC。