[网络] 字节一面~ 2. HTTP 2 与 HTTP 1.x 有什么区别

  1. 头部压缩
    在 HTTP2 当中,如果你发出了多个请求,并且它们的头部(header)是相同的,那么 HTTP2 协议会帮你消除同样的部分。(其实就是在客户端和服务端维护一张索引表来实现)
  2. 二进制格式
    HTTP1.1 采用明文的形式
    HTTP/2 全⾯采⽤了⼆进制格式,头信息和数据体都是⼆进制
  3. 数据流
    HTTP/2 的数据包不是按顺序发送的,同⼀个连接⾥⾯连续的数据包,可能属于不同的回应。(对数据包做了标记,标志其属于哪一个请求,其中规定客户端发出的数据流编号为奇数,服务器发出的数据流编号为偶数。客户端还可以指定数据流的优先级,优先级⾼的请求,服务器就先响应该请求)
  4. IO多路复用
    如:在⼀个连接中,服务器收到了客户端 A 和 B 的两个请求,但是发现在处理 A 的过程中⾮常耗时,索性就先回应 A 已经处理好的部分,再接着回应 B 请求,最后再回应 A 请求剩下的部分。
    HTTP/2 可以在⼀个连接中并发多个请求或回应。
    5.服务器推送
    服务器可以主动向客户端发送请求

你可能感兴趣的:(#,网络,网络,http,网络协议)