使用 CloudFront HTTP 标头
您可以将 CloudFront 配置为根据查看器请求的特征添加特定 HTTP 标头。利用这些标头,您的源可以接收有关查看器的设备类型、地理位置等方面的信息,而无需使用自定义代码来确定此信息。如果源根据这些标头中的信息返回不同的响应,您可以将它们包含在缓存键 中,以便 CloudFront 分别缓存不同的响应。
要在源处接收这些标头,请使用源请求策略。有关更多信息,请参阅控制源请求。
要将这些标头包含在缓存键中,请使用缓存策略。有关更多信息,请参阅 控制缓存键 和 了解缓存键。
用于确定查看器的设备类型的标头
使用以下标头可确定查看器的设备类型。根据 User-Agent
标头的值,CloudFront 将这些标头的值设置为 true
或 false
。如果某个设备归入多个类别中,则多个值可能为 true
。例如,对于一些平板电脑设备,CloudFront 可能将 CloudFront-Is-Mobile-Viewer
和 CloudFront-Is-Tablet-Viewer
设置为 true
。
-
CloudFront-Is-Android-Viewer
– 当 CloudFront 确定查看器是采用 Android 操作系统的设备时,设置为true
。 -
CloudFront-Is-Desktop-Viewer
– 当 CloudFront 确定查看器是桌面设备时,设置为true
。 -
CloudFront-Is-IOS-Viewer
– 当 CloudFront 确定查看器是带 Apple 操作系统的设备时,设置为true
。 -
CloudFront-Is-Mobile-Viewer
– 当 CloudFront 确定查看器是移动设备时,设置为true
。 -
CloudFront-Is-SmartTV-Viewer
– 当 CloudFront 确定查看器是智能电视时,设置为true
。 -
CloudFront-Is-Tablet-Viewer
– 当 CloudFront 确定查看器是平板电脑时,设置为true
。
用于确定查看器的位置的标头
使用以下标头可确定查看器的位置。CloudFront 根据查看器的 IP 地址确定这些标头的值。
对于这些标头值中的非 ASCII 字符,CloudFront 百分比将根据 RFC 3986 的第 1.2 部分
-
CloudFront-Viewer-City
– 包含查看器的城市的名称。 -
CloudFront-Viewer-Country
– 包含查看器所在国家/地区的双字母国家/地区代码。有关国家/地区代码的列表,请参阅 ISO 3166-1 alpha-2。 -
CloudFront-Viewer-Country-Name
– 包含查看器所在国家/地区的名称。 -
CloudFront-Viewer-Country-Region
– 包含代表查看器的区域的代码(最多三个字符)。区域是 ISO 3166-2代码中最具体的细分。 -
CloudFront-Viewer-Country-Region-Name
– 包含查看器的区域的名称。区域是 ISO 3166-2代码中最具体的细分。 -
CloudFront-Viewer-Latitude
– 包含查看器的近似纬度。 -
CloudFront-Viewer-Longitude
– 包含查看器的近似经度。 -
CloudFront-Viewer-Metro-Code
– 包含查看器的都市代码。仅当查看器所在地区是美国时提供此项。 -
CloudFront-Viewer-Postal-Code
– 包含查看器的邮政编码。 -
CloudFront-Viewer-Time-Zone
包含查看器的时区,采用 IANA 时区数据库格式(例如, America/Los_Angeles
)。
其他 CloudFront 标头
使用以下标头可确定查看器请求的协议和 HTTP 版本。
-
CloudFront-Forwarded-Proto
– 包含查看器请求的协议(HTTP 或 HTTPS)。 -
CloudFront-Viewer-Http-Version
– 包含查看器请求的 HTTP 版本。