

# 网站端点
<a name="WebsiteEndpoints"></a>

当您将存储桶配置为静态网站时，该网站在存储桶的 AWS 区域 特定的网站端点上可用。网站端点不同于您在其上发送 REST API 请求的端点。有关端点之间的差异的更多信息，请参阅 [网站端点和 REST API 端点之间的主要区别](#WebsiteRestEndpointDiff)。

根据您所在的区域，Amazon S3 网站端点采用以下两种格式之一。
+ **s3-website 短横线 (-) 区域** ‐ `http://bucket-name.s3-website-Region.amazonaws.com`
+ **s3-网站 点 (.) 区域** ‐ `http://bucket-name.s3-website.Region.amazonaws.com`

此 URL 将返回您为该网站配置的默认索引文档。有关 Amazon S3 网站端点的完整列表，请参阅 [Amazon S3 网站端点](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints)。

**注意**  
为了增强 Amazon S3 静态网站的安全性，Amazon S3 网站端点域（例如 *s3-website-us-east-1.amazonaws.com* 或 *s3-website.ap-south-1.amazonaws.com*）已在 [Public Suffix List (PSL)](https://publicsuffix.org/)中注册。为进一步增强安全性，如果您需要在 Amazon S3 静态网站的域名中设置敏感 Cookie，我们建议您使用带 `__Host-` 前缀的 Cookie。这将有助于保护您的域，防范跨站点请求伪造 (CSRF) 攻击。要了解更多信息，请参阅 Mozilla 开发者网络中的 [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) 页面。

如果您希望您的网站公开，您必须使您的所有内容对您的客户公开可读，以便您的客户可以在网站端点访问这些内容。有关更多信息，请参阅 [设置访问网站的权限](WebsiteAccessPermissionsReqd.md)。

**重要**  
Amazon S3 网站端点不支持 HTTPS 或接入点。如果要使用 HTTPS，可以执行以下操作之一：  
（建议）使用 [AWS Amplify Hosting](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) 来托管存储在 S3 上的静态网站内容。Amplify Hosting 是一项完全托管式服务，可让您轻松地在由 Amazon CloudFront 提供支持的全球可用内容分发网络（CDN）上部署您的网站，并可实现安全的静态网站托管。  
借助 AWS Amplify Hosting，您可以选择对象在通用存储桶中的位置，将内容部署到托管式 CDN，并为网站生成一个公有 HTTPS URL 以供在任何地方访问。有关 Amplify Hosting 的更多信息，请参阅[从 S3 通用存储桶将静态网站部署到 AWS Amplify Hosting](https://docs.aws.amazon.com//AmazonS3/latest/userguide/website-hosting-amplify) 和《AWS Amplify Console User Guide》**中的 [Deploying a static website from S3 using the Amplify console](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html)。
使用 Amazon CloudFront 为 Amazon S3 上托管的静态网站提供服务。有关更多信息，请参阅[如何使用 CloudFront 为我的 Amazon S3 存储桶提供 HTTPS 请求？](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-https-requests-s3) 要使用自定义域的 HTTPS，请参阅[使用注册到 Route 53 的自定义域配置静态网站](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html)。
申请方付款存储桶不允许通过网站端点进行访问。对此类存储桶的任何请求都会收到 403 拒绝访问响应。有关更多信息，请参阅 [使用申请方付款通用存储桶进行存储传输和使用](RequesterPaysBuckets.md)。

**Topics**
+ [网站端点示例](#website-endpoint-examples)
+ [添加 DNS 别名记录](#website-endpoint-dns-cname)
+ [将自定义域与 Route 53 结合使用](#custom-domain-s3-endpoint)
+ [网站端点和 REST API 端点之间的主要区别](#WebsiteRestEndpointDiff)

## 网站端点示例
<a name="website-endpoint-examples"></a>

以下示例演示如何访问配置为静态网站的 Amazon S3 存储桶。

**Example – 请求根级别的对象**  
要请求存储在存储桶根级别的特定对象，请使用以下 URL 结构。  

```
http://bucket-name.s3-website.Region.amazonaws.com/object-name
```
例如，以下 URL 请求存储在存储桶中根级别的 `photo.jpg` 对象。  

```
http://example-bucket.s3-website.us-west-2.amazonaws.com/photo.jpg
```

**Example – 请求前缀中的对象**  
要请求存储在存储桶的文件夹中的对象，请使用此 URL 结构。  

```
http://bucket-name.s3-website.Region.amazonaws.com/folder-name/object-name
```
以下 URL 请求存储桶中的 `docs/doc1.html` 对象。  

```
http://example-bucket.s3-website.us-west-2.amazonaws.com/docs/doc1.html
```

## 添加 DNS 别名记录
<a name="website-endpoint-dns-cname"></a>

如果您拥有已注册的域，则可以添加指向 Amazon S3 网站端点的 DNS CNAME 条目。例如，如果您注册了 `www.example-bucket.com` 域，则可以创建存储桶 `www.example-bucket.com`，并添加指向 `www.example-bucket.com.s3-website.Region.amazonaws.com` 的 DNS CNAME 记录。对 `http://www.example-bucket.com` 的所有请求都将路由到 `www.example-bucket.com.s3-website.Region.amazonaws.com`。

有关更多信息，请参阅 [使用 CNAME 记录自定义 Amazon S3 URL](VirtualHosting.md#VirtualHostingCustomURLs)。

## 将自定义域与 Route 53 结合使用
<a name="custom-domain-s3-endpoint"></a>

您可以使用自己的向 Amazon Route 53 注册的域（例如，`example.com`）来提供您的内容，而不是使用 Amazon S3 网站端点访问网站。您可以将 Amazon S3 与 Route 53 结合使用以在根域中托管网站。例如，如果您拥有根域 `example.com` 且在 Amazon S3 上托管您的网站，则您的网站访问者可以通过输入 `http://www.example.com` 或 `http://example.com` 从他们的浏览器访问该站点。

有关示例演练的信息，请参阅 [教程：使用注册到 Route 53 的自定义域配置静态网站](website-hosting-custom-domain-walkthrough.md)。

## 网站端点和 REST API 端点之间的主要区别
<a name="WebsiteRestEndpointDiff"></a>

Amazon S3 网站端点针对通过 Web 浏览器访问进行了优化。下表总结 REST API 端点和网站端点之间的主要区别。


| 主要区别 | REST API 端点 | 网站端点 | 
| --- | --- | --- | 
| 访问控制 |  同时支持公有和私有内容  | 仅支持公开可读的内容  | 
| 错误消息处理 |  返回 XML 格式的错误响应  | 返回 HTML 文档 | 
| 重定向支持 |  不适用  | 同时支持对象级和存储桶级重定向 | 
| 支持的请求  |  支持所有存储桶和对象操作  | 仅支持针对对象的 GET 和 HEAD 请求 | 
| 对存储桶根级的 GET 和 HEAD 请求的响应 | 返回存储桶中对象键的列表 | 返回在网站配置中指定的索引文档 | 
| 安全套接字层 (SSL) 支持 | 支持 SSL 连接 | 不支持 SSL 连接 | 

有关 Amazon S3 端点的完整列表，请参阅《AWS 一般参考》**中的 [Amazon S3 端点和限额](https://docs.aws.amazon.com/general/latest/gr/s3.html)。