4.15. Using Server Push (サーバープッシュの使用)
4.15. Using Server Push (サーバープッシュの使用)
HTTP/2 [HTTP/2] はサーバープッシュを導入しました。これにより, サーバーはリクエストを待たずにクライアントにレスポンスを送信できます。これにより, サーバーがクライアントが必要とする可能性の高いリソースを先制的に送信できるようにすることで, パフォーマンスが向上します。
ただし, サーバープッシュは実際には効果的に使用することが困難であることが証明されています。次のことを慎重に検討する必要があります:
-
どのリソースをプッシュするか。
-
いつプッシュするか。
-
クライアントがすでに持っているリソースをプッシュしないようにする方法。
-
キャッシングとどのように調整するか。
その結果, サーバープッシュは広く使用されておらず, 一部のブラウザからサポートが削除されています。HTTP/3 [HTTP/3] にはサーバープッシュが含まれていません。
サーバープッシュを使用したいアプリケーションは次のことを行うべきです (SHOULD):
-
プッシュが自分たちのユースケースで実際にパフォーマンスを向上させるかどうかを慎重に評価する。
-
リソースのインライン化や Early Hints [RFC8297] の使用などの代替手段を検討する。
-
プッシュされたリソースをサポートしない, または受け入れないクライアントに備える。
-
いつ, どのリソースがプッシュされるかを明確に指定する。
サーバープッシュの採用とサポートが限られていることを考えると, アプリケーションは正しい動作のためにそれを要求すべきではありません (SHOULD NOT)。