HTTP/2技术问询:响应是否复用请求的Stream Identifiers?
HTTP/2 请求与响应的流标识符复用规则
在HTTP/2协议中,客户端发起的请求和对应的服务器响应会复用同一个流标识符(Stream Identifiers)。
举个实际场景:如果客户端用stream Identifiers 1(符合客户端生成奇数流ID的规则)发送请求,服务器处理完成返回响应时,会直接复用这个stream Identifiers 1,不会新建一个偶数的流ID(比如2)。
HTTP/2的流是双向通道,同一个流既承载客户端发往服务器的请求相关帧(请求头、请求体等),也承载服务器返回的响应相关帧(响应头、响应体等)。只要流处于活跃状态,双方就会用同一个流ID来传输对应请求的所有数据帧,接收方通过这个统一的流ID来重组完整的请求和响应数据。
需要注意的是,服务器主动发起的流(比如服务器推送功能)才会使用自己生成的偶数流ID,这类流属于服务器主动触发的独立流,和客户端请求的响应流不是一回事。
内容的提问来源于stack exchange,提问作者Thanhlv
相关产品推荐
相关产品推荐

