CDN加速

文档中心 API文档 域名配置 修改http头配置接口

修改http头配置接口

更新时间:2021-02-05 10:35:58
适用产品:网页加速、下载加速、全站加速、点播加速、直播加速、移动加速、云存储

接口描述

通过接口自助实现http头部增删改功能,可通过在cdn层对客户实现个性化http头部控制,让客户在不需要修改源站的情况下,实现定制化的http头部和加速效果的提升。接口url的*可为域名名称或域名id。

请求参数

参数名称类型必填描述
header-modify-rulescomplexhttp头设置 注意: 1、需要取消http头设置时,可以传入空节点<header-modify-rules></header-modify-rules>。 2、表示需要设置http头,此项必填
header-modify-rulecomplexhttp头设置 注意: 1、表示一组http头设置 2、当其他配置项都是没有入参时,data-id必填,且值为实际存在的data-id,表示清空这个data-id对应配置项的值
data-idInt添加grid类型标识,表示客户多组配置时,具体某组配置。 data-id可以通过查询接口获取。 注意:添加grid类型标识:data-id,每一组配置对应一个data-id: a、如果客户有传data-id,说明指定修改其中一组配置项内容,不需求修改其他组配置内容不需要入参; b、如果客户入参多组配置,其中有些组配置有传data-id,有些没有传,则有传data-id的表示修改具体某组配置,没有传data-id的表示在原来基础上新增一组配置; c、如果客户入参都没有传data-id,表示用本次的配置全量覆盖原先配置; d、如果客户入参没有传任何配置项参数,只传了域名和二级标签,表示清空这个接口对应域名二级服务所有配置。(c、d内容和当前方案实现一致); e、一个gird标签下的入参不能为空,如果,没有具体的配置项,则data-id必填,且值为实际存在的data-id,表示清空这个data-id对应配置项的值;
path-patternStringurl匹配模式,支持正则,如果是全部匹配,入参可以配置为:.*
header-directionStringhttp头的控制方向,可选值为cache2visitor/cache2origin/visitor2cache/origin2cache,单选。  cache2origin是指回源方向---对应配置项回源请求;  cache2visitor是指回客户端方向—对应配置项回客户端应答; visitor2cache是指接收客户端请求 origin2cache是指接收源应答 配置接收源应答方向,添加非CACHE control头,无法传递给客户端
actionStringhttp头的控制类型,支持http头部的增删改,可选值为add|set|delete,单选。对应header-name、header-value参数 1. add:表示新增一个头部,头部名称为header-name,头部值为header-value 2. set:表示修改指定头部header-name的值为header-value 3. delete:表示删除头部,header-name可同时配置多个 注意:优先级delete>set>add。当源站有对应响应头,则按源站响应的头部响应给客户端,此处新增的无效。
allow-regexpStringhttp头正则匹配,可选值:true/false。 true:表示对header-name的值按正则匹配方式处理 false:表示对header-name的值按实际入参处理,不做正则匹配。 不传默认是false
header-nameStringhttp头名称,新增或修改http头,只允许输入一个;删除http头允许输入多个,以分号“;”隔开。 1.当action为add:表示新增这个header-name头部 2.当action为set:修改这个header-name头部的值 3.当action为delete:删除这个header-name头部 注意:对特殊http头的操作是受限的,允许操作的http头及操作类型请参看【概览】-【附件2: header操作】
header-valueStringhttp头域对应的值,例如:mytest.example.com 注意: 1、当action为add或set时,该入参必须传值 2、当action为delete时,该入参不用传 支持通过关键字获取指定变量值,如客户端ip,包含如下: 关键字:含义 #timestamp :当前时间,时间戳如1559124945 #request-host:请求头中的HOST #request-url :请求url,包含协议域名等的全路径,如http://aaa.aa.com/a.html #request-uri :请求uri,相对路径格式,如/index.html #origin-ip :回源IP #cache-ip :边缘节点IP #server-ip :对外服务IP #client-ip :客户端IP,即访客IP #response-header{xxx}:获取响应头中的值,如#response-header{etag},获取response-header中的etag值 #header{xxx}:获取请求的http header中的值,如#header{User-Agent},是获取header中的User-Agent值 #cookie{xxx}:获取cookie中的值,如#cookie{account},是获取cookie中设置的account的值  
request-headerString匹配请求头,头部值支持正则,头和头部值用空格隔开,如:Range bytes=[0-9]{9,}

返回参数

参数名称类型描述
http status codeInthttpstatus=202;   表示成功调用新增域名接口,可使用header中的x-cnc-request-id查看当前新增域名的部署情况
x-cnc-request-idString唯一标示的id,用于查询每次请求的任务 (适用全部接口)
LocationString用于访问该域名信息的URL,其中domain-id为我司云平台为该域名生成的唯一标示,其值为字符串。
codeString错误代码,当HTTPStatus不为202时出现,表示当前请求调用的错误类型
messageString响应信息,成功时为success

错误码

错误代码(code)描述(message)HTTP状态码语义
InvalidParameterThe request has null config with null data-id, please remove it.400其他属性都为空,dataId不能为空
InvalidParameterNo visit-control-rules was specified.400header-modify-rules字段不存在
InvalidParameterNo path-pattern was specified.400path-pattern字段不存在
InvalidParameterNo header-direction was specified.400header-direction字段不存在
InvalidParameterThe parameters headerDirection {} is invalid.400header-direction不合法
InvalidParameterNo header-name was specified.400header-name字段不存在
InvalidParameterThe parameters headerNames size no equal one when action is add or set.400header-name在操作为新增或修改的时候大于1条
InvalidParameterNo action was specified.400action字段不存在
InvalidParameterThe parameters action {} is invalid.400action字段不合法
InvalidParameterThe parameters allowReg {} is invalid.400allowReg字段不合法
InvalidParameterNo header-value was specified.400当action为add或set时,该入参必须传值
InvalidParameterNo header-value was not need.400当action为delete时,该入参不用传

示例

示例说明
请求示例
复制
#!/bin/bash
username="example_username"
apiKey="example_apiKey"
date=`env LANG="en_US.UTF-8" date -u "+%a, %d %b %Y %H:%M:%S GMT"`
password=`echo -en "$date" | openssl dgst -sha1 -hmac $apiKey -binary | openssl enc -base64`
curl -i --url "https://open.chinanetcenter.com/api/config/headermodify/123344" \
-X "PUT" \
-u "$username:$password" \
-H "Date: $date" \
-H "Accept: application/json" \
-H "Content-Type:application/json" \
-d '
{
    "header-modify-rules":[
                    {
                    "path-pattern": ".*",
                    "request-header": "My-Http-Header .",
                    "header-direction": "cache2visitor",
                    "action": "add",
                    "header-name": "My-Http-Header",
                    "header-value": "#header{My-Http-Header}"
          },
                    {
                    "path-pattern": "/def",
                    "header-direction": "cache2visitor",
                    "action": "set",
                    "header-name": "Server",
                    "header-value": "my_new_value"
          },
                    {
                    "path-pattern": "/abc",
                    "header-direction": "cache2visitor",
                    "action": "delete",
                    "header-name": "Via"
          }
]
}'
返回示例
复制
HTTP/1.1 202 Accepted
Date: Fri, 17 May 2017 06:33:26 GMT
Content-Type: application/json;charset=utf-8
x-cnc-request-id:c54cbbb4-19fe-407a-930c-3988b62ed2fd
{"message":"success"}