HTTP2背景
SPDY
HTTP/2基于SPDY开发
SPDY基于 SSL协议和TCP协议开发
基础实现
基于tcp协议实现数据传输
基于TLS协议进行安全传输 (使用加密模式时),可以选择不加密
没有解决 TCP里队头阻塞的问题
SpringCloud里用的应该是 http2
http2对http1优化内容
a 连接复用
b请求头压缩,HPACK压缩算法![在这里插入图片描述](https://img-blog.csdnimg.cn/468ae475a2f443c3bc3f4d4e0d90f68f.png)
c 数据格式,完全使用二进制的帧去传输
d 多个数据包以组为单位去发送数据
e加密传输
基于https,对数据包进行加密
http1 里 报文里都是明文数据
默认基于https进行加密,但也可以用二进制的明文传输,不进行加密
f 服务器预推送
在某些条件下、服务器可以主动向客户端推送数据信息,在响应请求时、会把相关的数据页主动推送过去
如 请求html网页时,服务器会主动把相关的css文件、静态资源文件等推送给客户端
HTTP2 的缺点
丢包时 阻塞全部请求、 性能奇差
Http3的优化
基于UDP实现QUIC,然后基于QUIC实现HTTP3
QUIC
实现了 流量控制、可靠传输、丢包重传、有序的功能
内部集成了TLS 1.3,实现了加密传输,减少了握手所花费的RTT个数