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

11

Sou um desenvolvedor da web e muitas vezes preciso criar ou alterar um redirecionamento 301 ou 302. É complicado testar alterações imediatas no Firefox porque ele armazena redirecionamentos, portanto, se eu alterar o lado do servidor de redirecionamento e, em seguida, atualizar, o antigo redirecionamento é armazenado em cache, portanto, a única maneira de testar o novo é excluir meu cache ou iniciar uma sessão privada do navegador.

Dito isto, não é particularmente difícil contornar, mas é irritante, especialmente quando me esqueço de o fazer, e parece que o meu novo redirecionamento não está a funcionar, até que me lembro de eliminar a cache ou iniciar um nova sessão privada.

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

    
por chiliNUT 11.04.2015 / 06:32

4 respostas

7

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

Para definir esta opção:

  1. Em qualquer página, pressione F12 para abrir o painel da caixa de ferramentas do desenvolvedor.
  2. Clique no ícone de roda dentada no canto superior direito desse 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 de visitas sem o painel da caixa de ferramentas do desenvolvedor aberto, mas esse cache não é consultado e não é atualizado enquanto a caixa de ferramentas do desenvolvedor estiver aberta. Então você apenas temporariamente força o Firefox a não redirecionar o cache ou servir redirecionamentos do cache, mas pode ser o suficiente para o seu caso de uso.

Verificado no Firefox 41. Adaptado de A resposta de Ryan Bemrose .

    
por 09.10.2015 / 23:17
2

I completely understand why it is beneficial to cache redirects in 99% of situations, but is there anyway to disable that behavior?

Bem, se você está fazendo isso do ponto de vista do desenvolvimento de um servidor web, então esperar que o comportamento do navegador “cache a todo custo” seja alterado para suas “necessidades de desenvolvimento sem fim” é a maneira errada de atacar essa fera. Quando você está depurando os redirecionamentos do servidor web, você precisa se concentrar em verificar a saída do cabeçalho e não na saída de renderização da página inteira que os navegadores fornecem.

Então, em vez disso, recomendo aprender como usar curl e a opção -I do linha de comando para retornar apenas cabeçalhos, o que é muito útil para depurar redirecionamentos 301 e 302. Na linha de comando. Conforme explicado na página oficial curl man, a opção -I é:

-I/--head

(HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature the command HEAD which this uses to get nothing but the header of a document. When used on a FTP or FILE file, curl displays the file size and last modification time only.

Por exemplo, faça um curl -I google.com e a saída será algo assim:

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 redirecionamentos através de cabeçalhos, adicione a opção -L (também conhecida como --location ) ao comando da seguinte forma:

curl -I -L google.com

E a saída desse comando seguindo a cadeia de redirecionamento de local seria algo assim:

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 de HTTP/1.1 301 Moved Permanently , bem como Location: http://www.google.com/ . Se o seu objetivo de desenvolvimento 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.

Depois que esses ajustes forem finalizados e aperfeiçoados, faça uma corrida final em um navegador real para ver tudo isso acontecer.

    
por 11.04.2015 / 06:41
2

No Firefox Firebug, sob a guia Net , há uma opção chamada "Desativar cache". Eu ligo isso quando estou fazendo o teste de redirecionamento, e tenho isso desligado de outra forma.

    
por 25.06.2015 / 21:33
0

Vá para about:config e defina os dois browser.cache.disk.enable e browser.cache.memory.enable para false. Isso é o mesmo que verificar "Desativar cache do navegador".

    
por 06.09.2016 / 14:12