HTTP2.0 和 HTTP1.1 的区别
多路复用(优化管道),基于HTTPS,二进制帧,Header压缩,服务器推送
多路复用:HTTP/2.0 在一个连接里,客户端和浏览器都可以同时发送多个请求和响应,而不用按照顺序一一对应,这样避免了“队头堵塞”(优化管道)
- TCP连接:HTTP2使用单个TCP连接来传输多个请求和响应,从而减少连接建立的开销。
- 流(Stream):在一个TCP连接中,可以有多个流。每个流都有一个唯一的Stream ID,用于区分不同的请求和响应。流是逻辑上的通道,允许数据的并行传输
- 消息(Message):每个流可以包含一个或多个消息。消息实际上对应于HTTP/1.x中的请求或响应,由HTTP头部和消息体构成。
- 帧(Frame):消息由一个或多个帧构成,帧是HTTP/2中最小的数据单元。帧以二进制格式存储,允许更高效的传输。
二进制帧:虽然底层的数据传输都是以二进制进行,HTTP/2.0 使用二进制帧进行数据传输,而 HTTP/1.1 则使用文本格式的报文。二进制帧更加紧凑和高效,减少了传输的数据量和带宽消耗。
头部压缩(Header Compression):HTTP/1.1 只支持Body压缩;HTTP/2.0 还支持Header压缩,使用了专门为Header压缩而设计的 HPACK 算法(在客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,以后就不发送同样字段了,只发送索引号,这样就提高速度了),减少了网络开销。
服务器推送:HTTP/2.0 支持服务器推送,可以在客户端请求一个资源时,将其他相关资源一并推送给客户端,从而减少了客户端的请求次数
基于HTTPS:HTTP2.0是基于HTTPS的,保证了安全性