Armazenamento em cache
O armazenamento em cache é o processo de guardar dados localmente para uso futuro. Por exemplo, navegadores como Chrome e Firefox usam isso para fazer os sites carregarem mais rápido na próxima vez que você os visitar. Isso é feito armazenando conteúdo cacheável no seu disco quando você visita um site. Na próxima vez que você acessar a mesma página, o navegador vai buscar o conteúdo no seu disco. Isso melhora o desempenho e reduz o uso de largura de banda, porque o navegador não precisa baixar todo o conteúdo estático de novo.
Cache de CDN
No coração da rede de distribuição de conteúdo (CDN) está o cache: conteúdos estáticos como imagens, vídeos e outros recursos web são armazenados perto dos seus usuários nos chamados “nós de borda” (edge nodes), distribuídos geograficamente.
Isso traz as seguintes vantagens:
-
A latência de rede é reduzida porque o conteúdo é levado para perto do usuário, diminuindo a distância que os dados precisam percorrer.
-
Alívio de carga: seus próprios servidores não precisam servir esses dados. Isso reduz os custos da sua aplicação.
Por quanto tempo meu conteúdo fica armazenado?
Os arquivos (objetos) são armazenados em cache em um ou mais Pontos de Presença (PoPs), que são data centers com vários servidores de cache. Quando o conteúdo é incorporado ao cache, recebe um valor de TTL (time to live) que especifica por quanto tempo ele ficará no cache da CDN. Esses caches normalmente usam a política LRU (Least Recently Used) e removem o conteúdo quando ele expira ou, no caso de um PoP muito movimentado, quando ele é descartado por ter pouca procura. O Tinify CDN tem um tempo mínimo de cache de 1 mês, mas, pelos motivos acima, o LRU não pode garantir que o conteúdo permaneça “quente”.
Gerenciando tempos de cache
O Tinify CDN é otimizado para armazenar em cache conteúdo que não muda. Desenvolvedores web podem usar os cabeçalhos HTTP de cache para definir a duração do cache. O TTL do objeto definido na diretiva max-age do cabeçalho Cache-Control será respeitado pela CDN se o max-age estiver entre 30 dias e 1 ano. O Tinify CDN usa por padrão um max-age de 1 mês e, no momento, não permite tempos de cache mais curtos.
Exemplo de cabeçalho Cache-Control que mantém um objeto em cache por 5.259.600 segundos (2 meses):
Cache-Control: public, max-age=5259600
Observe que a maioria dos servidores web já define os cabeçalhos Cache-Control adequados para você.
Cache de query strings
As query strings são ignoradas, a menos que sejam usadas para recursos do Tinify CDN, como o redimensionamento.
Estratégias de cache eficientes
Os objetos entregues pela CDN devem ser tratados como imutáveis, armazenáveis em cache para sempre. Isso pode, claro, ser um problema quando você precisa alterar determinados recursos. Por isso, recomenda-se criar nomes de arquivo únicos a cada nova implantação, por exemplo incluindo um hash no nome do arquivo. Muitas ferramentas de front-end já oferecem recursos que fazem isso por você.
Usar um esquema de nomes únicos é uma boa prática e uma abordagem bem mais rápida do que depender de tempos de cache curtos e de limpezas do cache da CDN.