Configurar o comportamento de armazenamento em cache

A Media CDN disponibiliza conteúdo o mais próximo possível dos usuários usando a infraestrutura global de armazenamento em cache de borda do Google para armazenar conteúdo em cache e reduzir a carga na infraestrutura de origem.

É possível controlar como o conteúdo é armazenado em cache para cada rota. Isso permite otimizar o comportamento com base no tipo de conteúdo, nos atributos da solicitação do cliente e nos seus requisitos de atualização.

Capacidade de armazenamento em cache

As seções a seguir descrevem quais respostas a Media CDN armazena em cache e como melhorar o descarregamento de cache.

Comportamento de armazenamento em cache padrão

Por padrão, as seguintes configurações relacionadas ao cache são aplicadas a cada serviço do Edge Cache:

  • Modo de cache padrão de CACHE_ALL_STATIC:

    • Respeita as diretivas de cache de origem, como Cache-Control ou Expires, até um TTL máximo configurável.
    • Armazena automaticamente em cache tipos de mídia estática com um TTL padrão de 3.600 segundos, se não houver diretivas de cache de origem.
    • Armazena em cache os códigos de status HTTP 200, 204 e 206 (o armazenamento em cache negativo não está ativado).
  • Não armazena em cache respostas com diretivas no-store ou private de controle de cache ou que não podem ser armazenadas em cache.

As respostas que não são conteúdo estático ou que não têm diretivas de cache válidas não são armazenadas em cache, a menos que o armazenamento em cache seja configurado explicitamente. Para saber como substituir o comportamento padrão, consulte a documentação sobre modos de cache .

O comportamento padrão é equivalente ao seguinte cdnPolicy. As rotas sem um cdnPolicy explícito configurado se comportam como se tivessem a seguinte configuração:

cdnPolicy:
  cacheMode: CACHE_ALL_STATIC
  defaultTtl: 3600s
  cacheKeyPolicy:
    includeProtocol: false
    excludeHost: false
    excludeQueryString: false
  signedRequestMode: DISABLED
  negativeCaching: false

Respostas armazenáveis em cache

Uma resposta armazenável em cache é uma resposta HTTP que o Media CDN pode armazenar e recuperar rapidamente, possibilitando tempos de carregamento mais rápidos. Nem todas as respostas HTTP são armazenáveis em cache.

É possível configurar modos de cache para cada rota e substituir esse comportamento. Por exemplo, use o modo de cache CACHE_ALL_STATIC para armazenar em cache tipos de mídia comuns, mesmo que a origem não defina uma diretiva de controle de cache na resposta.

As solicitações e respostas que atendem aos critérios definidos em respostas não armazenáveis em cache substituem a capacidade de armazenamento em cache.

A tabela a seguir descreve os requisitos para armazenar em cache respostas HTTP específicas. As respostas GET e HEAD precisam obedecer a esses requisitos.

Atributo HTTP Requisitos
Código de status O código de status da resposta precisa ser um destes: 200, 203, 204, 206, 300, 301, 302, 307, 308, 400, 403, 404, 405, 410, 451, 500, 501, 502, 503 ou 504.
Métodos HTTP GET e HEAD
Cabeçalhos das solicitações A maioria das diretivas de solicitação de armazenamento em cache é ignorada. Para mais informações, consulte Diretivas de controle de cache.
Cabeçalhos de resposta

Contém uma diretiva de armazenamento em cache HTTP válida, como Cache-Control: max-age=3600, public.

Tem um modo de cache que armazena esse conteúdo em cache ou um cabeçalho Expires com uma data no futuro.

Tamanho da resposta Até 100 GiB.

O cabeçalho HTTP Age é definido com base em quando o Media CDN armazenou em cache a resposta pela primeira vez e normalmente representa os segundos desde que o objeto foi armazenado em cache em um local de proteção de origem. Se sua origem gerar um cabeçalho de resposta "Age", use o modo de cache FORCE_CACHE_ALL para evitar revalidações quando a idade exceder o TTL do cache.

Para mais informações sobre como a Media CDN interpreta as diretivas de armazenamento em cache HTTP, consulte Diretivas de controle de cache.

Requisitos de origem

Para permitir que o Media CDN armazene em cache respostas de origem maiores que 1 MiB, uma origem precisa incluir o seguinte nos cabeçalhos de resposta para solicitações GET, a menos que especificado de outra forma:

  • Um cabeçalho de resposta HTTP Last-Modified ou ETag (um validador).
  • Um cabeçalho HTTP Date válido.
  • Um cabeçalho Content-Length válido.
  • O cabeçalho de resposta Content-Range, em resposta a uma solicitação Range GET. O cabeçalho Content-Range precisa ter um valor válido na forma de bytes x-y/z, em que z é o tamanho do objeto.

O protocolo de origem padrão é HTTP/2. Se as origens forem compatíveis apenas com HTTP/1.1, defina o campo de protocolo explicitamente para cada origem.

Respostas não armazenáveis em cache

A tabela a seguir detalha os atributos de solicitação e resposta que impedem o armazenamento em cache de uma resposta. As respostas que podem ser armazenadas em cache, mas que correspondem a critérios "não armazenáveis em cache", não são armazenadas em cache.

Atributo HTTP Requisito
Código de status

Um código de status diferente daqueles definidos como armazenáveis em cache, como HTTP 401, HTTP 412 ou HTTP 505.

Esses códigos de status normalmente representam problemas voltados ao cliente e não o status da origem. O armazenamento em cache dessas respostas pode levar a cenários de "envenenamento de cache", em que uma resposta "ruim" acionada pelo usuário é armazenada em cache para todos os usuários.

Cabeçalhos das solicitações