配置回源请求头
如果您需要修改用户回源请求URL中的HTTP头部信息,可以通过配置回源请求头参数来实现。本章帮您了解回源请求头的配置方法。
背景信息
当用户请求的内容CDN节点无缓存时,CDN会回源请求资源。如果您想要改写用户回源请求URL的HTTP头部信息,可以在CDN控制台完成相关配置。
HTTP消息头,是指在超文本传输协议(Hypertext Transfer Protocol,HTTP)的请求和响应消息中的消息头部分,定义了HTTP传输过程中的具体参数。

注意事项
- 回源请求头配置只会影响通过CDN回源的HTTP消息,对于CDN节点直接响应给用户的HTTP消息不做修改。
- 同一个请求头不允许同时存在两个不同的取值。
- 如果您的域名在后台有特殊配置,暂不支持配置回源请求头。
- 最多可添加10条回源请求头。
操作步骤
- 登录CDN控制台。
- 在左侧菜单栏中,选择。
- 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
- 选择“回源配置”页签。
- 在“回源请求头”配置模块,单击“添加”按钮。
- 配置回源请求头信息
    - 添加:在CDN侧添加回源请求头参数,用来改写用户请求URL中的HTTP头部信息。
 图1 添加回源请求头  表1 参数说明 配置项 示例 说明 请求头操作 设置 在回源HTTP请求中增加指定的请求头参数。 - 如果用户请求URL的HTTP头部携带X-test参数,取值111。CDN侧设置的X-test取值为aaa,那么回源时X-test的取值为aaa。
- 如果用户请求URL的HTTP头部没有携带X-test参数,那么回源时增加X-test,取值为aaa。
 删除 删除用户请求URL中已经存在的HTTP头部信息。 - 如果用户请求URL的HTTP头部携带X-test参数,回源时会删除该参数。
 请求头参数 X-test - 长度1~100。
- 以字母开头,由数字0-9、字符a-z、A-Z,及特殊符“-”组成。
 请求头取值 aaa - 长度为1~1000。
- 由数字0 - 9、字符a - z、A - Z,及特殊符“.”、“-”、“_”、“*”、“#”、“!”、“&”、“+”、“|”、“^”、“~”、“'”、“"”、“/”、“:”、“;”、“,”、“=”、“@”、“?”、“<”、“>”、“$”、“{”、“}”组成。
- “${”和“}”必须成对出现。
- 支持配置以下变量:
           - ${arg_xxx}:获取请求参数中名为xxx的值,其中xxx为可变参数,支持配置大小写字母、数字0-9、及特殊字符“-”、“_”、“.”、“~”。且xxx的值区分大小写,即${arg_test}和${arg_TEST}代表不同的值。
- ${http_xxx}:获取名为xxx的请求头的值,其中xxx为可变参数,支持配置大小写字母、数字0-9、及特殊字符“_”、“.”。
             - xxx的值不区分大小写,即${http_test}和${http_TEST}代表相同的值。
- 如需通过变量获取请求头xxx的值,配置请求头时需要使用“_”替换“-”,例如:获取请求头X-CCDN-Test的值时,需要配置为${http_X_CCDN_Test}。
 
- ${request_method}:获取请求方法。
- ${host}:加速域名。
- ${remote_addr}:客户端IP。
 
- 变量支持拼接不支持嵌套,即支持配置${host}and${arg_name},不支持配置${${host}}。
 - 编辑:修改当前回源请求头取值或操作。单击回源请求头列表“操作”列“编辑”按钮,弹框如下:
 图2 编辑回源请求头  配置项 示例 说明 请求头操作 设置 在回源HTTP请求中增加指定的请求头参数。 - 如果用户请求URL的HTTP头部携带X-test参数,取值111。CDN侧设置的X-test取值为aaa,那么回源时X-test的取值为aaa。
- 如果用户请求URL的HTTP头部没有携带X-test参数,那么回源时增加X-test,取值为aaa。
 删除 删除用户请求URL中已经存在的HTTP头部信息。 - 如果用户请求URL的HTTP头部携带X-test参数,回源时会删除该参数。
 请求头参数 X-test 此处无法修改。 请求头取值 aaa - 长度为1~1000。
- 由数字0 - 9、字符a - z、A - Z,及特殊符“.”、“-”、“_”、“*”、“#”、“!”、“&”、“+”、“|”、“^”、“~”、“'”、“"”、“/”、“:”、“;”、“,”、“=”、“@”、“?”、“<”、“>”、“$”、“%”、“{”、“}”组成。
- “${”和“}”必须成对出现。
- 支持配置以下变量:
           - ${arg_name}:获取请求参数中为name的参数值(name是可变的)。
- ${http_name}:获取名为name的请求头的值(name是可变的)。
- ${request_method}:获取请求方法。
- ${host}:加速域名。
- ${remote_addr}:客户端IP。
 
- 变量支持拼接不支持嵌套,即支持配置${host}and${arg_name},不支持配置${${host}}。
 - 删除:删除当前回源请求头配置。单击回源请求头列表“操作”列“删除”按钮,在同步配置弹框勾选其他需要删除该头部的域名,单击“确定”,完成配置。
 
- 单击“确定”,完成配置。
配置示例
加速域名“www.example.com”的回源请求头设置如下:

当用户访问“http://www.example.com/abc.jpg”文件时,CDN节点没有缓存该资源,CDN回源请求资源。回源时增加“X-cdn头部”,同时删除“X-test头部”。
使用限制
- 如果您的后台存在特殊配置,暂不支持配置Content-Type、Cache-Control、Expires。
- 以下请求头仅支持修改响应头信息,不支持将“请求头操作”类型设置为“删除”: 
    Expires Content-Disposition Content-Type Content-Language Cache-Control - 
- 目前不支持添加/删除/编辑以下标准头部信息: 
    a_dynamic cross-origin-embedder-policy origin strict-transport-security accept cross-origin-opener-policy ping-from te accept-ch cross-origin-resource-policy ping-to timing-allow-origin accept-charset date pragma tk accept-ch-lifetime device-memory proxy-authenticate trailer accept-push-policy dnt proxy-authorization transfer-encoding accept-ranges dpr public-key-pins upgrade accept-signature early-data public-key-pins-report-only upgrade-insecure-requests access-control-allow-credentials etag push-policy vary access-control-allow-headers expect range via access-control-allow-methods expect-ct referer-policy viewport-width access-control-allow-origin feature-policy report-to warning access-control-expose-headers forwarded retry-after width access-control-max-age from save-data www-authenticate access-control-request-headers host sec-fetch-dest x-client-ip access-control-request-method if-match sec-fetch-mode x-content-type-options age if-modified-since sec-fetch-site x-dns-prefetch-control allow if-none-match sec-fetch-user x-download-options alt-svc if-range sec-websocket-accept x-firefox-spdy authorization if-unmodified-since sec-websocket-extensions x-forwarded-for clear-site-data keep-alive sec-websocket-key x-forwarded-host connection large-allocation sec-websocket-protocol x-frame-options(xfo) content-dpr last-event-id sec-websocket-version x-permitted-cross-domain-policies content-encoding last-modified server x-pingback content-length link server-timing x-powered-by content-location location service-worker-allowed x-requested-with content-range max-age signature x-robots-tag content-security-policy max-forwards signed-headers x-ua-compatible content-security-policy-report-only nel sourcemap x-xss-protection 
 
    