HTTP协议的演变

HTTP/1.1 相比HTTP/1.0 性能上的改进:

  • 使用TCP 长连接的方式去改善了HTTP/1.0 短连接造成的性能开销。
  • 支持管道传输,可以一次性发送多个请求,减少整体的响应时间。

但HTTP/1.1 还有性能瓶颈

  • 只能压缩Body的部分,如果首部信息越多延迟越大
  • 发送冗长的首部,每次发送相同的首部造成的浪费较多。
  • 服务器是按照请求的顺序响应的,如果服务器慢,会导致客户端一直请求不到数据
  • 没有请求优先级
  • 请求只能从客户端开始,服务器只能被动响应。

HTTP/2 相比HTTP/1.1性能改进:

  • 头部压缩。协议会进行消除重复的部分。这就是HPACK算法:在客户端和服务器同时维护一个信息表,所有字段都会存入这个信息表之中,生成一个索引号,提高速度了。
  • 二进制格式。HTTP/2 全面采用二进制格式,头信息和数据体都是二进制,并且统称为帧: 头信息帧和数据帧。

在这里插入图片描述

  • 数据流。HTTP/2 的数据包不是按顺序发送的,同一个链接里面的数据包,属于不同的回应。每个请求或回应的所有数据包,成为一个数据流。每个数据流都有一个标记,客户端发送的为奇数,服务器发送的为偶数。
  • 客户端指定数据流的优先级。优先级高的请求,服务器会先响应该请求。
  • 多路复用。HTTP/2 是可以在一个连接中并发多个请求或者回应,而不用按照顺序一一对应。降低延迟,大幅提高了链接的利用率。
  • 服务器推送。HTTP/2 可以主动向客户端推送消息。

HTTP/2 有哪些缺陷? HTTP/3做了哪些优化?

  • HTTP2 存在的问题,多个HTTP请求在复用一个TCP连接的时候,下层的TCP协议是不知道有多个HTTP请求的。所以一旦发生了丢包现象,就会触发TCP的重传机制,这样在一个
    TCP 连接中的所有的 HTTP 请求都必须等待这个丢了的包被重传回来。

  • HTTP 3 把HTTP 下层的TCP协议改为UDP协议
    在这里插入图片描述

HTTP3目前采用了QUIC协议,尚未广泛应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值