HTTP2.0和HTTP3.0新特性!

HTTP2.0

HTTP2.0和HTTP1.X相比的新特性:

新的二进制格式

  • HTTP1.x的解析是基于文本。
  • HTTP2.0的协议解析采用二进制格式,实现方便且健壮。

多路复用

  • 一个Request对应一个ID,这样一个连接上可以有多个Request。
  • 每个连接的Request可以随机的混杂在一起,接收方可以根据Request的ID将Request再归属到各自不同的服务端请求里面。

Hseader压缩:

  • HTTP1.x的Header带有大量信息,而且每次都要重复发送。

  • HTTP2.0使用Encoder来减少需要传输的Header大小,通讯双方各自Cache一份Header Fields表,差量更新HTTP头部。

  • 只发送改变的,既避免了重复Header的传输,又减小了需要传输的大小。

服务端推送

  • HTTP2.0具有Server Push功能。

HTTP2.0的多路复用和HTTP1.1中的长连接复用有什么区别?

HTTP/1.0:

  • 一次请求-响应,建立一个连接,用完关闭。
  • 每一个请求都要建立一个连接。

HTTP/1.1:

  • 若干个请求排队串行化单线程处理,后面的请求等待前面请求的返回才能获得执行机会。
  • 一旦有某请求超时等,后续请求只能被阻塞。

HTTP/2.0:

  • 多个请求可同时在一个连接上并行执行。
  • 某个请求任务耗时严重,不会影响到其它连接的正常执行。

HTTP3.0

底层的传输协议由 TCP 协议改为使用基于 UDP 协议的 QUIC 协议:

  • 在应用层实现了拥塞控制、可靠传输的特性。

HTTP2HTTP3 都默认建立在 HTTPS 之上。