

# 使用策略来控制源请求
<a name="controlling-origin-requests"></a>

当发送到 CloudFront 的查看器请求导致*缓存未命中*（请求的对象未在边缘站点缓存）时，CloudFront 会向源发送请求以检索对象。这称为*源请求*。源请求始终包含来自查看器请求的以下信息：
+ URL 路径（仅路径，不包含 URL 查询字符串或域名）
+ 请求正文（如果有）
+ CloudFront 在每个源请求中自动包含的 HTTP 标头，包括 `Host`、`User-Agent` 和 `X-Amz-Cf-Id`。

默认情况下，查看器请求中的其他信息（如 URL 查询字符串、HTTP 标头和 Cookie）不包含在源请求中。（例外：使用旧缓存设置时，CloudFront 默认将标头转发到您的源。） 然而，您可能希望在源处接收其它一些此类信息，例如收集数据以进行分析或遥测。您可以使用*源请求策略* 控制源请求中包含的信息。

源请求策略与控制缓存键的[缓存策略](controlling-the-cache-key.md)是分开的。通过这种方法，您可以在源端接收其他信息，并保持良好的*缓存命中率*（查看器请求导致缓存命中的比率）。您可以通过单独控制哪些信息包含在源请求中（使用源请求策略）以及哪些信息包含在缓存键中（使用缓存策略）来做到这一点。

虽然这两种策略是分开的，但它们却相关联。您在缓存键中包含的所有 URL 查询字符串、HTTP 标头和 Cookie（使用缓存策略）都将自动包含在源请求中。使用源请求策略指定要包含在源请求中但*不* 包含在缓存键中的信息。与缓存策略一样，您可以将源请求策略附加到 CloudFront 分配中的一个或多个缓存行为。

还可以使用源请求策略将其他 HTTP 标头添加到查看器请求中未包含的源请求。这些附加标头是 CloudFront 在发送源请求之前添加的，而标头值是根据查看器请求自动确定的。有关更多信息，请参阅 [添加 CloudFront 请求标头](adding-cloudfront-headers.md)。

**Topics**
+ [了解源请求策略](origin-request-understand-origin-request-policy.md)
+ [创建源请求策略](origin-request-create-origin-request-policy.md)
+ [使用托管式源请求策略](using-managed-origin-request-policies.md)
+ [添加 CloudFront 请求标头](adding-cloudfront-headers.md)
+ [了解源请求策略和缓存策略如何协同工作](understanding-how-origin-request-policies-and-cache-policies-work-together.md)