HTTP1.0,HTTP1.1和HTTP2的区别

围观别人笔试,问到了这个东西,他答的懵了我听得也懵了,面完回来赶快记一下

HTTP1.0和HTTP1.1

  • 缓存处理
    HTTP1.0缓存控制主要靠header中的if-modified-since和Expires,HTTP1.1则更为丰富,加上了Unmodified-since,if-match和if-None-match等字段来控制缓存

  • 带宽优化和网络连接
    相比HTTP1.0,1.1在头中加入了range域,此域允许只请求资源的一部分,便于开发者自由选择以充分利用带宽和连接

  • 错误通知的处理
    增加了新的状态相应码

  • Host头处理
    在请求头中加入了Host头域,用于应对一个ipd地址上有多个服务器的情况(负载均衡,端口转发?),host可以是一个ip地址,也可以是一个ip,并在其后方跟上具体的端口号

HTTP1.1和HTTP2.0

  • 二进制格式
    相比HTTP1.1,HTTP2.0使用了二进制格式而不是纯文本格式,相比HTTP1.0来说更方便和健壮

  • 多路复用
    HTTP1.1的请求是管道化的,只有等一个消息响应完成后才能进行下一个消息,而HTTP2.0则有多个消息交织在一起,提高了通信的效率。即在一个HTTP连接上可以承载多个HTTP消息

  • Header压缩
    HTTP2会使用Encoder对header进行压缩,且相对于HTTP1.1每次发送都需要发送header的问题,HTTP2选择使用HPACK算法在请求两端维护一个静态表,具体传输时头部未被改变的段不会被传输,而是由双方的静态表获得。有效压缩了头部

  • 服务端推送
    服务端推送使得服务器端在回应请求时可以同时推送资源文件,减少了后续请求

你可能感兴趣的:(HTTP1.0,HTTP1.1和HTTP2的区别)