【计算机网络】HTTP 各版本差异

http1.0

它使⽤⼀条⻓连接(keep-alive)传输⼀个请求和响应。它的特点是每次请求和响应完毕后都会销毁TCP 连接。同时前一个响应完成后才发送下一个请求。这样做有两个问题:

  1. 无法多路复用

    只能按顺序传输⼀个请求和响应,⽆法同时传输多个请求和响应。

  2. 队头阻塞

    如果前一个请求被某种原因阻塞,导致后续请求无法连接。

  3. 每次请求需要新建连接

    每次请求都需要新建连接,连接的建⽴和关闭过程会消耗时间。

http1.1

http1.1 是 http1.0 的改进版.它做出了以下改进

  1. 长连接 / 持久连接 / 连接复用

    http1.1允许在请求时增加请求头connection:keep-alive, 这样便允许后续的客户端在一段时间内复用之前的TCP 连接。通过⼀个 TCP 连接传输多个请求和响应,减少了连接建⽴和关闭的时间。

  2. 管道化

    基于长连接的基础,管道化可以不等第一个请求响应继续发送后面的请求,但响应的顺序还是按照请求的顺序返回。但是各个请求之间存在依赖关系,一个请求出错,后面的请求都失败。

  3. 缓存处理

    新增响应头 cache~control, 用于实现客户端缓存。

  4. 断点传输

    在上传/下截资源时,如果资源过大,将其分割为多个部分,分别上传/下载,如果遇到网绍故障,可以从已经上传/下载好的地方继续请求,不用从头开始,提高效率。

在这里插入图片描述

http2.0

http2.0优化了传输效率,它主要有以下改进:

  1. 二进制分帧

    将传输的消息分为更小的二进制帧,每帧有自己的标识序号,即便被随意打乱也能在另一端正确组装。可以独⽴传输,解决了队头阻塞问题,提⾼了传输效率。

  2. 多路复用

    允许同时通过同⼀个连接并⾏传输多个请求和响应,解决了队头阻塞问题。

  3. 头部压缩

    http2.0通过字典的形式,将头部中的常见信息替换为更少的字符,极大的减少了头部的数据量,从而实现更小的传输量。

http3.0

  • QUIC 协议:使⽤ QUIC 协议替代 TCP,⽀持更快的连接建⽴和更快的重传,能够解决 TCP 队头阻塞和 TCP 握⼿延迟的问题。
  • 数据流分离:将⼀个连接分成多个数据流,每个数据流都有独⽴的 ID,可以独⽴控制和传输数据。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秀秀_heo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值