Uma chave de cache é um ID exclusivo para um arquivo armazenado em cache em um nó do Dynamic Route for CDN (DCDN). Por padrão, a chave de cache corresponde à URL da solicitação, incluindo os parâmetros. O DCDN permite reescrever as chaves de cache de solicitações destinadas ao mesmo arquivo de recurso para uma única chave. Isso ajuda a economizar espaço de cache e reduz o número de solicitações redirecionadas ao servidor de origem. Este tópico descreve como defina uma chave de cache personalizada.
Cenários
Cenário 1:
As URLs nas solicitações podem conter parâmetros complexos, mesmo quando servem para recuperar o mesmo arquivo de recurso. Devido aos diferentes parâmetros de URL, os nós do DCDN tratam essas solicitações como requisições para arquivos de recurso distintos e armazenam em cache os arquivos correspondentes a cada uma delas. Como resultado, um grande volume de solicitações é redirecionado ao servidor de origem.

Defina uma chave de cache para um tipo específico de solicitação a fim de reduzir o número de requisições redirecionadas ao servidor de origem.

Cenário 2:
As solicitações possuem a mesma URL. Nesse caso, o DCDN as trata como requisições para o mesmo arquivo de recurso. No entanto, os sistemas operacionais dos clientes são especificados no campo client do cabeçalho HTTP dessas solicitações. Talvez seja necessário retornar arquivos de recurso diferentes com base no sistema operacional especificado.

Para resolver esse problema, defina duas chaves de cache e inclua o valor do campo client nessas chaves. Em seguida, utilize-as para distinguir as solicitações.

Procedimento
Faça login no console do DCDN.
Na página Domain Names, localize o nome de domínio que deseja gerencie e clique em Configure na coluna Actions.
No painel de navegação à esquerda da página de detalhes do domínio especificado, clique em Cache.
-
Na aba Custom Cache Key, configure a chave de cache.
NotaÉ possível modifique apenas URIs, ações de parâmetro e cabeçalhos HTTP em uma chave de cache. Variáveis personalizadas são suportadas e permitem extrair campos das solicitações. Uma chave de cache é composta por URIs, ações de parâmetro, cabeçalhos HTTP e variáveis personalizadas.
As chaves de cache personalizadas não alteram as URLs das solicitações redirecionadas aos servidores de origem; elas modificam apenas os identificadores de cache nessas requisições. As solicitações redirecionadas à origem e enviadas pelos clientes mantêm o mesmo conteúdo original.

Clique em OK.
Exemplo
URIs
Na figura a seguir, as solicitações destinadas às URIs
http://example.com/a/b/test.jpg
e
http://example.com/a/b/c/test.jpg
são consideradas requisições para o mesmo arquivo de recurso. A chave de cache desse arquivo é
http://example.com/c/test.jpg
.

Parameter Actions
No exemplo abaixo, as solicitações têm como destino
http://example.com/a/b/test.jpg?delete_par=1&modify_par=1
. O parâmetro
add_par=1
é adicionado à URL, o parâmetro
delete_par
é removido da URL e o valor do parâmetro
modify_par
é alterado para
2
. A URL final resulta em
http://example.com/a/b/test.jpg?modify_par=2&add_par=1
.
Para ações de parâmetro, a prioridade das regras aplicadas à mesma variável segue a ordem: Add > Delete > Retain Only > Modify.

HTTP Headers
Neste exemplo, os valores dos campos
User-Agent
e
Accept-Language
do cabeçalho HTTP são incluídos nas chaves de cache. Por exemplo, se uma solicitação destinada a
http://example.com/a/b/test.jpg
contiver
User-Agent=Mozilla/5.0 (Linux; X11)
e
Accept-Language=en
em seu cabeçalho, a chave de cache da solicitação será
http://example.com/a/b/test.jpgMozilla/5.0(Linux;X11)en
.

Custom Variables
Exemplo 1:
O nome da variável é
language
. A source da variável é
Request Header
, o campo de source é
Accept-Language
, a regra de correspondência é
([%w]+),([%w]+)
e a expressão da variável é
$1aa
.

Se uma solicitação destinada a
http://example.com/a/b/test.jpg
contiver o cabeçalho HTTP
Accept-Language=en,ch
, a regra de correspondência atribuirá o valor
en
a
$1
na expressão da variável. A string
aa
também será anexada ao final da expressão. Consequentemente, a variável
enaa
com o alias
language
será gerada. Após o DCDN anexar a variável à URL, a chave de cache final será:
http://example.com/a/b/test.jpgenaa
.
A definição de
$n
na expressão da variável refere-se ao conteúdo correspondente entre os parênteses de número
n
. No Exemplo 1, temos
Accept-Language=en,ch
e a regra de correspondência é
([%w]+),([%w]+)
. Portanto,
$1=en
e
$2=ch
.
Exemplo 2:
O nome da variável personalizada é
expired
. A source da variável é
Request Cookie
, o campo de source é
a
, a regra de correspondência é
[%w]+:(.*)
e a expressão da variável é
$1
.

Se uma solicitação destinada a http://example.com/a/b/test.jpg contiver o cookie Cookie a=expired_time:12635187, a regra de correspondência atribuirá o valor 12635187 a $1 na expressão da variável. O alias da variável é expired. A chave de cache final será http://example.com/a/b/test.jpg12635187.
Exemplo 3:
Definir regras de URI e variáveis personalizadas simultaneamente
URI:
Transformar
/abc/.*/abc
em todas as URIs de solicitação para
/abc
.

Variável personalizada:
O nome da variável personalizada é
testname
. A source da variável é
Path
, a regra de correspondência é
/abc/xyz/(.*)
e a expressão da variável é
$1
.

Se uma solicitação tiver como destino http://example.com/abc/xyz/abc/test.jpg, a URL será alterada para http://example.com/abc/test.jpg com base na regra de URI. A URL corresponde a /abc/xyz/(.*). Nesse caso, $1 recebe o valor abc e é anexado à chave de cache. A chave de cache gerada é http://example.com/abc/test.jpgabc. Dessa forma, duas regras são aplicadas simultaneamente para suportar lógicas de cache mais complexas.