O armazenamento em cache no navegador é uma técnica crucial para melhorar o desempenho e a eficiência das páginas da web. Ao aproveitar o cabeçalho do servidor Nginx para controlar o cache no navegador, é possível otimizar ainda mais a experiência do usuário, reduzindo o tempo de carregamento das páginas e minimizando a carga no servidor.
Em primeiro lugar, é importante compreender como funcionam os cabeçalhos HTTP e o papel que desempenham no armazenamento em cache do navegador. Os cabeçalhos HTTP são metadados transmitidos entre o servidor web e o navegador do usuário durante a solicitação e a resposta de uma página da web. Eles contêm informações importantes sobre o conteúdo da página, sua validade e como o navegador deve tratá-lo em termos de cache.
Um dos cabeçalhos mais relevantes para controlar o cache no navegador é o cabeçalho “Cache-Control”. Este cabeçalho permite que o servidor especifique diretivas sobre como o conteúdo deve ser armazenado em cache pelo navegador do cliente. As diretivas mais comuns incluem “public”, “private”, “no-cache”, “max-age” e “s-maxage”.
Para configurar o armazenamento em cache no navegador usando o servidor Nginx no Ubuntu 16.04, é necessário modificar a configuração do servidor para incluir os cabeçalhos apropriados nas respostas HTTP. Isso pode ser feito por meio da diretiva “add_header” no arquivo de configuração do Nginx.
Aqui está um exemplo de como configurar o cabeçalho “Cache-Control” no Nginx para permitir o armazenamento em cache no navegador:
nginxserver { listen 80; server_name example.com; location / { root /path/to/your/website; index index.html; add_header Cache-Control "public, max-age=86400"; } }
Neste exemplo:
listen 80;especifica que o servidor Nginx estará ouvindo na porta 80.server_name example.com;define o nome do servidor.location / { ... }especifica as configurações para a rota raiz do site.root /path/to/your/website;define o diretório raiz onde os arquivos do site estão localizados.index index.html;especifica o arquivo padrão a ser servido quando um diretório é acessado.add_header Cache-Control "public, max-age=86400";adiciona o cabeçalho “Cache-Control” à resposta HTTP, indicando que o conteúdo pode ser armazenado em cache publicamente pelo navegador por até 86400 segundos (ou seja, um dia).
Ao configurar o cabeçalho “Cache-Control” dessa maneira, você está instruindo o navegador a armazenar em cache o conteúdo estático da página por um período específico, reduzindo assim a necessidade de revalidar ou rebaixar o conteúdo a cada solicitação subsequente.
Além disso, é importante mencionar que, ao implementar o armazenamento em cache no navegador, você deve garantir que o conteúdo dinâmico, como dados personalizados para cada usuário ou informações sensíveis, não seja armazenado em cache de forma inadequada, o que poderia comprometer a segurança ou a privacidade dos usuários.
Portanto, ao configurar o armazenamento em cache no navegador usando o servidor Nginx, é essencial entender as necessidades específicas do seu aplicativo web e ajustar as diretivas de cache de acordo com os requisitos de segurança, privacidade e desempenho.
“Mais Informações”

Além de configurar o cabeçalho “Cache-Control” para controlar o armazenamento em cache no navegador, existem outras diretivas e técnicas que podem ser úteis para otimizar ainda mais o cache e melhorar o desempenho do seu site.
-
Validação do Cache:
- Além de especificar um tempo máximo de vida útil (max-age) para o cache no navegador, você pode usar a diretiva “must-revalidate” para garantir que o navegador sempre revalide o conteúdo com o servidor antes de usá-lo após expirar o tempo de vida útil. Isso garante que o navegador sempre tenha a versão mais recente do conteúdo, se disponível.
- Exemplo:
add_header Cache-Control "public, max-age=86400, must-revalidate";
-
Revalidação Condicional:
- O uso dos cabeçalhos “Last-Modified” e “ETag” permite que o navegador realize solicitações de revalidação condicional para verificar se o conteúdo foi modificado desde a última solicitação. Isso pode reduzir a largura de banda e o tempo de resposta do servidor, pois o servidor só enviará o conteúdo se ele tiver sido modificado.
- Exemplo:
bash
location / { root /path/to/your/website; index index.html; add_header Cache-Control "public, max-age=86400"; add_header Last-Modified $date_gmt; add_header ETag $etag; }
-
Cache de Recursos Estáticos:
- Para recursos estáticos, como imagens, folhas de estilo CSS e scripts JavaScript, é recomendável configurar um tempo de vida útil mais longo no cache do navegador. Isso pode ser feito usando uma diretiva específica dentro da configuração do servidor Nginx para esses tipos de arquivos.
- Exemplo:
bash
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { root /path/to/your/website; expires 30d; add_header Cache-Control "public, max-age=2592000"; }
-
Cache Privado:
- Em certos casos, você pode querer permitir que apenas o navegador do usuário armazene em cache o conteúdo, e não servidores intermediários. Isso pode ser alcançado usando a diretiva “private” no cabeçalho “Cache-Control”.
- Exemplo:
add_header Cache-Control "private, max-age=3600";
-
Invalidação de Cache:
- É importante ter um mecanismo de invalidação de cache para garantir que o conteúdo atualizado seja entregue aos usuários quando necessário. Isso pode ser feito através da alteração dos URLs dos recursos ou do uso de técnicas de invalidação de cache, como definir um cabeçalho “Cache-Control” com valor “no-cache” quando o conteúdo for alterado.
- Exemplo:
add_header Cache-Control "no-cache";
Ao aplicar essas técnicas de configuração de cache no servidor Nginx, você pode melhorar significativamente o desempenho e a eficiência do seu site, reduzindo a carga no servidor e proporcionando uma experiência de usuário mais rápida e responsiva. No entanto, é importante testar e ajustar essas configurações com base nas necessidades específicas do seu aplicativo e na dinâmica do seu conteúdo.

