计算机网络之http07 http2,http3

HTTP1.2

  1. http1.2都做了哪些优化
    (1)头部压缩 使用HPACK压缩头部 头部冗长,大量重复字段
    (2)二进制帧 将报文头部和内容字符编码改为二进制格式 字符编码未压缩
    (3)并发传输 解决h1.1 队头阻塞问题,多车道 头部阻塞
    (4)主动推送资源 例如css不需要请求 被动响应
  2. 头部压缩
    (1)头部字段的压缩 k
    (2)头部字段值的压缩 v
    (3)头部编码方式使用二进制编码
    使用的压缩算法为HPack算法
    原理:用较短的索引号来代替k
    静态字典
    对常用的k-v 或者k(v是变化的)创建字典表,61个
    (2)举例
    在这里插入图片描述
    server 对应索引54 占一个字节
    其值
    在这里插入图片描述
    在这里插入图片描述
    (3)动态字典
    静态字典只有61个头部字段,其它字段可以使用动态字典。动态字典根据双方交互中头部内容定,从62 开始。
    在这里插入图片描述
    动态表生效的前提是:在同一个连接上,该k-v使用多次,且不再改变

传输过程中没有在字典表中的字段也会使用hafma编码
在这里插入图片描述
3. 二进制帧
在这里插入图片描述
4. 并发控制
在这里插入图片描述
(1)stream由streamId唯一确认,stream内部的帧通过streamId与stream关联,stream可以看成一条高速公路
(2)message相当于http请求或回复,相当于在高速路上跑的车
(3)fream是报文的头部和内容,相当于货物,一个请求或响应可以对应一个帧,或多个帧
(4)客户端创建的stream是奇数,服务端是偶数 (双向车道)
(5)在同一stream中,帧必须是严格有序的 (请求或响应)
(6)一条stream中,可以同时跑多辆车
队头阻塞: 客户端使用管道技术按顺序发送http请求,服务器也是按顺序处理请求的,如果某个回复特别耗时,下面的回复也就阻塞了。
使用并发技术,可以并发处理请求,但是在一个stream中是有队头阻塞的
最初:
修一条路,一辆车
http1.1长连接 一条路,多辆车,但路上只能有一辆
http1.1管道: 一条路,多辆车,路上可以有多辆

http1.2 并发 一条路,多个车道,每个车道可以有多辆车

  1. 主动推送资源
    在这里插入图片描述
    (1)首先在服务器配置 /请求路径–自动发送的资源
    (2)先用一个PUSH_PROMISE帧告诉客户端,接下来在哪个stream中推送资源
    (3)推送资源
    在这里插入图片描述

HTTP3

  1. HTTP2遇到的问题
    (1)队头阻塞:因为http2是基于TCP的,当某个tcp数据包缺失,会一直等待,并不会给应用层。
    在这里插入图片描述
    (2)三次握手 TLS 四次握手耗时 3RTT
    在这里插入图片描述
    (3)网络迁移需要重新连接
    换网络,换端口等
    2.HTTP3
    在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

弈师亦友

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

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

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

打赏作者

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

抵扣说明:

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

余额充值