HTTP2.0与HTTP1.1的区别?

5 分钟阅读 548 字 + 727 词
HTTP2.0采用的是== 二进制格式传输数据 ==,而 不是文本格式 ,使得==解析可以更加高效==,减少了解析时间。
HTTP2.0还采用了== 头部压缩 ==,实现是在== 两端建立一个索引表 ==,对相同的头只==发送索引表中的索引==。
HTTP2.0还支持== 多路复用 ==,允许在== 单个TCP连接上切分成多个流 ==, 每个流有自己的ID ,它是一个虚拟的通道,并且还可以 设置优先级
HTTP 2.0 还将所有的== 传输信息分割为更小的帧 ==。常见的帧有== Header 帧 ==,用于**==传输 Header 内容== ,并且 会开启一个新的流**。再就是 ==Data 帧== ,用来传输 正文实体
多个 Data 帧属于同一个流 。通过这两种机制,HTTP 2.0 的客户端可以将== 多个请求分到不同的流中 ==,然后将请求内容拆成帧,进行二进制传输。这些帧可以打散乱序发送, 然后根据== 每个帧首部的流标识符重新组装 ==,并且可以根据优先级,决定优先处理哪个流的数据。
但是还是== 受限于tcp层的队头阻塞 ==,这时候其他流的包的顺序号如果在tcp层是更早的,那么这个包没到达,会影响其他流的数据收发。
img
参考答案:
  1. 二进制协议 HTTP/2.0 采用二进制格式传输数据 ,而非 HTTP/1.1 文本格式 ,使得解析更高效,减少了解析时间。
  2. 多路复用 HTTP/2.0 支持多路复用 ,允许在 单个TCP连接上并行交错 发送多个请求和响应,解决了 HTTP/1.1 中的 队头阻塞 问题。
  3. 头部压缩 HTTP/2.0 引入了 HPACK 压缩算法 ,对 请求和响应的头部信息进行压缩,减少了冗余头部信息的传输 ,提高了传输效率。
  4. 服务器推送 HTTP/2.0 允许 服务器主动推送资源给客户端 ,而不需要客户端明确请求,这可以减少页面加载时间。
  5. 优先级和依赖 HTTP/2.0 允许 客户端为请求设置优先级 ,并 表达请求之间的依赖关系,资源加载更加有序