As imagens JPEG, GIF, PNG e WEBP já estão compactadas. Existe algum motivo para atendê-los usando a compactação GZIP, independentemente de o cliente dizer que aceita ou não a compactação GZIP?
curl -H "Accept-Encoding: gzip" -I ^
https://www.nps.gov/articles/000/images/LATP_Article_TheCalutronGirls.jpg
Essa solicitação HEAD produz os seguintes cabeçalhos:
HTTP/1.1 200 OK
Content-Type: image/jpeg
…
Date: Sat, 05 Aug 2023 04:13:29 GMT
Server: Apache
…
Last-Modified: Wed, 04 Jan 2023 21:36:01 GMT
…
Content-Encoding: gzip
…
Este servidor enviará imagens - JPEG, PNG, WEBP - como GZIP. Eu acho que não faz o menor sentido e é uma configuração incorreta do servidor, mas talvez os tempos tenham mudado e isso agora seja legítimo … e em breve o novo normal?
(O fato de o relógio do servidor estar atrasado em 58 horas parece sugerir que ele não é bem administrado.)
8/8/23: Relatado ao NPS por meio do formulário de contato .
Adicionar compactação gzip (com configurações padrão) a esse arquivo específico o torna ligeiramente (± 1,7 por cento) menor quando comparo os
1019174
bytes do arquivo original com1001991
os bytes da versão compactada gzip. Com base nisso, o uso da compactação certamente não é prejudicial e economiza "alguma" largura de banda.Se esse benefício limitado supera os ciclos de CPU necessários para atingir essa compactação? Não sei.
Adicionar compactação para conteúdo CSS, Javascript e HTML geralmente é considerado muito mais benéfico, como evidenciado pelos números em, por exemplo: este artigo que mostra que a compactação atinge 60-80% de redução na quantidade de dados HTML/CSS/JavaScript que são transferidos .
Mas geralmente não, não faz sentido compactar dados já compactados, como JPEG, PNG e a maioria dos outros formatos de imagem, nem para quaisquer outros dados já compactados, como arquivos ZIP reais e, por exemplo, documentos PDF.
Como este exemplo já mostrou: você não deve conseguir obter muito mais compactação adicional adicionando uma segunda camada de compactação e (o consenso da Internet é que) em alguns casos, essa compactação adicional pode realmente tornar o arquivo um pouco maior.
É por isso que o manual do Apache para mod_deflate inclui exemplos de como habilitar a compactação apenas para tipos de arquivo específicos e/ou excluir certos outros tipos de arquivos.