Existe alguma maneira de forçar o Firefox a NÃO cache de redirecionamentos (301 e 302)?

11

Sou desenvolvedor web e há muitas vezes em que preciso criar ou alterar um redirecionamento 301 ou 302. É complicado testar alterações imediatas no Firefox porque ele armazena em cache os redirecionamentos; portanto, se eu alterar o redirecionamento no lado do servidor e a atualização forçada, o redirecionamento antigo será armazenado em cache; portanto, a única maneira de testar o novo é excluir o cache. ou iniciando uma sessão do navegador particular.

Dito isto, não é particularmente difícil solucionar o problema, mas é irritante, especialmente quando me esqueço de fazê-lo, e parece que meu novo redirecionamento não está funcionando, até que eu lembre de excluir o cache ou iniciar uma nova sessão privada .

Entendo por que é benéfico armazenar em cache redirecionamentos para uso normal, mas gostaria de desativar o comportamento para fins de depuração.

chiliNUT
fonte

Respostas:

8

Você pode definir uma opção para desativar a consulta do cache se o painel da caixa de ferramentas do desenvolvedor estiver aberto (como acontece com F12).

Para definir esta opção:

  1. Em qualquer página, pressione F12para abrir o painel da caixa de ferramentas do desenvolvedor.
  2. Clique no ícone de roda dentada no canto superior direito do painel.
  3. Lá, marque "Configurações avançadas → Desativar cache (quando a caixa de ferramentas estiver aberta)".

Os redirecionamentos de cache ainda serão armazenados em cache nas visitas sem o painel da caixa de ferramentas do desenvolvedor aberto, mas esse cache não será consultado e não será atualizado enquanto a caixa de ferramentas do desenvolvedor estiver aberta. Portanto, você apenas força temporariamente o Firefox a não armazenar em cache redirecionamentos ou a servir redirecionamentos a partir do cache, mas isso pode ser suficiente para o seu caso de uso.

Verificado no Firefox 41. Adaptado da resposta de Ryan Bemrose a outra pergunta.

tanius
fonte
2

Entendo perfeitamente por que é benéfico armazenar em cache redirecionamentos em 99% das situações, mas existe alguma maneira de desativar esse comportamento?

Bem, se você está fazendo isso do ponto de vista de desenvolvimento de servidores da Web, esperar que o comportamento do “cache a qualquer custo” do navegador seja alterado para atender às suas necessidades de “infinitos ajustes de desenvolvimento” é o caminho errado para atacar essa fera. Ao depurar os redirecionamentos do servidor Web, você precisa se concentrar na verificação da saída do cabeçalho e não na saída da renderização de página inteira fornecida pelos navegadores.

Portanto, eu recomendaria aprender como usar curle a -Iopção na linha de comando para retornar apenas cabeçalhos, o que é muito útil para depurar os redirecionamentos 301 e 302. Na linha de comando. Conforme explicado na curlpágina do manual oficial , a -Iopção é:

-I / - cabeça

(HTTP / FTP / FILE) Busque apenas o cabeçalho HTTP! Os servidores HTTP apresentam o comando HEAD, que ele usa para obter nada além do cabeçalho de um documento. Quando usado em um arquivo FTP ou FILE, curl exibe apenas o tamanho do arquivo e a hora da última modificação.

Por exemplo, faça curl -I google.comae a saída será algo como isto:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:37:42 GMT
Expires: Mon, 11 May 2015 04:37:42 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5

E se você quiser acompanhar toda a cadeia de redirecionamento por meio de cabeçalhos, adicione a -Lopção (aka:) --locationao comando como este:

curl -I -L google.com

E a saída desse comando após a cadeia de redirecionamento de localização seria algo como isto:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: Mon, 11 May 2015 04:48:14 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5

HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=69d90e4d7a0fcbbb:FF=0:TM=1428727694:LM=1428727694:S=1xqS-toEoa5saQ7n; expires=Mon, 10-Apr-2017 04:48:14 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=pkHjv88MsTB_eB1OqqcMm03kTkFNOSaN4ZEiE5iGViEt7AiJWBc6R-0qJ5s1xu3i5Peg5aHOBHyr7n4-oAxyEE2cL_dBPRLYODst0H-Ztfgrf_6LYXXlix9eghSB8Hzc; expires=Sun, 11-Oct-2015 04:48:14 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding

Observe a resposta do cabeçalho HTTP/1.1 301 Moved Permanently, bem como Location: http://www.google.com/. Se seu objetivo de desenvolvimento da web é testar coisas como o Apache, reescrever regras e redirecionamentos, curl -Ié a melhor ferramenta para ajudá-lo a ver o que seus ajustes estão fazendo.

E depois que esses ajustes forem finalizados e aperfeiçoados, faça uma execução final em um navegador real para ver tudo ganhar vida.

JakeGould
fonte
2

No Firefox Firebug, na Netguia, existe uma opção chamada "Desativar cache". Ativei isso ao fazer o teste de redirecionamento e, caso contrário, ele foi desativado.

insira a descrição da imagem aqui

chiliNUT
fonte
1

Vá para about:confige defina ambos browser.cache.disk.enablee browser.cache.memory.enablepara false. É o mesmo que marcar "Desativar cache do navegador".

Qian
fonte