web-dev-qa-db-ja.com

「Vary:Origin」応答がCORSミスに設定されないのはなぜですか?

CORSリクエストを行うときに、リクエストされたオリジンが許可されたオリジンのリストにある場合、レスポンスにはAccess-Control-Allow-OriginヘッダーとVary: Originヘッダーの両方が含まれます。

Vary:Originは、リクエスターのOriginヘッダー値に基づいて応答がネゴシエートされたことをCDNなどに通知します。

問題は(そして私が主要なCDNプロバイダーをテストした)、リクエスターがリクエストにOriginヘッダーを提供しない場合、または許可されたものの1つではないOrigin値を提供しない場合、応答に変化:応答の起源。

CDNプリフォームCORSは、応答ヘッダーで常にVary:Originで応答する必要がありますか?そうでない場合、CDNは、任意のOrigin値に対して同じ応答を提供できると信じます。この場合も、ランダムなOrigin値を使用して多くのリクエストを行うことで、CDNキャッシュを埋めることができます。

21
simbolo

はい。リクエストに異なる値のAccess-Control-Allow-Originが含まれている可能性がある場合、Vary: Originヘッダーのない応答であっても、CDNは常にAccess-Control-Allow-Originで応答する必要があります。分析は正しいです。ヘッダーが常に存在するとは限らない場合、キャッシュが誤った値でいっぱいになる可能性があります。

23
monsur