HTTP/2协议中Stream的示例分析

发布时间:2021-11-18 09:35:19 作者:小新
来源:亿速云 阅读:625

这篇文章主要介绍了HTTP/2协议中Stream的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、流与多路复用

 

1、流
 


前面介绍桢格式时,每个桢都有一个流标示,标记自己属于哪个流。通过将相同流标识的桢组装,桢之间时有严格顺序的,即形成了“流”。

 

HTTP/2协议中Stream的示例分析

2、多路复用  
 

 


一个HTTP/2连接可以并非很多个流,流ID顺序递增且互相独立,形成多路复用。由客户端发起的流ID为奇数,服务端发起的为偶数。

 

二、流状态

  

1、idle
 

 

流空闲状态,可以发送接收HEADERS帧。

 

2、open
 


流开启状态,idle发送或者接受HEADERS帧后,状态变更为开启


3、half closed
 


发送包含END_STREAM桢的一端流转为本地半关闭half closed(local),表示客户端发送请求数据完毕,等待服务端响应数据,接受到服务端发送的END_STREAM进入close关闭状态。接受END_STREAM桢的另一端称为远程半关闭状态half closed(remote),表示服务端知道客户端请求已经发送完毕,处理结束后可以发送响应数据,并发送END_STREAM到客户端,进入close关闭状态。


4、close
 


流的关闭状态。除了half closed数据发送结束关闭外,发送RST_STREAM(发生错误或取消)也可关闭流。


流状态交互示意图
 

HTTP/2协议中Stream的示例分析

 

三、流量控制

 

流量控制是保护接收方的机制,通过配额机制实现。发送端每发送数据后window窗口大小相应的减少。当发送端收到接收端WINDOW_UPDATE桢后window窗口增加。window等于0则不可以进行发送,窗口初始值为65535字节。 


HTTP/2协议中Stream的示例分析


四、流优先级


通过发送端向接收端发送优先级权重期待接收端给予资源分配支持,接受端不保证一定遵守,默认权重为16。优先级表达可以通过HEADERS或者单独发送PRIORITY帧实现。


HTTP/2协议中Stream的示例分析


六、流依赖


客户端通过PRIORITY帧可以告诉服务端当前流所依赖的流,形成流依赖树。同一父级的各个字节点通过权重分配资源;父级先分配资源传输结束后,再分配子级资源。


HTTP/2协议中Stream的示例分析



感谢你能够认真阅读完这篇文章,希望小编分享的“HTTP/2协议中Stream的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. linux中tcpdump抓取HTTP包的示例分析
  2. Python 中怎么实现一个HTTP 服务器

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

http stream

上一篇:HTTP/2协议中连接前言的示例分析

下一篇:RocketMQ客户端PUSH消费如何实现负载均衡

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》