HTTP/1.1、HTTP/2、HTTP/3对HTTP的改进

HTTP/1.1的改进

HTTP/1.0的缺点

  1、HTTP/1.0每一次请求都要建立一次连接,然后断开连接,系统开销大。
  2、发送方每次都要等上次发出的请求得到响应了才能发送下一个请求,效率太低。

HTTP/1.1的改进

  1、TCP连接使用长连接,减少频繁建立连接释放连接的系统开销。
  2、支持管道进行网络传输,不用等上一个请求被响应就能发送下一个请求,提升效率。

HTTP/2的改进

HTTP/1.1的性能缺陷

  1、请求/响应的头部过大,会增大延迟,要减小延迟只能压缩请求/响应体。
  2、发送过多相同的头部,浪费资源。
  3、虽然HTTP/1.1支持管道进行传输,提升请求发送的效率,但是服务端对请求的响应是按顺序响应的,如果前面的请求没有处理,那么后面的也得不到处理,称为队头阻塞。
  4、请求没有优先级的区分。对于客户端来说,有的请求可能急需处理,而有些请求即使慢一些响应也能接受,而HTTP/1.1没有考虑到这方面。
  5、请求只能由客户端发出,服务端只能被动响应。

HTTP/2的优化

  1、头部压缩:如果发送方同时发出多个请求,且头部相同,则会消除重复的部分。实现原理是在客户端和服务端维护一个索引表,如果有相同的字段就发送索引号即可。
  2、二进制格式:HTTP/2采用二进制格式,计算机无需将文本转化成二进制,提升了效率。
  3、数据流:一次请求或响应作为一个数据流,数据流可以并发发送数据帧给对方。在不用建立多条连接的情况下也能解决队首阻塞的问题。
  4、多路复用:一个连接中并发多个请求或响应,接收方不用按照顺序进行响应。
  5、服务器推送:服务器不再是被动的,也可以主动给客户端发送消息。例子:服务器可以提前把可能用到的CSS、JS等静态资源县发给客户端,这样不用等到请求的时候再发送。

HTTP/3的改进

HTTP/2的缺陷

  多个HTTP请求复用一个TCP连接,一旦发生了丢包,触发重传机制,一个连接中的所有HTTP请求都要等这个重传的包。也就是说一旦发生丢包,所有的HTTP请求都会阻塞。

HTTP/3的改进

  HTTP/3把TCP改成了UDP,基于UDP的QUIC协议能实现类似TCP的可靠传输。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值