接收方必须在流上处理PUSH_PROMISE的接收 既不是"开放"也不是半封闭(本地)"作为连接错误 (PROTOCOL_ERROR类型的(第5.4.1节)。但是,有一个端点 在关联的流上发送RST_STREAM必须处理PUSH_PROMISE 可能在RST_STREAM帧之前创建的帧 收到并处理。
规范也有lifecycle diagram。
我的理解是,为了让客户在流上接收PUSH_PROMISE
,客户端必须在该流上全部:
HEADERS
帧(+任意CONTINUATION
s)发送到服务器END_STREAM
标记RST_STREAM
帧
(这里特别缺少的是"没有向服务器发送RST_STREAM
帧“,这将导致流被关闭&#34 ;;上面的引用说这不是理由连接错误。)
在不符合这些条件的任何情况下,客户端必须将接收PUSH_PROMISE视为连接错误。
这是正确的理解吗?
答案 0 :(得分:1)
您的理解是正确的。
HTTP / 2协议将PUSH_PROMISE
流与现有流相关联,称为关联流。
关联的流必须满足问题中引用的规范部分中定义的条件;问题中的子弹列表是说明规则部分所说的相同内容的另一种方式。