Quais navegadores lidam com `Content-Encoding: gzip` e quais deles têm requisitos especiais em termos de qualidade de codificação?

44

Estou criando um servidor HTTP 1.0, 1.1 "feito à mão". Eu integrei recentemente a lib zip, para que agora eu possa transmitir e receber dados gziped codificados. Gostaria de saber quais os principais navegadores (vivos - IE6-IE10, Chrome, FF, etc.) enviam Accept-Encoding: deflate, gzip, ...e, portanto, podem lidar com isso Content-Encoding: gziphoje? Quais deles enviam expectativas de qualidade? Quais deles podem enviar dados de solicitação de postagem gziped codificados e de várias partes / formulário para o meu servidor?

user1049847
fonte
1
Você não deveria confiar no cabeçalho Accept-Encoding? Ou você está apenas perguntando por curiosidade?
Flimzy
@Flimzy Se você estiver armazenando arquivos que foram codificados previamente (o que pode ser feito para reduzir a carga da CPU, diminuir o uso de espaço em disco, aumentar o nível de compactação ou porque você está servindo arquivos de um servidor totalmente estático) , você realmente não tem o luxo de aderir ao cabeçalho Accept-Encoding. Se você pode obedecer ao cabeçalho, é claro que deveria, mas, devido ao suporte praticamente universal do gzip atualmente, não há problema em criar seu site para exigir suporte ao gzip.
Hayden Schiff
1
@haydenschiff, é claro que você ainda pode honrar o cabeçalho Accept. Se você estiver armazenando dados compactados em gzip, já está preparado para descompactá-los para servi-los, se o cabeçalho de aceitação exigir.
Flimzy 29/03

Respostas:

49

Basicamente, todos os navegadores hoje em dia suportam deflate / gzip. Esta página lista muitos navegadores e números de versão. Aqui está um resumo, além de alguns navegadores mais recentes:

  • Netscape 6+ (Netscape 4-5, mas com alguns bugs).
  • Internet Explorer 5.5+ (julho de 2000) e IE 4 se definido como HTTP / 1.1.
  • Opera 5+ (junho de 2000)
  • Lynx 2.6+ (algum tempo antes de 1999)
  • Firefox 0.9.5+ (outubro de 2001)
  • Chrome desde sempre
  • Safari desde sempre (tanto quanto eu sei)

Como você pode ver: há quase 15 anos, há suporte completo e ninguém usa um navegador com mais de 15 anos.

oezi
fonte
1
+1 Fiquei meio confuso, pois isso parece um problema inexistente. @ user1049847 talvez você precise expandir sua pergunta acima?
Su '
3
E para adicionar a isso, nenhum navegador enviará uma solicitação compactada gzip, mas quase todos aceitarão uma resposta compactada gzip. Consulte " Por que o navegador não pode enviar solicitação de gzip? " No StackOverflow.
Marco Miltenburg
2
@Su 'está certo - qualquer navegador que suporte gzip enviará o cabeçalho Accept-Encoding para que você não precise se preocupar exatamente com quais navegadores suportam isso. Envie o gzip quando eles disserem que podem recebê-lo.
usar o seguinte
12
A questão é relevante. Se você estiver exibindo arquivos estáticos do Amazon S3, MS Azure e outros (como muitos fazem), não poderá responder dinamicamente ao cabeçalho de aceitação de codificação. A compactação em tempo real coloca uma carga adicional na CPU.
QFDev 27/09/13
1
@QFDev, se você estiver exibindo arquivos estáticos, poderá criar uma versão compactada com gzip e outra que não estiver, verificar a aceitação de codificação / gzip e alterar os arquivos estáticos atendidos de acordo.
JordanReiter