使用策略来控制源请求
当发送到 CloudFront 的查看器请求导致缓存未命中(请求的对象未在边缘站点缓存)时,CloudFront 会向源发送请求以检索对象。这称为源请求。源请求始终包含来自查看器请求的以下信息:
-
URL 路径(仅路径,不包含 URL 查询字符串或域名)
-
请求正文(如果有)
-
CloudFront 在每个源请求中自动包含的 HTTP 标头,包括
Host
、User-Agent
和X-Amz-Cf-Id
。
默认情况下,查看器请求中的其他信息(如 URL 查询字符串、HTTP 标头和 Cookie)不包含在源请求中。(例外:使用旧缓存设置时,CloudFront 默认将标头转发到您的源。) 然而,您可能希望在源处接收其它一些此类信息,例如收集数据以进行分析或遥测。您可以使用源请求策略 控制源请求中包含的信息。
源请求策略与控制缓存键的缓存策略是分开的。通过这种方法,您可以在源端接收其他信息,并保持良好的缓存命中率(查看器请求导致缓存命中的比率)。您可以通过单独控制哪些信息包含在源请求中(使用源请求策略)以及哪些信息包含在缓存键中(使用缓存策略)来做到这一点。
虽然这两种策略是分开的,但它们却相关联。您在缓存键中包含的所有 URL 查询字符串、HTTP 标头和 Cookie(使用缓存策略)都将自动包含在源请求中。使用源请求策略指定要包含在源请求中但不 包含在缓存键中的信息。与缓存策略一样,您可以将源请求策略附加到 CloudFront 分配中的一个或多个缓存行为。
还可以使用源请求策略将其他 HTTP 标头添加到查看器请求中未包含的源请求。这些附加标头是 CloudFront 在发送源请求之前添加的,而标头值是根据查看器请求自动确定的。有关更多信息,请参阅 添加 CloudFront 请求标头。