Quais os pedidos que os browsers' "F5" e "Ctrl + F5" geram?

Existe um padrão para quais acções F5 e Ctrl + F5 } Activar nos navegadores da web?

Uma vez fiz experiências na IE6 e na Firefox 2.x. O F5 } a actualização iria despoletar um pedido HTTP enviado para o servidor com um cabeçalho If-Modified-Since, enquanto o Ctrl + F5 não teria esse cabeçalho. Em meu entender, F5 irá tentar utilizar o conteúdo em cache tanto quanto possível, enquanto Ctrl + F5 pretende abandonar todo o conteúdo em cache e recupere todo o conteúdo dos servidores novamente.

[[3]} mas hoje, eu notei que em alguns dos navegadores mais recentes (Chrome, IE8) ele não funciona mais desta forma. Ambos F5 e Ctrl + F5 enviar o cabeçalho If-Modified-Since.

Então como é suposto isto funcionar, ou (se não existe um padrão) como é que os principais navegadores diferem na forma como implementam estas funcionalidades de actualização?

Author: Krzysztof Krasoń, 2008-12-22

6 answers

De um modo geral:

F5 pode dar-lhe a mesma página mesmo que o conteúdo seja alterado, porque pode carregar a página a partir do cache. Mas Ctrl-F5 força uma atualização de cache, e irá garantir que, se o conteúdo for alterado, você receberá o novo conteúdo.

 322
Author: dancavallaro, 2014-03-11 09:20:34

Depende do navegador, mas eles comportam-se de forma semelhante.

Testei FF, IE7, ópera e cromo.

F5 {[8] } normalmente só actualiza a página se esta for modificada. O navegador normalmente tenta usar todos os tipos de cache tanto quanto possível e adiciona um cabeçalho "If-modified-since" ao pedido. O Opera difere ao enviar um "Cache-Control: no-cache".

CTRL-O F5 é usado para forçar uma actualização, ignorando qualquer 'cache'. IE7 adiciona um " Cache-Control: no-cache", assim como FF, que também adiciona"Pragma: no-cache". Chrome faz um "If-modified-since" normal e Opera ignora a chave.

, Se bem me lembro foi o Netscape, que foi o primeiro navegador para adicionar suporte para controle de cache adicionando "Pragma: no-cache" quando você pressionar CTRL-F5.

Editar: tabela actualizada

A tabela abaixo é actualizada com informações sobre o que irá acontecer quando o botão de actualização do navegador for clicado (após um pedido de Joel Coehoorn ), e o" max-age=0 " Cache-control-header.

Quadro actualizado em 27 de setembro 2010

┌────────────┬───────────────────────────────────────────────┐
│  UPDATED   │                Firefox 3.x                    │
│27 SEP 2010 │  ┌────────────────────────────────────────────┤
│            │  │             MSIE 8, 7                      │
│ Version 3  │  │  ┌─────────────────────────────────────────┤
│            │  │  │          Chrome 6.0                     │
│            │  │  │  ┌──────────────────────────────────────┤
│            │  │  │  │       Chrome 1.0                     │
│            │  │  │  │  ┌───────────────────────────────────┤
│            │  │  │  │  │    Opera 10, 9                    │
│            │  │  │  │  │  ┌────────────────────────────────┤
│            │  │  │  │  │  │                                │
├────────────┼──┼──┼──┼──┼──┼────────────────────────────────┤
│          F5│IM│I │IM│IM│C │                                │
│    SHIFT-F5│- │- │CP│IM│- │ Legend:                        │
│     CTRL-F5│CP│C │CP│IM│- │ I = "If-Modified-Since"        │
│      ALT-F5│- │- │- │- │*2│ P = "Pragma: No-cache"         │
│    ALTGR-F5│- │I │- │- │- │ C = "Cache-Control: no-cache"  │
├────────────┼──┼──┼──┼──┼──┤ M = "Cache-Control: max-age=0" │
│      CTRL-R│IM│I │IM│IM│C │ - = ignored                    │
│CTRL-SHIFT-R│CP│- │CP│- │- │                                │
├────────────┼──┼──┼──┼──┼──┤                                │
│       Click│IM│I │IM│IM│C │ With 'click' I refer to a      │
│ Shift-Click│CP│I │CP│IM│C │ mouse click on the browsers    │
│  Ctrl-Click│*1│C │CP│IM│C │ refresh-icon.                  │
│   Alt-Click│IM│I │IM│IM│C │                                │
│ AltGr-Click│IM│I │- │IM│- │                                │
└────────────┴──┴──┴──┴──┴──┴────────────────────────────────┘

Versões testadas:

  • Firefox 3.1.6 e 3.0.6 (WINXP)
  • MSIE 8, 0, 6001 e 7, 0, 5730,11 (WINXP)
  • cromado 6, 0, 472, 63 e 1, 0, 151, 48 (WINXP)
  • Opera 10.62 e 9.61 (WINXP)

Notas:

  1. A versão 3.0.6 envia I E C, mas o 3.1.6 abre a página numa nova página, fazer um pedido normal só com "eu".

  2. A versão 10.62 não faz nada. 9.61 poderia fazer C a menos que fosse um erro na minha mesa antiga.

Nota sobre o Chrome 6. 0. 472 : Se fizer uma recarga forçada (como CTRL-F5 ) comporta-se como se o url estivesse marcado internamente para fazer sempre uma recarga forçada. A bandeira é limpa se você vai para a barra de endereços e pressione enter.

 526
Author: some, 2017-06-08 18:23:37

Implementei uma página compatível com o cross-browser para testar o comportamento de actualização do navegador (aqui está o código-fonte ) e obter resultados semelhantes aos @some, mas para navegadores modernos:

enter image description here

 69
Author: Pavel Podlipensky, 2019-05-23 16:26:03

Pelo menos no Firefox (v3.5), a 'cache' parece estar desactivada em vez de simplesmente limpa. Se houver várias instâncias da mesma imagem em uma página, ela será transferida várias vezes. Este é também o caso das marcas img que são adicionadas posteriormente através do Ajax / JavaScript.

Então, no caso de você estar se perguntando Por que o navegador continua baixando o mesmo ícone algumas centenas de vezes em seu site Auto-refresh Ajax, é porque você inicialmente carregou a página usando CTRL-F5 .

 10
Author: mermshaus, 2014-03-11 09:25:51

IE7 / 8 / 9 parecem comportar-se de forma diferente dependendo se a página tem foco ou não.

Se carregar na página e CTRL+F5 então "Cache-Control: no-cache" está incluído nos cabeçalhos do pedido. Se carregar na barra de Localização/Endereço, carregue em CTRL+F5 não é.

 4
Author: Phil Haselden, 2014-03-11 09:26:02

Quando o Utilizador carregar emF5 apesar de o novo pedido ir para o servidor web e obter uma resposta para o pedido também. Mas quando o cabeçalho Response é processado, ele verifica as informações necessárias na cache do navegador. Se a informação requerida no cache não tiver expirado então essa informação é restaurada a partir do próprio cache.

Quando o Utilizador carregar em CTRL-F5 mesmo assim, Novo Pedido vai para o servidor web e obter uma resposta. Mas desta vez, quando o cabeçalho do Response é processado ele faz não verificar qualquer informação necessária em cache, e trazer todas as informações atualizadas formulário servidor apenas.

 2
Author: naXa, 2014-03-11 09:26:26