GZIP vs Brotli – Qual método de compressão você deve usar e porque
O Gzip se tornou o padrão ouro para compactação de arquivos no início dos anos 1990, mas se você ainda o usa em 2018, convém mudar para um método de compactação mais recente.
Embora o Gzip ainda tenha seu lugar no coração de muitos, os desenvolvedores da web estão cada vez mais se voltando para opções superiores, como o algoritmo de compressão Brotli do Google.
Uma breve história sobre a compactação de arquivos
O “G” em Gzip é a abreviação de GNU. GNU é um sistema operacional de código aberto baseado em Unix que foi desenvolvido na década de 1980. Naquela época, a Unisys e a IBM já haviam patenteado seus próprios algoritmos para compactar e descompactar arquivos, o que permitia que suas máquinas armazenassem mais dados. Portanto, os programadores Jean-loup Gailly e Mark Adler criaram o Gzip como uma alternativa gratuita para usuários GNU.
O novo Gzip não era apenas uma cópia barata; era realmente mais rápido do que os seus concorrentes protegidos por direitos autorais. Como resultado, as pessoas ainda o usam para compactação de arquivos até hoje. Embora seja fácil manter o que você está acostumado, existem vários algoritmos de compactação que atualmente fornecem melhores resultados de compactação do que o Gzip. É aí que entra o Brotli.
O que é o Brotli?
Brotli é uma especificação de formato de dados mais recente que aproveita a vantagem de vários algoritmos para condensar os dados com mais eficiência do que o Gzip. Em 2015, a especificação Brotli foi generalizada para compressão de fluxo HTTP com o tipo de codificação de conteúdo ‘br’.
Desenvolvido por Jyrki Alakuijala e Zoltan Szabadka, o Brotli usa os mesmos algoritmos de compactação do Gzip, mas também é compatível com um dicionário de palavras e frases usadas com frequência para oferecer uma taxa de compactação melhor.
Lembre-se de que Gzip e Brotli devem ser usados apenas para compactar arquivos de texto. Arquivos binários como JPEGs e MP4s contam com seus próprios algoritmos de compactação específicos de formato. Se você tentar compactar um JPEG com Brotli, o arquivo resultante será na verdade maior do que o original.
Embora nem sempre tenha sido assim, o Brotli agora é compatível com todos os principais navegadores.
No caso de um navegador, que não suporta os quesitos do Brotli, solicitar um ativo de um site que entrega arquivos compactados por Brotli, o servidor fará fallback para o Gzip e entregará ativos codificados que o navegador suporta – desde que o servidor esteja configurado corretamente.
O que torna o Brotli melhor?
- Os pacotes JavaScript compactados com Brotli são 14 por cento menores do que os pacotes Javascript compactados com Gzip.
- Os arquivos HTML compactados pelo Broti são 21 por cento menores do que seus equivalentes no Gzip.
- Os arquivos CSS compactados pelo Brotli são 17% menores do que aqueles compactados pelo Gzip.
- Como a maioria dos sites depende de todos esses três tipos de ativos, há uma diferença considerável nos tamanhos dos ativos quando comparados com o Gzip. Essa economia, por sua vez, fará uma melhoria perceptível no desempenho do seu aplicativo.
Gzip vs Brotli: Obtendo o máximo do Brotli
Apesar do que você pode ter ouvido, compactar ativos com Brotli não é mais demorado do que com o Gzip. Dito isso, Gzip e Brotli oferecem níveis variáveis de compactação, e as configurações padrão do Brotli podem resultar em uma compactação mais lenta do que as configurações padrão do Gzip. Você terá que fazer alguns ajustes no Brotli para encontrar um equilíbrio aceitável entre o tamanho do arquivo e a velocidade de compressão.
A configuração de compactação ideal depende do que e quando você está compactando. Um bom ponto de partida é o Brotli 4 para compressão mais rápida de conteúdo dinâmico. Por outro lado, os ativos estáticos podem ser compactados de forma mais densa de antemão, sem sacrificar a velocidade, de modo que a configuração padrão “11” é mais apropriada para esse conteúdo.
Usando Brotli com ativos pré-compactados
O Brotli é ótimo para fornecer ativos pré-compactados muito mais rápido do que o Gzip. Isso se deve ao fato de que você pode compactá-los no nível mais alto do Brotli e fazer com que o servidor de origem os pegue quando solicitado.
Este tipo de configuração funciona muito bem com o Webpack, pois um plugin Webpack está disponível para compactar automaticamente seus ativos estáticos como Gzip e Brotli. Portanto, nenhuma compactação dinâmica é necessária, o que significa que o tempo gasto na compactação dos arquivos é salvo.
Gzip vs Brotli: em resumo
A pequena quantidade de esforço necessária para adicionar o Brotli ao seu servidor web vale a pena comparada a economia substancial no tamanho do arquivo. Embora o Brotli às vezes funcione mais devagar nas configurações de compressão mais altas, você pode facilmente atingir um equilíbrio ideal entre a velocidade de compressão e o tamanho do arquivo ajustando as configurações.
Embora o uso do Brotli possa transformar aplicativos da web rápidos em mais rápidos, ele não necessariamente tornará aplicativos lentos mais rápidos. Uma vez que o Brotli comprime apenas ativos baseados em texto, você precisará otimizar as suas imagens por outros meios. Se você ainda não fez o salto para HTTP / 2, isso pode fazer uma grande diferença no desempenho do seu aplicativo. Cada milissegundo conta, portanto, qualquer ação que você execute para acelerar o seu aplicativo aumenta as suas chances de reter usuários.
Referencia: http://www.instantshift.com/2018/03/02/gzip-vs-brotli-compression/