Impedindo o cache de iframe no navegador

Como você evita que o Firefox e o Safari armazenem em cache o conteúdo do iframe?

Eu tenho uma página da web simples com um iframe para uma página em um site diferente. A página externa e a página interna possuem cabeçalhos de resposta HTTP para impedir o armazenamento em cache. Quando clico no botão "voltar" no navegador, a página externa funciona corretamente, mas não importa o que aconteça, o navegador sempre recupera um cache da página iframed. O IE funciona bem, mas o Firefox e o Safari estão me causando problemas.

Minha página é algo parecido com isto:

<html>
  <head><!-- stuff --></head>
<body>
  <!-- stuff -->
  <iframe src="webpage2.html?var=xxx" />
  <!-- stuff -->
</body>
</html>

ovar variável sempre muda. Apesar do fato de a URL do iframe ter sido alterada (e, portanto, o navegador deve estar fazendo uma nova solicitação para essa página), o navegador apenas busca o conteúdo em cache.

Examinei as solicitações e respostas HTTP indo e voltando e notei que, mesmo que a página externa contenha<iframe src="webpage2.html?var=222" />, o navegador ainda buscaráwebpage2.html?var=111.

Aqui está o que eu tentei até agora:

Alterando o URL do iframe com o valor aleatório varAdicionando cabeçalhos Expira, Controle de Cache e Pragma à página externaAdicionando cabeçalhos Expira, Controle de Cache e Pragma à página interna

Não consigo fazer truques de JavaScript porque estou bloqueado pela política de mesma origem.

Estou ficando sem idéias. Alguém sabe como parar o navegador de armazenar em cache o conteúdo iframed?

Atualizar

Instalei o Fiddler2 como Daniel sugeriu para realizar outro teste e, infelizmente, ainda estou obtendo os mesmos resultados.

Este é o teste que realizei:

A página externa gera um número aleatório usandoMath.random() em JSP.A página externa exibe um número aleatório na página da web.A página externa chama iframe, passando um número aleatório.A página interna exibe um número aleatório.

Com este teste, posso ver exatamente quais páginas estão atualizando e quais estão em cache.

Teste Visual

Para um teste rápido, carrego a página, navego para outra página e pressione "voltar". Aqui estão os resultados:

Página original:

Página Externa: 0.21300034290246206Página interna: 0.21300034290246206

Saindo da página e depois retornando:

Página externa: 0.4470929019483644Página interna: 0.21300034290246206

Isso mostra que a página interna está sendo armazenada em cache, mesmo que a página externa a esteja chamando com um parâmetro GET diferente na URL. Por alguma razão, o navegador está ignorando o fato de o iframe estar solicitando um novo URL; simplesmente carrega o antigo.

Teste do violinista

Com certeza, Fiddler confirma a mesma coisa.

(Carrego a página.)

A página externa é chamada. HTML:

0.21300034290246206
<iframe src="http://ipv4.fiddler:1416/page1.aspx?var=0.21300034290246206" />

http: //ipv4.fiddler: 1416 / page1.aspx? var = 0.21300034290246206 é chamado.

(Navio para fora da página e depois ligo para trás.)

A página externa é chamada. HTML:

0.4470929019483644
<iframe src="http://ipv4.fiddler:1416/page1.aspx?var=0.4470929019483644" />

http: //ipv4.fiddler: 1416 / page1.aspx? var = 0.21300034290246206 é chamado.

Bem, a partir deste teste, parece que o navegador da Web não está armazenando em cache a página, mas está armazenando em cache a URL do iframe e, em seguida, fazendo uma nova solicitação nessa URL em cache. No entanto, ainda estou confuso sobre como resolver esse problema.

Alguém tem alguma idéia de como impedir o navegador de armazenar em cache URLs de iframe?

questionAnswers(13)

yourAnswerToTheQuestion