http 2.0 学习过程中的疑问

183 阅读1分钟

Http 2 主要特性

  • 解决队首阻塞问题
  • server push
  • 多路复用

http 1.1 的一些疑问

http 1.1 的队首阻塞

对于同一个tcp连接,http1.1允许一次发送多个http1.1请求,也就是说,不必等前一个响应收到,就可以发送下一个请求,这样就解决了http1.0的客户端的队首阻塞。但是,http1.1规定,服务器端的响应的发送要根据请求被接收的顺序排队,也就是说,先接收到的请求的响应也要先发送。这样造成的问题是,如果最先收到的请求的处理时间长的话,响应生成也慢,就会阻塞已经生成了的响应的发送。也会造成队首阻塞。

可见,http1.1的队首阻塞发生在服务器端。

http 1.1 的队首阻塞发生在服务器端,但是现在的服务器端都能支持异步返回请求,前一个请求耗时很久,后一个请求耗时很快的话,后一个能返回,这个问题还会存在吗?

http 1.1 合并请求有必要吗?

在 http 1.1,通用的优化手段就是合并文件,减少请求数,但是 http 1.1 默认 keep alive 的话,如果多个资源文件都是来自同一个 domain,那多个请求也不会增加 rtt 和慢启动的消耗,这个优化为什么会存在?