Eli Rios

blog pessoal de tudo sobre tudo…

Página KB da Microsoft retornando em branco no IE7

Posted on | junho 5, 2008 | No Comments

O PROBLEMA:

Eu vinha a algum tempo tentando acessar o site http://support.microsoft.com para checar alguns KB (base de conhecimento da Microsoft). Mas sempre estava retornando uma página em branco.
Procurando na internet, em sites, fóruns e blogs, constatei que várias pessoas passaram a ter o mesmo problema.
Passei então a procurar por conta o problema. Conectando diretamente ao site, sem Proxy, a página era exibida normalmente.

MEU PRIMEIRO PENSAMENTO:

Solução então: fazer que o Proxy não faça cache do site dos KBs da Microsoft?
Funciona. Mas eu teria mesmo que criar uma regra no nosso NAT para conectar diretamente e não usar o Proxy para acessar esse site. E pior, poderia acontecer de um dia aparecer outro site com o mesmo problema. Ficaria sem cache.
Mas daí pensei: será que vai resolver? Isso não vai acontecer com outros sites? E o que mais me intrigava: qual o motivo disso acontecer?

A CAUSA:

Vamos a fonte então. No blog do Squid (http://squidproxy.wordpress.com/2008/04/29/chunked-decoding/) encontrei a causa do problema.
Segundo o blog, esse “novo” incidente é causado por servidores web amplamente usados (leia-se IIS), que sempre respondem com cabeçalho HTTP/1.1 com o parâmetro “chunked-encoding”.
Pelo que entendi, os servidores são “explicitamente proibidos” de enviar esse tipo em particular para softwares que se anunciam como HTTP/1.0 (como o Squid). Mas o ISS faz isso mesmo assim.
Isso não é um problema do Squid, mas do IIS. Mesmo assim é possível configurar o Squid para “ignorar o erro”

O TESTE:

Para testar se o problema é esse mesmo, foi usado o “squidclient” para fazer uma requisição, desviando do Proxy Squid. Deve-se, para o teste, enviar uma requisição HTTP/1.0 e checar a pagina de resposta. Se o cabeçalho de resposta incluir “Transfer-Encoding: chunked”, aí está seu problema.
Esse mesmo teste pode ser feito via comando telnet (telnet <endereço site> 80) requisitando o “HEAD” da página índex (/)

SOLUÇÕES:

Variam de caso a caso. Simplesmente pode-se desviar o acesso a esses sites pelo Squid, para acessar diretamente, sem cache. Mas a que eu adotei aqui foi adicionar no “squid.conf” as seguintes linhas:

<pre>
# Corrige sites em branco, removendo “Accept-Encoding header”
acl broken dstdomain microsoft.com
request_header_access Accept-Encoding deny broken
</pre>

Nota: remover se for fazer atualização para squid 3.0

Bom também criar uma regra no NAT para ignorar esses sites e não usar o squid (conexão direta), ou ainda, se o Proxy é configurado no cliente, colocar na configuração do navegador para não acessar esses site via Proxy.

Fonte: http://squidproxy.wordpress.com/2008/04/29/chunked-decoding/

Comments

Leave a Reply