これは一種の理論的な質問であり、範囲が広すぎたり不明瞭だったりするかもしれません。
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 レベルですべてのサイトとアプリケーションに対して単一のポリシーを設定します。
オリジンで特定のヘッダーが設定されていない場合は、CDN でのみ特定のヘッダーを設定/追加することを選択できますが、オリジンで値が設定されている場合は、その値を使用します。
などなど。
オリジンで設定されたヘッダーを保持する理由
アプリケーション (開発者) は、アプリケーションに何が必要かを最もよく知っています。
デフォルトのキャッシュ ポリシーを で上書きすることは、Cache-Control: private, no-store
思い浮かぶ教科書的な例です。
などなど。