HTTP1和HTTP2和HTTP3的区别

超文本传输协议是一个简单的请求-响应协议,它通常运行在TCP之上。

目录

HTTP1.1:

 HTTP2

HTTP3

参考文献


HTTP1.1:

特点:

1.一条链接只能一次请求一次返回这样子来回。一般的我们浏览器会帮我们一次次请求和收到。

2.每次链接都需要TCP经过3次握手。为了加快速度,浏览器一般会同一连接6个请求路。

但是即使有6个连接还是有问题。

HTTP1和HTTP2和HTTP3的区别_第1张图片

即使其他5个文件收到了,其中一个CSS文件没收到导致浏览器无法渲染。所以HTTP1可以允许一个连接发送多个请求,但是多个请求的响应顺序一定要按顺序相应才行。所以在开发上很多人将多个文件合并在一起,作为一个文件请求发送过来。

 后来,1.为了安全连接,HTTP+TSL  = 3+4或者3+2次握手.

2.再加上TCP慢启动

3. HTTP1首部不压缩臃肿和冗余

 HTTP2

相比于HTTP1, HTTP2多了多路复用。主要解决HTTP1队头阻塞问题。单个TCP就能进行交错发送和相应,并且请求和相应不影响。这是因为HTTP2的桢多了流标识符,利用流标识符发送就可以相应组合。

HTTP2首部和主体都压缩。 使用HPACK压缩算法。这个要求浏览器需要保存HPACK压缩表。另外,重复的首部可以去掉,cooket可以作为动态信息加入动态表。

HTTP2的TCP+TLS 的握手问题还是没有解决。并且HTTP2一次请求会默认把所有觉得需要的链接一口气发送,这样导致服务器压力大,DDOS攻击难防。

HTTP3

整合TCP+TLS的握手。QUIC握手只需要来回2次握手,如果是恢复的话还可以0次RTT。

HTTP1和HTTP2和HTTP3的区别_第2张图片

参考文献

HTTP/1.1,HTTP/2和HTTP/3的区别_哔哩哔哩_bilibili

你可能感兴趣的:(网络,linux,服务器,云计算,网络协议)