HTTP协议-HTTP3

作者: Wu杰语 | 来源:发表于2019-10-16 18:21 被阅读0次

    序言

    上节提到HTTP3通过更加底层的传输层的优化来提升效率,究竟如何,让我们一起看一下。

    HTTP3的优化

    image.png

    通过这个图片,我们可以很清楚的看到,HTTP2和HTTP3的传输层是完全不同的协议,HTTP3的传输层是UDP协议。我们知道UDP协议是个不可靠的协议,而TCP协议是可靠协议,怎样保证可靠的呢,重传。

    QUIC协议

    在UDP协议之上,新增了QUIC协议。我的理解是由于TCP协议相对于UDP协议控制比较复杂耗时,因此针对HTTP应用贴身开发了QUIC协议代替TCP协议中关于可靠、流量控制的部分。

    • QUIC协议特性
      • QUIC协议提供类似于HTTP2的流功能
      • QUIC协议使用流ID取代IP和端口,这样就能实现连接迁移。例如说从4G信号切换到wifi,下层的IP和端口变了,但是由于QUIC的流ID没有变,这个连接不会变,可以继续使用这个连接。

    然后我们看一下HTTP3在QUIC上有什么变化呢?HTTP3由HTTP2进化,HTTP2最大的变化就是基于二进制流的传输。那么到HTTP3,由于QUIC已经管理了流,HTTP3本身就减负了,将流管理下移QUIC,而本身就直接调用QUIC的接口就可以了。

    HTTP3如何工作
    • 我们回想一下HTTPS,HTTPS是类似于TCP握手的工作方式,先工作在HTTP1上,通过HTTP1传递交换得到秘钥,然后切换到HTTPS上工作。
    • 接着我们回想一下HTTP2,HTTP2也是基于TLS的,所以HTTP2的工作方式和HTTPS也是同样的过程,需要握手建立TLS连接,只是TLS连接完成后,发送一个HTTP2的连接确认消息,确认后,客户端服务器使用HTTP2进行连接通讯。
    • 最后让我们看下HTTP3如何工作。首先要建立好HTTP2连接,然后发送HTTP2扩展帧,这个帧包含IP和端口,浏览器收到扩展帧,使用该IP和端口,使用QUIC建立连接,如果成功,断开HTTP2,升级为HTTP3。

    这三者,都用TCP的握手协议去理解,都是握手,不同的是握手方式不一样。

    小结

    HTTP3是在基础上动土,对于技术族来说可谓是脑洞大开。这就又说明了基础的重要性。

    相关文章

      网友评论

        本文标题:HTTP协议-HTTP3

        本文链接:https://www.haomeiwen.com/subject/gumumctx.html