Redirecionamentos 301 de 'cache' do Firefox 5

92

Existe alguma maneira de desativar este 'recurso'?

Por exemplo, se for feito um pedido http://localhost/foo.htmlque eu especifiquei para '301' para o endereço raiz, todos os pedidos subsequentes para foo.htmlignorar o servidor da web completamente e ffox 5 irá verificar seu cache, leia que este url foi '301' anteriormente e redirecionar sem nem mesmo verificar se há alterações.

Se eu parei foo.htmlde 301'ing, eu tenho que limpar o cache do firefox a fim de 'consertar' que isso aconteça.

Chrome, IE e versões anteriores do Firefox não fazem isso.

maxp
fonte
Mesmo a exclusão do cache não resolve esse erro para mim (Firefox 17.0.1, Linux).
Konrad Höffner
2
@kirdie Na caixa de diálogo "limpar histórico recente", certifique-se de definir o intervalo de tempo para "tudo" e marque a caixa de seleção "cache". Se o intervalo de tempo selecionado for mais recente do que suas visitas ao url redirecionado, a entrada do cache não será apagada.
Kelvin
13
@kirdie e todos com o mesmo problema: Veja o histórico com Ctrl + H. Em seguida, clique com o botão direito do mouse no site e escolha "excluir todo o histórico deste site" (ou algo semelhante). Isso fez tudo para mim.
Lars Nyström
4
@ LarsNyström: Desenvolvendo um aplicativo da web e me deparei com isso - sua sugestão funcionou perfeitamente para mim. Foi "Esqueça este site" em FF20.0
cincodenada
1
301 não é chamado de "movido permanentemente " Se eu tiver um servidor servindo apenas https e as pessoas acessarem meu nome de domínio usando http (já é ruim, porque eles revelam o uri da solicitação), gostaria que o navegador se lembrasse que permanentemente e não verifique o http sempre.

Respostas:

45

301 é apenas um código de resposta normal em cache. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2 diz:

This response is cacheable unless indicated otherwise. 

Portanto, se você não quiser que ele seja armazenado em cache, seu servidor precisa indicar o contrário por meio dos cabeçalhos normais usados ​​para controlar o comportamento do cache.

Você também pode limpar o cache manualmente .

Boris Zbarsky
fonte
7
Eu acredito que seria mais simples usar um 302, que não é armazenável em cache por padrão.
Frank Farmer
22
@Boris Zbarsky: A questão não é mais 'Como faço para limpar o cache' em vez de 'Como posso evitar que a gravação no cache ocorra em primeiro lugar'?
Bobby Jack
4
A pergunta com certeza parecia "Como faço para evitar ter que limpar o cache" para mim!
Boris Zbarsky
17
É uma merda, porque você não pode "deslocar-recarregar" um redirecionamento, mesmo quando sabe que está errado. Todos os outros recursos ruins em cache podem ser recarregados separadamente, mas não esses malditos redirecionamentos.
Sam Watkins
1
Tentei usar redirecionamentos 302 do IIS, mas versões recentes do Firefox (e Chrome e Edge e IE) armazenam em cache esses também, a julgar por seu comportamento. Descobri que abrir e encerrar uma janela privada é a melhor maneira de testar sites e evitar envenenar o cache do seu navegador.
dsmtoday
116

No Firefox, se você tiver o complemento da barra de ferramentas "desenvolvedor web". Você pode clicar em desativar -> desativar cache -> verificar se há uma nova versão da página a cada vez. Em seguida, recarregue o URL e ele atualizará seu cache. Portanto, você não precisa limpar o cache completo.

A partir do comentário de cptstubing06, o seguinte pode ajudar a limpar o cache:

  1. Digite Ctrl+lpara colocar o cursor na barra de localização.
  2. Digite about:configpara abrir as definições de configuração .
  3. Confirme todos os avisos.
  4. Digite browser.cacheseguido de Enterpara filtrar as configurações.
  5. Clique duas vezes browser.cache.check_doc_frequency.
  6. Altere o valor de 3para 1.
  7. Clique OK.
  8. Revisite a página 301 em cache obsessivamente.
  9. Redefina a frequência de volta para 3 quando terminar.

O Firefox agora deve redirecionar para a nova página 301, não buscando mais a página redirecionada do cache.

Steve Parish
fonte
4
Esta é uma ótima solução para mim - eu quero um 301 em cache 99% do tempo, mas de vez em quando posso precisar alterar o local do redirecionamento e não quero limpar todo o meu cache. Só para esclarecer, o Firefox vem com seu próprio Web Developermenu em ferramentas, que não é o addon. O addon também é chamado Web Developer, mas aparece no menu Ferramentas Web Developer Extensione pode ser baixado aqui: addons.mozilla.org/en-us/firefox/addon/web-developer .
cptstubing06
5
Por favor, note - se você deseja que o firefox atualize seu cache para o seu URL redirecionado, você pode usar o Web Developer Extensionpara controlar o comportamento de mudança do firefox temporariamente para sempre verificar se há uma nova versão e, em seguida, configurá-lo novamente para sua configuração normal. Isso está em Extensão Web Develoepr -> Desativar -> Desativar cache -> Verificar versão mais recente da página -> Verificar versão mais recente da página todas as vezes.
cptstubing06
1
Seja qual for o método escolhido, o procedimento é alterar essa configuração para sempre verificar se há uma nova versão e, em seguida, carregar o URL que possui o redirecionamento em cache. Em seguida, ele acessará o servidor e obterá qualquer nova resposta existente para esse url e atualizará seu cache com a nova resposta. Em seguida, você pode definir sua frequência de verificação de cache de volta para o valor original (o padrão é "Quando a página está desatualizada", mas irei com "Uma vez por sessão" para que este cenário exato seja tratado sem meu envolvimento agora).
cptstubing06
@ cptstubing06 obrigado por essa dica! gostaria que você o tivesse enviado como uma solução para que eu pudesse votar positivamente como a melhor maneira de lidar com isso quando você não quer limpar o cache inteiro.
Mercurybullet
Para sua informação, você pode ter que desativar DNS over HTTPSpara que isso funcione conforme o esperado.
user2741287 de
25

Acabei de passar por esse problema e, para mim, eram dois problemas.

Este nome de domínio específico é roteado pelo Cloudflare, então tive que configurá-lo para o modo de desenvolvimento. Acho que o Cloudflare estava armazenando em cache o redirecionamento 301 para que não precisasse enviar a solicitação para o servidor. Esta etapa pode não se aplicar a você obviamente.

Em seguida, simplesmente limpei o cache do Firefox (versão 11) indo para Ferramentas -> Opções, clicando no botão Avançado no canto superior direito, selecionando a guia Rede e clicando em Limpar agora na seção Conteúdo da Web em cache. Observe que meu cache já estava definido como 0, mas eu ainda precisava clicar no botão Limpar agora para que o redirecionamento pare de ser armazenado em cache.

Gostaria de saber se mais alguém pode verificar isso.

Charlie Gorichanaz
fonte
2
+1. Sua nota sobre a limpeza do cache do Firefox corrigiu isso para mim (como um usuário / cliente, não o proprietário do site) para um URL específico em que o Firefox não identificou um 301 após a atualização. Obrigado.
Jon Schneider
1
Você pode excluir apenas o redirecionamento em cache com este plugin do Firefox: addons.mozilla.org/en-us/firefox/addon/cacheviewer-continued
Steve
9

Eu encontrei uma solução para isso que funciona no Firefox 26, depois de ter um redirecionamento obsoleto em cache por mais de um mês e uma reinicialização.

  1. No menu Histórico, escolha Mostrar todo o histórico.
  2. Na pesquisa, digite o domínio com o problema de redirecionamento em cache para exibir uma lista de resultados.
  3. Clique com o botão direito em um deles e escolha "Esqueça este site".

Todas as páginas em cache, imagens e redirecionamentos apenas para aquele site serão removidos do cache. Isso permite limpar o redirecionamento do site de desenvolvimento sem limpar o restante do cache.

Como uma observação lateral, acho que o Firefox só deve armazenar os redirecionamentos em cache por alguns dias, no máximo. Armazená-los em cache por mais de um mês pode tornar um erro simples um grande problema.

Malvino
fonte
2
Isso funciona, mas observe que "Esquecer este site" também esquecerá o histórico de URLs (para preenchimento automático) e até mesmo as senhas salvas para todo o domínio. Pode não ser o que você deseja.
tanius,
5

Uma solução rápida é usar uma janela privada do navegador.

Costa
fonte
Essa é a minha solução rápida e, às vezes, apenas adicionar um ponto de interrogação ao final do URL pode resolver o problema.
johnsnails
5

As ferramentas de desenvolvedor incorporadas às versões recentes do Firefox têm uma solução para isso. Primeiro, desative o cache quando o painel dev estiver aberto:

  • Em qualquer página, clique F12para abrir as ferramentas do desenvolvedor
  • À direita, clique no ícone de engrenagem "Opções da caixa de ferramentas"
  • Sob Advanced Settingsmarque a opçãoDisable Cache (when toolbox is open)

Agora, a qualquer momento que você quiser forçar a atualização de uma página em cache, carregue / atualize a página com a caixa de ferramentas de desenvolvimento F12 aberta. O Firefox irá ignorar o cache e obter novos dados do servidor.

Prefiro esse método porque ele não muda o comportamento do navegador para navegação "normal" sem depuração e você não corre o risco de esquecer de restaurar uma configuração global para seu valor original.

Verificado no Firefox 39

Ryan Bemrose
fonte
1
Não ajuda os redirecionamentos em cache.
SuperDuck
3

Um 301 indica movido permanentemente. Portanto, considero razoável armazenar a resposta em cache.

Você já tentou definir os cabeçalhos cache-controle expires?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

Chris Diver
fonte
3
Às vezes, estamos desenvolvendo ou migrando servidores ou rastreando uma falha e realmente precisamos desligar essas coisas, pois podem realmente atrapalhar.
Jason
2

No Firefox versão 38.0

Menu -> Edit -> Preferences -> Advanced -> Network -> Clear Now

Funcionou para mim.

Soorajlal KG
fonte
1

301 significa Movido Permanentemente e pode ser armazenado em cache, então acho que é o comportamento "certo" para o navegador. Você deve usar 303 Ver Outro .

jsz
fonte
5
O cache 303 do IE e do Chrome e as especificações de HTTP estão sendo alteradas para permitir o armazenamento em cache. Veja os rascunhos em tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-15 . Portanto, a única maneira segura de evitar o cache de redirecionamento é definir cabeçalhos de controle de cache explícitos.
Boris Zbarsky