Quando um nó do CDN DCDN busca um recurso no servidor de origem, o servidor de origem retorna um código de status de resposta. É possível configurar uma duração de cache para códigos de status no Alibaba Cloud CDN DCDN. Quando um cliente solicita o mesmo recurso novamente, o CDN DCDN retorna o código de status diretamente sem acionar uma busca na origem, reduzindo a carga no servidor de origem. Quando o tempo de cache configurado expira, o nó aciona uma nova busca na origem.
Nota: Quando este recurso utiliza condições de regra do Rules Engine, a ordem de execução segue a prioridade do Rules Engine, e não a prioridade do próprio recurso.
Casos de uso
Use este recurso para controlar como os nós do DCDN armazenam em cache as respostas quando o servidor de origem retorna códigos de status diferentes de 2xx.
Por padrão, o DCDN processa as respostas 2xx com base nas default cache rules and priorities of Alibaba Cloud CDN and DCDN. Se o servidor de origem retornar frequentemente códigos de status diferentes de 2xx, defina um TTL para esses códigos de modo que os nós do DCDN retornem as respostas em cache diretamente, reduzindo a carga na origem.
Exemplo
Um arquivo é excluído do servidor de origem, mas os clientes continuam a solicitá-lo. Cada solicitação aciona uma busca na origem, que retorna um código 4xx, aumentando a carga na origem. Ao armazenar os códigos de status 4xx em cache, o nó do DCDN armazena a resposta 4xx em cache após a primeira busca. As solicitações subsequentes durante o tempo de cache recebem a resposta 4xx em cache diretamente.
Regras de cache para códigos de status anormais
-
Para os códigos de status 204, 301, 305, 404, 405, 414, 424, 429, 500, 501, 502, 503 e 504, as regras de cache são as seguintes:
Se o servidor de origem retornar o cabeçalho de resposta
set-cookie, o CDN DCDN não armazena a resposta em cache.Se o servidor de origem não retornar o cabeçalho de resposta Set-Cookie, a resposta é armazenada em cache com base no TTL do código de status configurado no console do CDN DCDN. Se houver várias regras configuradas, consulte Prioridade de várias regras para saber como o sistema determina a regra efetiva.
Se o servidor de origem não retornar o cabeçalho de resposta Set-Cookie e nenhum TTL de código de status estiver configurado no console do CDN DCDN, a resposta é armazenada em cache com base no cabeçalho de resposta Pragma, Cache-Control ou Expires definido pelo servidor de origem.
Se o servidor de origem não retornar os cabeçalhos de resposta Set-Cookie, Pragma, Cache-Control ou Expires e nenhum TTL de código de status estiver configurado no console do CDN DCDN, a resposta é armazenada em cache por 1 segundo por padrão.
-
Para os códigos de status 302, 307 e 403, as regras de cache são as seguintes:
Se o servidor de origem retornar o cabeçalho de resposta
set-cookie, o CDN DCDN não armazena a resposta em cache.Se o servidor de origem não retornar o cabeçalho de resposta Set-Cookie, a resposta é armazenada em cache com base no TTL do código de status configurado no console do CDN DCDN. Se houver várias regras configuradas, consulte Prioridade de várias regras para saber como o sistema determina a regra efetiva.
Se o servidor de origem não retornar o cabeçalho de resposta Set-Cookie e nenhum TTL de código de status estiver configurado no console do CDN DCDN, a resposta é armazenada em cache com base no cabeçalho de resposta Pragma, Cache-Control ou Expires definido pelo servidor de origem.
Se o servidor de origem não retornar os cabeçalhos de resposta Set-Cookie, Pragma, Cache-Control ou Expires e nenhum TTL de código de status estiver configurado no console do CDN DCDN, a resposta não é armazenada em cache.
Para o código de status 304, o CDN DCDN não armazena a resposta em cache, e não é possível configurar o tempo de cache.
-
Para outros códigos de status anormais, como o código de status 400, as regras de cache são as seguintes:
Se o servidor de origem retornar o cabeçalho de resposta
set-cookie, o CDN DCDN não armazena a resposta em cache.Se o servidor de origem não retornar o cabeçalho de resposta Set-Cookie, a resposta é armazenada em cache com base no TTL do código de status configurado no console do CDN DCDN. Se houver várias regras configuradas, consulte Prioridade de várias regras para saber como o sistema determina a regra efetiva.
Em outros cenários, a resposta não é armazenada em cache.
-
Para solicitações que usam busca na origem por intervalo (range origin fetch), se um nó do CDN DCDN receber um código de status diferente de 206 do servidor de origem, o nó do CDN DCDN exclui as fatias armazenadas em cache (o tempo limite de busca na origem não causa a exclusão dos arquivos em cache).
Em uma busca na origem por intervalo, o servidor de origem divide um arquivo grande em várias fatias menores e as retorna para os nós do CDN DCDN. Por exemplo, um arquivo é dividido em 10 fatias e um nó do CDN DCDN já armazenou cinco fatias em cache. Ao solicitar a sexta fatia, o nó recebe um código de status 5xx do servidor de origem. Nesse caso, o sistema exclui as cinco fatias previamente armazenadas em cache.
Prioridade das regras
Quando uma solicitação corresponde a várias regras de cache, apenas uma é aplicada:
-
Ordem de avaliação:
As regras são avaliadas primeiro por tipo (File Extension > Directory) e, em seguida, por data de criação (mais antiga > mais recente).
-
Prioridade para regras de tipos diferentes: File Extension > Directory.
Por exemplo, se uma solicitação do usuário corresponder a duas regras (ambas configuradas para o código de status 404) dos tipos File Extension e Directory, o tempo de expiração para o código de status 404 é determinado pela regra File Extension. Para um exemplo detalhado, consulte Configuration examples.
-
Prioridade para regras do mesmo tipo: mais antiga > mais recente (de cima para baixo na lista de regras).
Por exemplo, se uma solicitação do usuário corresponder a duas regras (ambas configuradas para o código de status 404) do mesmo tipo (ambas File Extension ou ambas Directory), o tempo de expiração para o código de status 404 é determinado pela regra criada primeiro. Para um exemplo detalhado, consulte Configuration examples.
Procedimento
Faça login no console do DCDN.
No painel de navegação à esquerda, clique em Domain Names.
Na página Domain Names, encontre o nome de domínio desejado, gerencie e clique em Configure na coluna Actions.
Na árvore de navegação à esquerda do nome de domínio, clique em Caching.
Clique na guia Status Codes and Expiration Time.
-
Clique em Add e crie uma regra de cache para códigos de status.

Tipo
Observações
Type
selecione um tipo: Directory ou File Extension.
NotaPrioridade para regras de tipos diferentes: File Extension > Directory. Para mais informações, consulte Rule priority.
Object
Se você selecionar Directory:
Adicione apenas um diretório por vez.
insira o caminho completo do diretório começando com
/, por exemplo,/directory/aaa.
Se você selecionar File Extension:
insira as extensões de arquivo separadas por vírgulas, por exemplo,
jpg,txt.NotaAs extensões de arquivo diferenciam letras maiúsculas de minúsculas. Se você criar regras para as mesmas extensões com diferentes combinações de maiúsculas e minúsculas (por exemplo,
jpg,txtejpg,txt), a regra posterior substituirá a regrajpg,txt. Crie regras separadas paratxtejpgpara evitar isso.Não use um asterisco (
*) para corresponder a todos os tipos de arquivo.
HTTP Status Codes and Expiration Time
Especifique os códigos de status para armazenar em cache e seus respectivos TTL em segundos (máximo: 3 anos):
Separe vários códigos de status com vírgulas (
,).Códigos 2xx e 3xx: apenas códigos individuais. Por exemplo, 201=10 é válido, mas 2xx=12 não é.
Códigos 4xx e 5xx: tanto códigos individuais quanto curingas são aceitos. Por exemplo, 401=10 e 4xx=12 são válidos.
Honor Origin TTL
Quando ativada, os cabeçalhos de cache do servidor de origem (
Cache-Control,Pragma) têm precedência sobre o TTL configurado.Ignore Origin No-Cache Header
Quando ativada, os nós do DCDN ignoram estes cabeçalhos de não armazenamento em cache da origem:
Cache-Control: no-storeCache-Control: no-cacheCache-Control: max-age=0Pragma: no-cache
Follow POP TTL
Quando ativada, o nó do DCDN envia a política de cache efetiva final para o cliente.
Force Revalidation
Tem efeito apenas quando o TTL do cache é definido como 0:
Desativado (padrão): Quando o TTL do DCDN é 0, os arquivos não são armazenados em cache nos nós do DCDN. Cada solicitação aciona uma busca na origem.
Ativado: Quando o TTL do DCDN é 0, os arquivos são armazenados em cache nos nós do DCDN, mas cada solicitação aciona uma busca na origem para revalidação.
-
Clique em OK.
A nova regra aparece na lista de Status Codes and Expiration Time , onde é possível Modify ou Delete a regra.
Exemplos de configuração
-
Exemplo 1: Regra do tipo Directory
crie uma regra Directory conforme mostrado abaixo:

Para o diretório
/directory/aaa, todos os códigos 4xx são armazenados em cache por 10 segundos e o código 201 por 15 segundos. Durante o TTL, o DCDN responde diretamente. Após a expiração, as solicitações são encaminhadas para a origem. -
Exemplo 2: Regra do tipo File Extension
crie uma regra File Extension conforme mostrado abaixo:

Para arquivos
.jpge.txt, o código 403 é armazenado em cache por 10 segundos e o código 404 por 15 segundos. Durante o TTL, o DCDN responde diretamente. Após a expiração, as solicitações são encaminhadas para a origem. -
Exemplo 3: Prioridade para regras de tipos diferentes
Uma regra
Directorye uma regraFile Extensioncom valores de TTL diferentes são criadas conforme mostrado abaixo:
Um cliente solicita
http://example.com/directory/aaa/test.jpg. O nó do DCDN busca o recurso na origem, que retorna 404. Essa solicitação corresponde tanto à regraDirectoryquanto à regraFile Extension. Como File Extension > Directory, a regraFile Extensioné aplicada e o 404 é armazenado em cache por 20 segundos. -
Exemplo 4: Prioridade para várias regras do mesmo tipo
A
Directory rule 1é criada primeiro para/directory, e depois aDirectory rule 2para/directory/aaa, com valores de TTL diferentes, conforme mostrado abaixo:
Um cliente solicita
http://example.com/directory/aaa/test.jpg. A origem retorna 404, que corresponde a ambas asDirectory rules. Como mais antiga > mais recente, aDirectory rule 1é aplicada e o 404 é armazenado em cache por 15 segundos.