进行CORS请求时,如果请求的来源在允许的来源列表中,响应将包含Access-Control-Allow-Origin
头和Vary: Origin
头。
Vary: Origin
告知CDN等后续服务,响应是基于请求者提供的Origin头值协商得出的。
问题在于(我已经测试了主流CDN提供商),如果请求者在请求中未提供Origin头或提供的Origin值不在允许的值列表中,则响应中不包括Vary: Origin
。
执行CORS的CDN是否应始终在响应头中包含Vary: Origin
?如果没有,CDN会认为可以向任何Origin值提供相同的响应。另一方面,可以通过使用随机Origin值发起多个请求来填充CDN的缓存。