http / 2:客户端PUSH_PROMISE帧接受

时间:2017-11-25 07:09:12

标签: http2

spec说:

  

一旦客户端收到PUSH_PROMISE帧并选择接受   推送响应,客户端不应该发出任何请求   承诺的回应,直到承诺的流已经关闭。

这是否解释了引用:

在承诺的流关闭之前,客户端不应向本地存储的承诺内容发出任何请求。大概这是因为客户应该等待所有承诺的内容到达本地;在关闭流之前阅读可能信息不完整。

1 个答案:

答案 0 :(得分:1)

规范说客户端不应该对承诺的资源发出任何请求;引用谈到访问客户端上承诺的资源数据;这两件事情是相关但独立的。

我认为答案取决于客户的实施。

例如,如果推送的资源是图像,则客户端可能决定开始使用已到达的数据渲染图像 - 即使尚未完成,并在数据到达时继续渲染图像。

同样可以应用于推送的CSS:客户端可以开始使用已经到达的数据解析它 - 即使不完整;这并不意味着客户端可以 CSS应用于DOM,只是它将解析它。

浏览器可能会决定在访问之前等待推送的资源完成是否更好;但一般来说客户端不需要等待,当然规范也没有要求任何关于访问客户端上推送资源的行为。