- English
- 日本語
HTTP/2 サーバープッシュ
最終更新日 2021-12-15
HTTP/2 サーバープッシュでは、Fastly が事前に読み込んで、クライアントがリクエストする前に HTTP/2 準拠のクライアントにレスポンスを送信できるようにする、ルールを設定することができます。レスポンスヘッダーまたは VCL 関数を使用して HTTP/2 サーバープッシュを開始できます。
link
レスポンスヘッダーによるサーバープッシュ
Fastly は、オリジンサーバーが送信したプリロードキーワードを持つ link
ヘッダーを認識し、指定されたリソースをクライアントにプッシュします。例えば、この link
レスポンスヘッダーは HTTP/2 プッシュをトリガーします。
link: </assets/jquery.js>; rel=preload; as=script
1つの link
ヘッダーで、複数の link
ヘッダーと複数のアセットをサポートしています。
link: </assets/jquery.js>; rel=preload; as=script, </assets/base.css>; rel=preload; as=style
link
ヘッダーで使用される属性は、サーバーのプッシュやヘッダー自体の処理方法をコントロールできます。追加の属性を含まない場合、link
ヘッダーはサーバープッシュをトリガーし、クライアントに転送されます。
link: </assets/jquery.js>; rel=preload; as=script
nopush
ディレクティブと併せて使われた場合、ヘッダーはプッシュをトリガーせず、クライアントにそのままに渡されます。
link: </assets/jquery.js>; rel=preload; as=script; nopush
x-http2-push-only
ディレクティブと併せて使われた場合、ヘッダーはサーバープッシュをトリガーしますが、その後削除され、クライアントには転送されません。
link: </assets/jquery.js>; rel=preload; as=script; x-http2-push-only
属性は必要に応じて組み合わせることができます。
link: </assets/jquery.js>; rel=preload; as=script, </assets/base.css>; rel=preload; as=style; nopush, </assets/main.css>; rel=preload; as=style; x-http2-push-only
リンクヘッダーと Amazon S3 バケット
Amazon Simple Storage サービス (S3) バケットをオリジンサーバーとして使用している場合、以下のようなキャッシュ設定条件を適用して link
ヘッダーを使用することができます。
set beresp.http.Link = beresp.http.x-amz-meta-Link
h2.push()
関数によるサーバープッシュ
サーバープッシュを h2.push()
VCL 関数でトリガーすることができます。プッシュされるアセットは、パラメーターとして関数に渡されます。例:
1234567
sub vcl_recv {#FASTLY recv if (fastly_info.is_h2 && req.url ~ "^/index.html") { h2.push("/assets/jquery.js"); }}
この h2.push()
関数は、呼び出されるとすぐにサーバープッシュをトリガーするため、サーバーレスポンスに link
ヘッダーを付ける必要がなくなります。つまり、プッシュのトリガーとなったリクエストのレスポンスをサーバーから受け取る前に、アセットをクライアントにプッシュできるということであり、配信も加速されます。
翻訳についての注意事項
このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシーと利用規約が適用されます。