美文网首页
http1/2/3协议的对比(防忘)

http1/2/3协议的对比(防忘)

作者: videring | 来源:发表于2020-08-05 23:25 被阅读0次

    记性不好,防忘。
    参考
    一文读懂 HTTP/1HTTP/2HTTP/3
    解读HTTP/2与HTTP/3 的新特性

    对比图
    对比项 http1.1 http2 http3
    请求 Chrome有个机制,对于同一个域名,默认允许同时建立 6 个 TCP持久连接,在一个管道中同一时刻只能处理一个请求,在当前的请求没有结束之前,其他的请求只能处于阻塞状态 1.在应用层使用二进制分帧方式传输,服务器单位时间接收到的请求数变多,可以提高并发数,支持了多路复用;2.多路复用,就是在一个 TCP 连接中可以存在多个流(流由帧组成),允许在一个连接上无限制并发流,因为请求在一个通道上,TCP 效率更高;3.高优先级的请求会被优先处理 1.由于 QUIC 是基于 UDP 的,所以 QUIC 可以实现 0-RTT 或者 1-RTT 来建立连接,可以大大提升首次打开页面的速度;2.集成了 TLS 1.3 加密,在完全握手情况下,需要 1-RTT 建立连接。 TLS1.3 恢复会话可以直接发送加密后的应用数据,不需要额外的 TLS 握手,也就是 0-RTT。3.QUIC 是为多路复用从头设计的,携带个别流的的数据的包丢失时,通常只影响该流。4.TCP 是按照四要素(客户端 IP、端口, 服务器 IP、端口)确定一个连接的。而 QUIC 则是让客户端生成一个 Connection ID (64 位)来区别不同连接。只要 Connection ID 不变,连接就不需要重新建立,即便是客户端的网络发生变化
    头部 由于报文Header一般会携带"User Agent""Cookie""Accept""Server"等许多固定的头字段(如下图),多达几百字节甚至上千字节,但Body却经常只有几十字节,一是增加传输成本,二是大量重复 第一次请求发送所有所需头部信息,后面每次请求和响应只发送差异头部,一般可以达到 50%~90% 的高压缩率 -
    安全性 所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份 支持使用 HTTPS 进行加密传输 支持使用 HTTPS 进行加密传输
    服务端推送 不支持 支持,在浏览器刚请求HTML的时候就提前把可能会用到的JS、CSS文件发给客户端,减少等待的延迟,这被称为"服务器推送" 支持 ,基于TLS1.3
    其他 - 1.TCP 以及 TCP+TLS 建立连接的延时;2.TCP 的队头阻塞并没有彻底解决;3.多路复用导致服务器压力上升;4.多路复用容易 Timeout 1.改进的拥塞控制、可靠传输,应用程序层面就能实现不同的拥塞控制算法;2.单调递增的 Packet Number — 使用 Packet Number 代替了 TCP 的 seq,避免重传引起的二义性;3.不允许 Reneging — 一个 Packet 只要被 Ack,就认为它一定被正确接收;4.前向纠错(FEC);5.更多的 Ack 块和增加 Ack Delay 时间,在丢包率比较高的网络下,可以提升网络的恢复速度,减少重传量

    相关文章

      网友评论

          本文标题:http1/2/3协议的对比(防忘)

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