(四) HTTP/2的流状态

本文详细介绍了HTTP/2中的流特性,包括流的生命周期和状态转换,流的标识符分配规则,以及流的并发控制策略。HTTP/2允许在一个连接上并发处理多个流,每个流通过帧序列传输信息,并具有独立的状态转换。流标识符由发起方分配,客户端使用奇数,服务端使用偶数。并发流的数量受限于双方设置的SETTINGS_MAX_CONCURRENT_STREAMS参数。
摘要由CSDN通过智能技术生成

“流”是HTTP/2连接中客户端和服务端之间交换的独立的、双向的帧序列。流具有以下几个重要特性:

  • 一个单独的HTTP/2连接能够包含多个同时打开的流,流的两个端点从多个流中交叉存取帧。
  • 流可以被客户端或服务端单方面建立和使用,也可以被客户端和服务端共享。
  • 流可以被任意一端关闭。
  • 帧在流上发送的顺序很重要。接收方按照收到帧的顺序处理帧。特别地,HEADER和DATA帧的顺序在语义上是重要的。
  • 流以一个整数标识。流的标识符是由初始化流的一端分配的。

下图展现了一个连接上多个流的传输情况:

这里写图片描述

(注:图片来自https://www.nginx.com/wp-content/uploads/2015/09/NGINX_HTTP2_White_Paper_v4.pdf

可以看到,一个“连接”内包含多个流,每个“流”上可以单独地传输请求和响应信息,信息在“流”上是以“帧”的形式传输的。

流的生命周期和状态转换

流的生命周期如下图所示:

这里写图片描述

其中,HEADERS帧可以是一个单独的HEADERS帧,也可以是一个HEADERS帧以及紧随它的若干个CONTINUATION帧;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值