计网—HTTP1.0、HTTP2.0、HTTP3.0优缺点、区别及联系

一、HTTP1.0问题?

▪ 短连接⽆状态,每次三次握手四次挥⼿

▪ 第⼀个请求发出去必须等确认回来,才能发第⼆个请求

二、HTTP1.1优缺点?

优点:简单、灵活易扩展、应用⼴泛、长连接

缺点:明⽂传输、头部巨大、队头阻塞(管道中⼀个请求阻塞,后⾯的请求也被阻塞)、 不⽀持服务器推送、并发连接有限、 

三、HTTP2.0优缺点?

优点:头部压缩、⼆进制格式、数据流、多路复⽤、服务器推送

缺点:队头阻塞(用的是TCP,stream数据流后续内容需要等待)、握手次数多、连接迁移(4G换WIFI,四元组变化,需要再次三次握手)

四、HTTP3.0优点?

▪ UDP+QUIC(HTTP2 + TLS + TCP)解决队头阻塞、握⼿次数减少,解决连接迁移 

五、HTTP1.0和HTTP1.1的区别?

长连接

        1.0每⼀次请求都需要三次握⼿,并且是串行的请求;

        1.1新增了长连接(connection:keep-alive),默认长连接

管道

        1.0发送⼀个请求必须等待响应才能发送第⼆个,

        1.1新增了管道(pipeline),同⼀个TCP链接中 可以发出多个请求

断点续传

        HTTP1.0不支持,1.1新增了range字段,指定数据字节位置,开始可以断点续传

新增HOST请求头

缓存处理不同

错误状态码,新增了错误状态码,比如410表示服务器的资源被永久删除

六、HTTP1.1和HTTP2.0的区别?

头部压缩:如果发出多个请求,头部相同,2.0会消除重复的部分

        主要通过Huffman 编码、动态字典、静态字典来达到头部压缩的目的

二进制格式:1.1用纯⽂本,2.0中用二进制格式

        比如状态码 200 ,在 HTTP/1.1 是用 '2''0''0' 三个字符来表示(二进制:00110010 00110000 00110000),共用了 3 个字节;在 HTTP/2 对于状态码 200 的二进制编码是 10001000,只用了 1 字节就能表示,相比于 HTTP/1.1 节省了 2 个字节

数据流:2.0数据包不按顺序发送;因此需要数据包标记,指出属于哪个回应,请求回应的数据包称为数据流,每个数据流都做了标记有编号;客户端还可以指定数据流优先级,可以先响应优先级高的

        在 HTTP/2 连接上,不同 Stream 的帧是可以乱序发送的因此可以并发不同的 Stream ,因为每个帧的头部会携带 Stream ID 信息,所以接收端可以通过 Stream ID 有序组装成 HTTP 消息,而同一 Stream 内部的帧必须是严格有序的。 

多路复用:2.0可以在⼀个连接中并发多个请求或响应,解决了队头阻塞问题

服务器推送:1.1服务器只能被动的响应,2.0可以主动向客户端发送消息 

七、HTTP2.0和HTTP3.0的区别?

传输层协议不同:2.0⽤TCP(有队头阻塞),3.0⽤UDP(⽆队头阻塞)

改为QUIC协议:3.0新增了QUIC(在UDP之上伪TCP+TLS+HTTP2.0的多路复用协议),基于UDP的QUIC可以实现类似TCP的可靠传输

握手次数:2.0基于HTTPS实现,三次握手+三次握手,总共6次;3.0⽤QUIC只需要3次

连接迁移:4G换WIFI后IP地址变,QUIC不用四元组,⽤两个ID标记自己

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱吃代码的航航

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

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

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

打赏作者

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

抵扣说明:

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

余额充值