Eu tive o mesmo problema desde meses com o Firefox no Linux (ou seja, entre reinicializações e limpeza de cache, mas em apenas uma das duas máquinas instaladas da mesma forma). O site parecia um simples html (sem nenhum estilo aplicado) e coisas como botões de votação não funcionavam.
Resposta curta: No meu caso, o problema era que o parâmetro do Firefox
network.http.accept-encoding
(em about:config
) foi definido para o
seqüência vazia. Redefinindo o valor padrão
gzip, deflate
faz o Stackoverflow funcionar novamente.
Resposta mais longa:
Eu vi o problema mesmo com o modo seguro (ou seja, com todas as extensões desativadas). Observando o console de erros, o Firefox reclama de um 'caractere ilegal' nos dados do link . Este parece ser um arquivo javascript gzipped (baixado manualmente e correu file
sobre ele) e por algum motivo o Firefox parece interpretá-lo sem descompactá-lo. Em seguida, há erros consecutivos de javascript sobre símbolos desconhecidos (que são definidos neste arquivo javascript gzipado).
Olhando para o tráfego HTTP, vemos (com minha configuração original problemática):
Solicitação:
GET /js/stub.js?v=f3ba9bf843c1 HTTP/1.1
Host: cdn.sstatic.net
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://stackoverflow.com/
Observe que não há nenhum campo Accept-Encoding
indicando que o Firefox está pronto para aceitar dados compactados.
Resposta HTTP para isso:
HTTP/1.1 200 OK
Server: nginx/0.8.36
Date: Sat, 25 Jun 2011 16:53:21 GMT
Content-Type: application/x-javascript
Connection: keep-alive
Cache-Control: max-age=604800
Content-Encoding: gzip
Last-Modified: Fri, 24 Jun 2011 13:33:57 GMT
ETag: "64cd5e5e7332cc1:0"
Vary: Accept-Encoding
Content-Length: 6464
X-Cache: HIT
Accept-Ranges: bytes
para que o servidor nginx responda com um campo Content-Encoding
definido como gzip
, ignorando os recursos dos clientes. Não tenho certeza, mas isso parece-me uma violação no lado do servidor.
Depois de definir o parâmetro network.http.accept-encoding
do Firefox como seu valor de configuração de fábrica, a comunicação http do arquivo javascript acima será a seguinte:
Solicitação:
GET /js/stub.js?v=f3ba9bf843c1 HTTP/1.1
Host: cdn.sstatic.net
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://stackoverflow.com/
Agora o Firefox diz ao servidor que aceita dados compactados.
Resposta:
HTTP/1.1 200 OK
Server: nginx/0.8.36
Date: Sat, 25 Jun 2011 17:02:08 GMT
Content-Type: application/x-javascript
Connection: keep-alive
Cache-Control: max-age=604800
Content-Encoding: gzip
Last-Modified: Fri, 24 Jun 2011 13:33:57 GMT
ETag: "64cd5e5e7332cc1:0"
Vary: Accept-Encoding
Content-Length: 6464
X-Cache: HIT
Accept-Ranges: bytes