HTTP/2.0的新特性

2020-12-29 02:27

阅读:676

标签:性能   要求   阻塞   导致   相同   locking   文本   大小   技术   

一、HTTP/1.1的主要缺陷

1、队首阻塞

HTTP/1.1使用管道技术(Pipelining),,使得:
客户端可以并行发送多个请求,服务器也可以并行处理多个请求
但是根据FIFO(先来先服务)的规则,
服务器要按照接收请求的顺序 来返回响应
客户端接收响应的顺序也要和自己发送请求的顺序相对应
这样就会导致队首阻塞(Head of line blocking)问题
如果服务器处理第x个请求的时间过长,那么对于序号大于x的所有请求,即使它们已经被服务器处理完、生成响应,也只能阻塞等待

2、只能由客户端发起请求

3、请求/响应报文的首部信息冗余

4、报文数据不强制压缩,导致传输量大

二、HTTP/2.0的特性

1、二进制传输

在HTTP/1.x中,通过文本形式传输数据
而在HTTP/2.0中,所有数据都会被分割,并在应用层和传输层之间增加一个二进制分帧层
首部信息被封装到Header帧,请求主体被封装到Data帧,采用二进制编码

2、多路复用

在HTTP/2.0中,每个请求/响应都可以看作一个流(stream),并给每个stream分配id
一个TCP连接上可以有多个stream,stream中的帧都是乱序
到对端后 再根据帧的stream_id重新组装
这样可以避免队首阻塞问题,极大地提高传输性能

3、首部压缩

在HTTP/2.0中,使用HPACK压缩格式对header进行编码,减少header大小
并在通信两端维护索引表,记录出现过的header
对于相同的header,不必多次发送

4、服务器推送

服务器可以在客户端某个请求后,主动推送其他资源

5、更安全

虽然HTTP/2.0协议本身并没有声明,但是Chrome等浏览器强制要求使用HTTP/2.0时必须要用上SSL,也就是说必须要用https://

HTTP/2.0的新特性

标签:性能   要求   阻塞   导致   相同   locking   文本   大小   技术   

原文地址:https://www.cnblogs.com/baebae996/p/13823503.html


评论


亲,登录后才可以留言!