http / 2推送权限伪标头

问题描述 投票:1回答:1

http2 rfc http://httpwg.org/specs/rfc7540.html说:

所有HTTP / 2请求必须只包含:method,:scheme和:path伪标头字段的一个有效值

(注意它不包括权限)

推动承诺:

服务器必须在:authority伪标头字段中包含一个值,服务器对该字段具有权威性

我的问题是,对于服务器推送承诺请求帧,服务器是否需要始终包含权限伪标头,或者如果它决定包含它,那么它必须是服务器权威的权限?

http2 request-promise
1个回答
2
投票

我认为:authority标头必须始终包含在PUSH_PROMISE框架中,因为如果证书和IP地址相应地解析,客户端可以对不同的主机名使用相同的连接。

通过添加权限框架,客户端将在被推送的资源与其需要检索的资源之间进行精确匹配。

如果没有:authority标头,客户端可能会认为推送资源是https://example.com/background.png,但后来在从example.com下载的HTML中找到资源而不是https://images.example.com/background.png;因为URI不匹配,客户端会发出对该资源的请求,而不是使用推送的资源。

除了这个解释之外,您可以尝试在没有PUSH_PROMISE的情况下发出:authority并查看各种浏览器的行为:有时候,实现行为会用于强化规范。

© www.soinside.com 2019 - 2024. All rights reserved.