

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Cache-Control 标头提高应用程序性能
<a name="Using-headers-to-control-cache-duration"></a>

Amplify 的默认托管架构优化了托管性能和部署可用性之间的平衡。对于大多数客户，我们均建议使用默认架构。

如果您需要更精细地控制应用程序的性能，则可以手动设置 HTTP `Cache-Control` 标头，从而将在内容分发网络（CDN）边缘处缓存的内容保留更长的时间间隔，以此优化托管性能。

HTTP `Cache-Control` 标头的 `max-age` 和 `s-maxage` 指令会影响应用程序的内容缓存持续时间。`max-age` 指令告诉浏览器在从原始服务器中刷新内容之前希望在缓存中保留内容的时间长度（以秒为单位）。`s-maxage` 指令覆盖 `max-age`，让您指定在原始服务器中刷新内容之前希望内容在 CDN 边缘保留内容的时间长度（以秒为单位）。

使用 Amplify 托管的应用程序会保留源站发送的 `Cache-Control` 标头，除非您使用自己的自定义标头将其覆盖。Amplify 只会为带有 `200 OK` 状态码的成功响应应用 `Cache-Control` 自定义标头。这样可以防止系统缓存错误的响应，并将其提供给发出相同请求的其他用户。

您可以手动调整 `s-maxage` 指令，以便更好地控制应用程序的性能和部署可用性。例如，要更改内容在边缘缓存的时间长度，您可以将 `s-maxage` 更新为到默认 31536000 秒（一年）以外的值，从而手动设置生存时间（TTL）。

您可以在 Amplify 控制台的**自定义标头**部分为应用程序定义自定义标头。有关 YAML 格式的示例，请参阅 [设置 Cache-Control 自定义标头](setting-custom-headers.md#example-cache-headers)。

使用以下步骤设置 `s-maxage` 指令，使内容在 CDN 边缘缓存 24 小时。

**设置自定义 Cache-Control 标头**

1. 登录 AWS 管理控制台 并打开 [Amplify](https://console.aws.amazon.com/amplify/) 控制台。

1. 选择要为其设置自定义标头的应用程序。

1. 在导航窗格中，依次选择**托管**、**自定义标头**。

1. 在**自定义标头**页面中选择**编辑**。

1. 在**编辑自定义标头**窗口中，按如下方式输入自定义标头的信息：

   1. 对于 `pattern`，输入所有路径的 **\$1\$1/\$1**。

   1. 对于 `key`，输入 **Cache-Control**。

   1. 对于 `value`，输入 **s-maxage=86400**。

1. 选择**保存**。

1. 重新部署应用程序以应用新的自定义标头。