

# 了解源请求策略
<a name="origin-request-understand-origin-request-policy"></a>

CloudFront 为常见使用案例提供了一些预定义的源请求策略（称为*托管策略*）。您可以使用这些托管策略，也可以创建特定于您的需求的源请求策略。有关托管策略的更多信息，请参阅[使用托管式源请求策略](using-managed-origin-request-policies.md)。

源请求策略包含以下设置，这些设置的分类如下：*策略信息* 和*源请求设置*。

## 策略信息
<a name="origin-request-understand-origin-request-policy-info"></a>

**名称**  
用于标识源请求策略的名称。在控制台中，可以使用名称将源请求策略附加到缓存行为。

**描述**  
描述源请求策略的注释。该项为可选项。

## 源请求设置
<a name="origin-request-understand-origin-request-policy-settings"></a>

源请求设置指定查看器请求中包含的值，这些值包含在 CloudFront 发送到源的请求（称为源请求）中。这些值可以包括 URL 查询字符串、HTTP 标头和 Cookie。您指定的值包含在源请求中，但不会包含在缓存键中。有关控制缓存键的信息，请参阅[使用策略来控制缓存键](controlling-the-cache-key.md)。

**标头**  
CloudFront 包含在源请求中的查看器请求中的 HTTP 标头。对于标头，您可以选择下列设置之一：  
+ **无** – 查看器请求中的 HTTP 标头*不* 会包含在源请求中。
+ **所有查看器标头** – 查看器请求中的所有 HTTP 标头都包含在源请求中。
+ **所有查看器标头以及下列 CloudFront 标头** – 查看器请求中的所有 HTTP 标头都包含在源请求中。此外，您可以指定要添加到源请求中的 CloudFront 标头。有关 CloudFront 标头的更多信息，请参阅[添加 CloudFront 请求标头](adding-cloudfront-headers.md)。
+ **Include the following headers**（包含以下标头）– 您可以指定哪些 HTTP 标头包含在源请求中。
**注意**  
请勿指定已包含在**源自定义标头**设置中的标头。有关更多信息，请参阅 [配置 CloudFront 以便向源请求添加自定义标头](add-origin-custom-headers.md#add-origin-custom-headers-configure)。
+ **除以下范围之外的所有查看器标头**–您指定哪些 HTTP 标头***不***包含在源请求中。除了指定的标头外，查看器请求中的所有其他 HTTP 标头都包括在内。
当您使用**所有查看器标头以及下列 CloudFront 标头**、**包括以下标头**或**除以下范围之外的所有查看器标头**设置时，可以仅按 HTTP 标头的名称指定它们。CloudFront 会将完整标头（包括其值）包含在源请求中。  
当您使用**除以下范围之外的所有查看器标头**设置来删除查看器的 `Host` 标头时，CloudFront 会在源请求中添加一个包含源域名的新 `Host` 标头。

**Cookies**  
CloudFront 包含在源请求中的查看器请求中的 Cookie。对于 Cookie，您可以选择下列设置之一：  
+ **无** – 查看器请求中的 Cookie *不* 会包含在源请求中。
+ **全部** – 查看器请求中的所有 Cookie 都包含在源请求中。
+ **包括以下 Cookie** – 您可以指定查看器请求中的哪些 Cookie 包含在源请求中。
+ **除以下范围之外的所有 Cookie** – 您可以指定查看器请求中的哪些 Cookie ***不***包含在源请求中。查看器请求中的所有其他 Cookie 都包含在内。
在使用**包括以下 Cookie** 或 **除以下范围之外的所有 Cookie** 设置时，可以仅按 Cookie 的名称指定它们。CloudFront 会将完整 Cookie（包括其值）包含在源请求中。

**查询字符串**  
CloudFront 包含在源请求中的查看器请求中的 URL 查询字符串。对于查询字符串，可以选择下列设置之一：  
+ **无** – 查看器请求中的查询字符串*不* 会包含在源请求中。
+ **全部** – 查看器请求中的所有查询字符串都包含在源请求中。
+ **包含指定以下字符串** – 您可以指定查看器请求中的哪些查询字符串包含在源请求中。
+ **除以下范围之外的所有查询字符串** – 您可以指定查看器请求中的哪些查询字符串***不***包含在源请求中。所有其他查询字符串都包括在内。
在使用**包括以下查询字符串**或**除以下范围之外的所有查询字符串**设置时，您可以仅按查询字符串的名称指定它们。CloudFront 会将完整的查询字符串（包括其值），包含在源请求中。