Skip to main content

Create Cache Control V2

This API is used to create a cache control policy for the website acceleration service.

Request

Request-Line

POST /cdn/v1.1/services/{serviceId}/cacheControl HTTP/1.1

Request Parameters

Path Parameters

ParameterTypeRequiredDescription
serviceIdIntegerMandatoryThe unique identifier for the service for which the cache control policy will be created.

Body Parameters

ParameterTypeRequiredDescription
policyNameStringMandatoryPolicy name for the cache control configuration.
priorityIntegerMandatoryPriority weight for the rule. Rules with a higher weight take precedence. The weight must be a positive integer (greater than zero).
matchesArrayMandatoryMatching configuration that determines which requests the rule applies to. See Matches for details.
ttlLongOptionalCache TTL (time-to-live) in seconds for content stored on the edge servers.
refererAclObjectOptionalAccess control based on the Referer header. Defines a domain list and an allow/deny policy to control which referer domains can access the resource. See Referer Acl for details.
originAclObjectOptionalAccess control based on the requesting origin. Defines a domain list and an allow/deny policy to control which referer domains can access the resource. See Origin Acl for details.
ignoreClientNoCacheBooleanOptionalWhen true, ignores no-cache headers sent by the client. Default is false.
ignoreOriginNoCacheBooleanOptionalWhen true, ignores no-cache headers sent by the origin server. Default is false.
ignoreQueryStringBooleanOptionalWhen true, ignores URL query strings when caching content. Default is false.
enableXCacheBooleanOptionalWhen enabled, responses from edge servers include an X-Cache header indicating whether the response was served from cache (e.g., HIT or MISS). Default is false.
noCacheBooleanOptionalWhen true, content is not cached even if the origin indicates it is cacheable. Default is false.
autoGzipDisableBooleanMandatoryDisable automatic Gzip compression on the CDN edge. Default is false.
responseHeadersArrayOptionalList of response header configurations. See Response Headers for details.
varyMIMEsArrayOptionalEnables the "vary for images" feature. A list of MIME types (e.g., image/webp, image/jpeg) that should be preferred for objects matched by this policy.
enabledBooleanOptionalWhether the policy is active. Default is true.
Object: Matches
ParameterTypeRequiredDescription
ArrayMandatorySee Match for details.
Object: Match
ParameterTypeRequiredDescription
fieldStringMandatoryWhich part of the request to match. Supported values:
req.path - Request path (excluding query string).
req.query - Request query parameters.
req.method - HTTP method (GET, POST, etc.).
client.ip - Client IP address.
req.host - Request host.
req.header.user-agent - User-Agent header.
req.header.cookie - Cookie header.
req.header.origin - Origin header.
req.header.via - Via header.
operatorStringMandatoryDefines how to match the field. Supported values:
startswith - Succeeds if the what matches one of the prefixes listed in patterns.
not_startswith - Matches if field value does not starts with any of the specified prefixes.
istartswith - Case-independent version of startswith.
not_istartswith - Matches if the field value does not starts with any of the specified prefixes, ignoring letter case differences.
regex - Succeeds if what matches one of the regexes listed in patterns.
equals - Succeeds if the what matches one of the strings listed in patterns.
not_equals - Succeeds if the field value does not exactly match any of the specified strings.
iequals - Case-independent version of equals.
not_iequals - Succeeds if the field value does not exactly match any of the specified strings,ignoring letter case differences.
endswith - Succeeds if the what ends with one of the strings listed in patterns. Useful e.g. to match file extensions like ".mp4".
not_endswith - Succeeds if the what does not ends with one of the strings listed in patterns.
iendswith - Case-independent version of endswith.
not_iendswith - Succeeds if the what does not ends with one of the strings listed in patterns,ignoring letter case differences.
subnet - Succeeds if the what belongs to one of subnets, specified in patterns, like "1.222.94.98/32".
not_subnet - Succeeds if the what does not belongs to one of subnets.
Note: subnet operator is applicable only to the client.ip match option.
valuesArrayMandatoryList of values matching the URL path string.
Object: Referer/Origin Acl
ParameterTypeRequiredDescription
aclTypeStringMandatoryAccess control type. Support values: whitelist or blacklist.
domainListArrayMandatoryList of domain names to be allowed or blocked.
Object: Response Headers
ParameterTypeRequiredDescription
nameStringMandatoryResponse header name.
operationTypeStringMandatoryOperation to perform on the response header. Supported values: add, replace or delete.
valueStringOptionalResponse header value. Required when operationType is add or replace.

Response

Response Body

ParameterTypeDescription
policyIdIntegerPolicy ID number for cache control.
policyNameStringPolicy name for the cache control configuration.
priorityIntegerPriority weight for the rule. Rules with a higher weight take precedence. The weight must be a positive integer (greater than zero).
matchesArrayMatching configuration that determines which requests the rule applies to. See Matches for details.
ttlLongCache TTL (time-to-live) in seconds for content stored on the edge servers.
refererAclObjectAccess control based on the Referer header. Defines a domain list and an allow/deny policy to control which referer domains can access the resource. See Referer Acl for details.
originAclObjectAccess control based on the requesting origin. Defines a domain list and an allow/deny policy to control which referer domains can access the resource. See Origin Acl for details.
ignoreClientNoCacheBooleanWhen true, ignores no-cache headers sent by the client. Default is false.
ignoreOriginNoCacheBooleanWhen true, ignores no-cache headers sent by the origin server. Default is false.
ignoreQueryStringBooleanWhen true, ignores URL query strings when caching content. Default is false.
enableXCacheBooleanWhen enabled, responses from edge servers include an X-Cache header indicating whether the response was served from cache (e.g., HIT or MISS). Default is false.
noCacheBooleanWhen true, content is not cached even if the origin indicates it is cacheable. Default is false.
autoGzipDisableBooleanDisable automatic Gzip compression on the CDN edge. Default is false.
responseHeadersArrayList of response header configurations. See Response Headers for details.
varyMIMEsArrayEnables the "vary for images" feature. A list of MIME types (e.g., image/webp, image/jpeg) that should be preferred for objects matched by this policy.
enabledBooleanWhether the policy is active. Default is true.

Status Codes, Error Codes and Error Messages

Status CodeError CodeError Message
400Request.BadRequestBad request.
400InvalidCustomer.IdEmptyCustomer ID cannot be empty or invalid.
400InvalidService.IdIncorrectService ID is empty or invalid.
400InvalidService.IdPermissionService ID cannot be found or unknown.
400Invalid.PolicyNamePolicy name is required.
400InvalidPolicy.MatchURLIncorrectThe matchUrlPath cannot be empty.
400InvalidPolicy.OperatorOperator must be one of the following values: prefix, regex, equals or suffix.
400InvalidPolicy.PatternsPatterns cannot be empty or invalid.
400InvalidPolicy.RefererAclInvalid AclType. must be whitelist or blacklist.
400InvalidPolicy.AclDomainListDomainList cannot be empty and must not contain empty values.
400InvalidPolicy.AclDomainTypeDomainList elements cannot start with '-'.
400InvalidPolicy.PriorityPriority is required and must be a positive integer.
400InvalidService.VaryMiMEThe varyMIMEs field cannot be an empty array or contain empty values.
400InvalidPolicy.ResponseHeaderResponseHeaders cannot be empty or invalid.
400InvalidPolicy.MatchesIncorrectThe matches cannot be empty or incorrect.
400InvalidPolicy.MatchFieldIncorrectThe match field cannot be empty, or use the specified value.
400InvalidPolicy.MatchOperatorIncorrectThe match operator is required, or use the specified value.
400InvalidPolicy.MatchValuesIncorrectThe match values are required, or cannot be empty.
400InvalidPolicy.MatchValueIncorrectAll match values must not be empty.

Examples

Create Cache Control V2

Request

POST /cdn/v1.1/services/229033/cacheControl HTTP/1.1

{ "priority":5,
"policyName":"cacheInfo",
"matches":[
{
"field":"req.path",
"operator":"startswith",
"values":["/css/","/images/abc/"]
},
{
"field":"req.host",
"operator":"iequals",
"values":["example.com"]
},
{
"field":"req.method",
"operator":"equals",
"values":["get"]
}
],
"ignoreClientNoCache":false,
"ignoreOriginNoCache":false,
"ignoreQueryString":true,
"enableXCache":true,
"noCache":false,
"autoGzipDisable":false,
"responseHeaders":[{
"name": "Content-Type",
"operationType": "add",
"value": "application/json"
}]
}

Successful Response Body

{
"policyId": 262285,
"policyName": "cacheInfo",
"ttl": 0,
"originAcl": {
"aclType": "",
"domainList": []
},
"ignoreClientNoCache": false,
"ignoreOriginNoCache": false,
"ignoreQueryString": true,
"enableXCache": true,
"noCache": false,
"autoGzipDisable": false,
"responseHeaders": [
{
"name": "Content-Type",
"value": "application/json",
"operationType": "Add"
}
],
"matches": [
{
"field": "req.path",
"operator": "startswith",
"values": [
"/css/",
"/images/abc/"
]
},
{
"field": "req.host",
"operator": "iequals",
"values": [
"example.com"
]
},
{
"field": "req.method",
"operator": "equals",
"values": [
"get"
]
}
],
"varyMIMEs": [],
"priority": 5,
"enabled": true
}