2017-12-23 7 views
1

HTTP2のRFCはhttp://httpwg.org/specs/rfc7540.html言う:方法、::スキーム、および:パス疑似ヘッダフィールドのすべてのHTTP/2の要求は正確に一つの有効な の値を含まなければならないHTTP/2プッシュ約束権限疑似ヘッダ

プッシュ約束のため

(それは権限が含まれていません)

サーバが価値含まなければならない:権限疑似ヘッダフィールド サーバーが権限を持つの

私の質問は、サーバープッシュ約束要求フレームのために、あるサーバは常に権威の擬似を含める必要がありませんまたは、それを含めることを決定した場合は、サーバーが権限を持っている権限でなければなりませんか?

+0

最初のリクエストはリクエストに関するもので、2つ目はレスポンスに関するものです。 – Ryan

+0

ここで述べた4つの疑似ヘッダフィールドは、要求疑似ヘッダフィールドとしてのみ定義されています。定義された応答疑似ヘッダフィールドは1つだけです - 'status' – lf215

答えて

2

:authorityヘッダーは、PUSH_PROMISEフレームに常に含まれている必要があります。証明書とIPアドレスがそれに応じて解決された場合、クライアントが異なるホスト名に対して同じ接続を使用する可能性があるからです。

権限フレームを追加することにより、クライアントはプッシュされるリソースと取得する必要があるリソースとの間に正確な一致を得ます。

:authorityヘッダがなければ、クライアントはプッシュされたリソースがhttps://example.com/background.pngであると仮定して、それ以降のリソースではなくhttps://images.example.com/background.pngであることをexample.comからダウンロードしたHTMLで見つけます。 URIが一致しないため、クライアントはプッシュされたリソースを使用するのではなく、そのリソースに対する要求を発行します。

:authorityなしでPUSH_PROMISEを発行して、さまざまなブラウザの動作を確認してください。実装の動作が仕様を強化するために使用されることがあります。