HTTP ヘッダーは CDN によって構成されますか、それともアプリケーションによって構成されますか?

HTTP ヘッダーは CDN によって構成されますか、それともアプリケーションによって構成されますか?

これは一種の理論的な質問であり、範囲が広すぎたり不明瞭だったりするかもしれません。

Foobar は、インターネット上のユーザーにサービスを提供するアプリケーションです。CDN を利用して回復力や速度などを向上させ、ユーザーがどこにいてもサービスを提供できるようにしています。

  • HTTP ヘッダー (クライアントが受信) は CDN によって定義されますか、それとも Foobar アプリケーションによって定義されますか (CDN が転送することを意味します)?

  • 両方とも可能な場合、それぞれの長所と短所は何ですか?

答え1

普遍的な答えはありません。ヘッダーで何が行われるかは、リクエスト、特定の CDN、特定のヘッダー、およびサイト構成 (バックエンド/オリジン サーバーが応答に含めるヘッダーと、CDN でサイトを構成する方法の両方を含む) によって異なります。

デフォルトでは、大多数のヘッダーは削除されますバックエンド/オリジンサーバーによって生成されたレスポンスから、(最小限の)ヘッダーのサブセットが設定されますCDN から送信された応答内。

一部の(CDN固有の)ヘッダーかもしれないなれ追加したCDNによってポリシーに従って、またはデフォルトで実行されます。たとえばFastlyはx-served-by:ヘッダ デフォルトではCloudFrontで設定でき、オプションで Server-Timing:ヘッダCDN 操作のデバッグを容易にするため。

いくつかのヘッダーかもしれないなれ保存されたバックエンド サーバーから。たとえばCache-control:Expires:ヘッダーはかなり一般的なものです。たとえば、次を参照してください。Cloud Front ドキュメント

いくつかのかもしれないなれ調整されたCDNによって特定の方法で処理されます。たとえば、FastlyがDate:ヘッダ原点に設定されます。


CDNでヘッダーを設定する理由

各アプリケーションが独自の処理を実行したり、何も実行しないようにしたりするのではなく、CDN レベルですべてのサイトとアプリケーションに対して単一のポリシーを設定します。

良い例はCORSそしてHSTSポリシー。

オリジンで特定のヘッダーが設定されていない場合は、CDN でのみ特定のヘッダーを設定/追加することを選択できますが、オリジンで値が設定されている場合は、その値を使用します。

などなど。


オリジンで設定されたヘッダーを保持する理由

アプリケーション (開発者) は、アプリケーションに何が必要かを最もよく知っています。

デフォルトのキャッシュ ポリシーを で上書きすることは、Cache-Control: private, no-store思い浮かぶ教科書的な例です。

などなど。

関連情報