HTTP协议发展:http1.0 http1.1 http2.0 http3.0

http1.0 1.1 2.0 3.0:

http1.0,在发送完一个http响应后,会断开tcpl链接

http1.1,除非进行设定,否则浏览器和服务器会维持一段tcp链接。不支持多路tcp。流水线式工作,要保证顺序正确

http2.0,支持多路tcp。同时,每个流相对独立,所以不需要按照顺序发送或者接收

http3.0。2020年后才开始发布,称为quic的新协议

HTTP协议发展

1、 HTTP历史进程

  • HTTP 0.9(1991年)只支持get方法不支持请求头;
  • HTTP 1.0(1996年)基本成型,支持请求头、富文本、状态码、缓存、连接无法复用;
  • HTTP 1.1(1999年)支持连接复用、分块发送、断点续传;
  • HTTP 2.0(2015年)二进制分帧传输、多路复用、头部压缩、服务器推送等;
  • HTTP 3.0(2018年)QUIC 于2013年实现、2018年正式更名为HTTP3;

2 、HTTP 1.0和HTTP1.1

  • 队头阻塞:下个请求必须在前一个请求返回后才能发出,导致带宽无法被充分利用,后续请求被阻塞(HTTP 1.1 尝试使用流水线(Pipelining)技术,但先天 FIFO(先进先出)机制导致当前请求的执行依赖于上一个请求执行的完成,容易引起队头阻塞,并没有从根本上解决问题)
  • 协议开销大:header里携带的内容过大,且不能压缩,增加了传输的成本
  • 单向请求:只能单向请求,客户端请求什么,服务器返回什么

HTTP 1.0和HTTP 1.1的区别:

HTTP 1.0HTTP 1.1
仅支持保持短暂的TCP连接(连接无法复用)默认支持长连接(请求可复用TCP连接)
不支持断点续传支持断点续传(通过在 Header 设置参数)
前一个请求响应到达之后下一个请求才能发送,存在队头阻塞优化了缓存控制策略
/管道化,可以一次发送多个请求,但是响应仍是顺序返回,仍然无法解决队头阻塞的问题
/新增错误状态码通知
/请求消息和响应消息都支持Host头域

3、 HTTP2

解决 HTTP1 的一些问题,但是解决不了底层 TCP 协议层面上的队头阻塞问题。

  1. 二进制传输:二进制格式传输数据解析起来比文本更高效;
  2. 多路复用:重新定义底层 http 语义映射,允许同一个连接上使用请求和响应双向数据流。同一域名只需占用一个 TCP 连接,通过数据流(Stream)以帧为基本协议单位,避免了因频繁创建连接产生的延迟,减少了内存消耗,提升了使用性能,并行请求,且慢的请求或先发送的请求不会阻塞其他请求的返回;
  3. Header压缩:减少请求中的冗余数据,降低开销;
  4. 服务端可以主动推送:提前给客户端推送必要的资源,这样就可以相对减少一点延迟时间
  5. 流优先级:数据传输优先级可控,使网站可以实现更灵活和强大的页面控制;
  6. 可重置:能在不中断 TCP 连接的情况下停止数据的发送;

缺点:HTTP 2中,多个请求在一个TCP管道中的,出现了丢包时,HTTP 2的表现反倒不如HTTP 1.1了。因为 TCP 为了保证可靠传输,有个特别的“丢包重传”机制,丢失的包必须要等待重新传输确认,HTTP 2出现丢包时,整个 TCP 都要开始等待重传,那么就会阻塞该TCP连接中的所有请求。而对于 HTTP 1.1 来说,可以开启多个 TCP 连接,出现这种情况反到只会影响其中一个连接,剩余的 TCP 连接还可以正常传输数据。

4 HTTP3——QUIC
HTTP 是建立在 TCP 协议之上,所有 HTTP 协议的瓶颈及其优化技巧都是基于 TCP 协议本身的特性,HTTP2 虽然实现了多路复用,底层 TCP 协议层面上的问题并没有解决(HTTP 2.0 同一域名下只需要使用一个 TCP 连接。但是如果这个连接出现了丢包,会导致整个 TCP 都要开始等待重传,后面的所有数据都被阻塞了),而 HTTP3 的 QUIC 就是为解决 HTTP2 的 TCP 问题而生。

参考视频:
https://www.bilibili.com/video/BV1rV4y1p7DF/
同时可以网上搜索一下相关资料或者看一下b站和youtube相关视频进行深入了解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值