HTTP/2.0的新特性
2020-12-29 02:27
标签:性能 要求 阻塞 导致 相同 locking 文本 大小 技术 HTTP/1.1使用管道技术(Pipelining),,使得: 在HTTP/1.x中,通过文本形式传输数据 在HTTP/2.0中,每个请求/响应都可以看作一个流(stream),并给每个stream分配id 在HTTP/2.0中,使用HPACK压缩格式对header进行编码,减少header大小 服务器可以在客户端某个请求后,主动推送其他资源 虽然HTTP/2.0协议本身并没有声明,但是Chrome等浏览器强制要求使用HTTP/2.0时必须要用上SSL,也就是说必须要用https:// HTTP/2.0的新特性 标签:性能 要求 阻塞 导致 相同 locking 文本 大小 技术 原文地址:https://www.cnblogs.com/baebae996/p/13823503.html一、HTTP/1.1的主要缺陷
1、队首阻塞
客户端可以并行发送多个请求,服务器也可以并行处理多个请求
但是根据FIFO(先来先服务)的规则,
服务器要按照接收请求的顺序 来返回响应
客户端接收响应的顺序也要和自己发送请求的顺序相对应
这样就会导致队首阻塞(Head of line blocking)问题
如果服务器处理第x个请求的时间过长,那么对于序号大于x的所有请求,即使它们已经被服务器处理完、生成响应,也只能阻塞等待2、只能由客户端发起请求
3、请求/响应报文的首部信息冗余
4、报文数据不强制压缩,导致传输量大
二、HTTP/2.0的特性
1、二进制传输
而在HTTP/2.0中,所有数据都会被分割,并在应用层和传输层之间增加一个二进制分帧层
首部信息被封装到Header帧,请求主体被封装到Data帧,采用二进制编码2、多路复用
一个TCP连接上可以有多个stream,stream中的帧都是乱序的
到对端后 再根据帧的stream_id重新组装
这样可以避免队首阻塞问题,极大地提高传输性能3、首部压缩
并在通信两端维护索引表,记录出现过的header
对于相同的header,不必多次发送4、服务器推送
5、更安全