Impedindo 304 solicitações não modificadas com nginx

3

Estou executando o nginx e tenho o seguinte bloqueio para expiração:

expires 52w;

No entanto, quando uso as Ferramentas do desenvolvedor do Google Chrome para observar o tráfego de rede, alguns dos ativos são carregados do cache (200 de cache), enquanto a maioria dos ativos está fazendo uma solicitação ao servidor (304 Not Modified). p>

Eu quero carregar todos os ativos do cache sem se comunicar com o servidor, se possível. (Cache de 200)

Qual seria a mudança necessária na configuração do meu nginx?

    
por ustun 18.10.2013 / 09:55

3 respostas

1

O que você está procurando é expires max; Isso define um cabeçalho de futuro distante que a maioria dos navegadores levará em consideração, nem sequer se incomodam em perguntar se o recurso foi modificado.

Lembre-se, você pode nunca controlar quais solicitações qualquer agente do usuário fará com que você possa apenas dar instruções e esperar que ele seja ouvido. Isso é o melhor que você pode fazer.

    
por 18.10.2013 / 22:36
1

Primeira coisa, um Status de HTTP 304 não contém um corpo de mensagem, mas não deve ser descrito nas especificações, existem algumas condições específicas baseadas em validadores de cache também, verifique a documentação do W3C para obter mais detalhes.

Sobre a ativação de uma configuração de cache no Nginx, é assim que eu configurei o cache

# all pages or URL patterns that are to be cached go here
location ~* \.do$ {
  expires -1;
}

# allow caching for static assets
location ~* \.(css|js|gif|jpe?g|png|svg)$ {
  expires 2w;
  add_header Pragma public;
  add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
    
por 18.10.2013 / 10:43
1

Você deve consultar as especificações HTTP IMHO; e entender completamente o mecanismo por trás do cache e o significado de 304, ele não transfere os mesmos dados como uma resposta 200.

Como Martin apontou, você dá uma "diretiva" e deixa isso para lá, mas o navegador irá verificar se deve usar a cópia em cache ou não. Além disso, você pode adicionar um age e max-age cabeçalhos mantendo max-age maior que age para, às vezes, evitar até mesmo um 304.

E, por último, se você tentar visualizar o efeito de tudo isso na página por meio de uma atualização, ainda poderá receber 304 respostas devido a solicitações iniciadas pelos navegadores, o que é algo que não pode controlar o AFAIK.

    
por 21.10.2013 / 09:06

Tags