

# 通用请求标头
<a name="RESTCommonRequestHeaders"></a>

下表描述了各种类型的 Amazon S3 REST 请求可以使用的标头。


| 标头名称 | 说明 | 
| --- | --- | 
| Authorization | 请求身份验证所需的信息。有关更多信息，请转至《Amazon Simple Storage Service 开发人员指南》**中的[身份验证标头](https://docs.amazonaws.cn/AmazonS3/latest/userguide/RESTAuthentication.html#ConstructingTheAuthenticationHeader)。对于匿名请求，不需要此标头。 | 
|  Access-Control-Request-Method  | 作为预检 CORS 请求发送的 HTTP 方法的列表。如果预检 CORS 评估取得成功，则支持在以下 CORS 请求中使用指定的方法。 | 
| Content-Length | 符合 RFC 2616 的消息的长度（不带标头）。此标头是加载 XML 的 PUT 和操作（例如日志记录和 ACL）所必需的。 | 
| Content-Type | 如果请求在正文中有内容，则为该资源的内容类型。示例：`text/plain` | 
| Content-MD5 | 根据 RFC 1864，消息（不含标头）的 base64 编码的 128 位 MD5 摘要。此标头可用作消息完整性检查，以验证数据是否与最初发送的数据相同。尽管它是可选的，但我们建议使用 Content-MD5 机制作为端到端完整性检查。有关 REST 请求身份验证的更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的 [REST 身份验证](https://docs.amazonaws.cn/AmazonS3/latest/userguide/RESTAuthentication.html?r=1821)。 | 
| Date | 可以用于创建 `Authorization` 标头中包含的签名的日期。如果要将 `Date` 标头用于签名，则必须使用 ISO 8601 基本格式来指定它。在这种情况下，不需要 `x-amz-date` 标头。请注意，存在 `x-amz-date` 时，它始终会覆盖 `Date` 标头的值。<br />如果 Date 标头不用于签名，则可以为 [RFC 2616](http://tools.ietf.org/html/rfc2616#section-3.3) 第 3.3 部分指定的完整日期格式之一。例如，日期/时间 `Wed, 01 Mar 2006 12:00:00 GMT` 是用于 Amazon S3 的有效日期/时间标头。<br />如果您要将 `Date` 标头用于签名，则它必须使用 ISO 8601 基本 `YYYYMMDD'T'HHMMSS'Z'` 格式。<br />如果指定了 `Date`，但它没有使用 ISO 8601 基本格式，则您还必须包括 `x-amz-date` 标头。如果使用 ISO 8601 基本格式指定了 `Date`，则它足够用于对请求签名，您无需 `x-amz-date` 标头。有关更多信息，请参阅《Amazon Web 服务词汇表》中的[处理签名版本 4 中的日期](https://docs.amazonaws.cn/general/latest/gr/sigv4-date-handling.html)**。 | 
| Expect  | 当应用程序使用 100-Continue 时，它不会发送请求正文，直到收到确认。如果根据标头拒绝了消息，则不会发送消息的正文。只有在发送正文时才能使用此标头。<br />有效值：100-continue | 
| Host | 对于路径类型请求，该值为 `s3.amazonaws.com`。对于虚拟类型请求，该值为 `BucketName.s3.amazonaws.com`。有关更多信息，请转至《Amazon Simple Storage Service 用户指南》**中的[虚拟托管](https://docs.amazonaws.cn/AmazonS3/latest/userguide/VirtualHosting.html)。<br />此标头对于 HTTP 1.1 是必需的（大多数工具包会自动添加此标头）；而对于 HTTP/1.0 请求则是可选的。 | 
|  Origin  | 用于指定初始请求者的服务器名称的端点。 | 
| x-amz-content-sha256 | 使用签名版本 4 对请求进行身份验证时，此标头提供请求有效载荷的哈希值。有关更多信息，请参阅 [Authorization 标头的签名计算：在单个分块中传输有效载荷（Amazon 签名版本 4）](sig-v4-header-based-auth.md)。当分块上传对象时，您可以将值设置为 `STREAMING-AWS4-HMAC-SHA256-PAYLOAD`，以表示签名仅涵盖标头且没有有效载荷。有关更多信息，请参阅 [Authorization 标头的签名计算：在多个分块中传输有效载荷（分块上传）（Amazon 签名版本 4）](sigv4-streaming.md)。 | 
| x-amz-date | 用于在 Authorization 标头中创建签名的日期。格式必须为使用 `YYYYMMDD'T'HHMMSS'Z'` 格式的 ISO 8601 基本格式。例如，日期/时间 `20170210T120000Z` 是用于 Amazon S3 的有效 `x-amz-date`。<br />`x-amz-date` 对所有请求都是可选的；它可以用于覆盖对请求进行签名所使用的日期。如果使用 ISO 8601 基本格式指定了 `Date` 标头，则无需 `x-amz-date`。存在 `x-amz-date` 时，它始终会覆盖 `Date` 标头的值。有关更多信息，请参阅《Amazon Web 服务词汇表》中的[处理签名版本 4 中的日期](https://docs.amazonaws.cn/general/latest/gr/sigv4-date-handling.html)**。 | 
| x-amz-security-token | 此标头可以在以下场景中使用：+  为 Amazon DevPay 操作提供安全令牌：使用 Amazon DevPay 的每个请求都需要两个 `x-amz-security-token` 标头：一个用于产品令牌，一个用于用户令牌。当 Amazon S3 收到经身份验证的请求时，它会将计算出的签名与提供的签名进行比较。用于计算签名的多值标头格式不正确可能会导致身份验证问题。 <br />+  在使用临时安全凭证时提供安全令牌：当使用从 IAM 获得的临时安全凭证发出请求时，必须使用此标头提供安全令牌。要了解有关临时安全凭证的更多信息，请参阅[发出请求](https://docs.amazonaws.cn/AmazonS3/latest/userguide/MakingRequests.html)。 <br />使用 Amazon DevPay 的请求和使用临时安全凭证进行签名的请求都需要此标头。 | 