O que é compressão GZIP?
GZIP é um formato de compressão de arquivos sem perdas definido pela RFC 1952. Ele envolve uma carga útil produzida pelo algoritmo DEFLATE (RFC 1951), que combina referências para trás LZ77 com codificação Huffman para reduzir dados repetitivos a um fluxo de bytes compacto.
Como funciona a compressão GZIP?
Sua entrada é processada inteiramente no seu navegador usando a API nativa CompressionStream('gzip'). Os passos em alto nível são:
- A ferramenta converte seu texto ou arquivo em um fluxo de bytes (UTF-8 para entrada de texto).
- Esses bytes passam por um
CompressionStreamconfigurado para o formatogzip. - O navegador aplica DEFLATE: uma passagem LZ77 com janela deslizante encontra sequências repetidas, e a codificação Huffman atribui códigos mais curtos aos símbolos comuns.
- Um cabeçalho gzip de 10 bytes e um rodapé de 8 bytes (CRC32 dos dados originais mais o comprimento original módulo 2^32) são envolvidos ao redor da carga DEFLATE, produzindo um contêiner .gz padrão.
- O resultado é renderizado como Base64 ou hexadecimal para entradas de texto, ou oferecido como um arquivo .gz para download em entradas binárias.
Por que comprimir com GZIP?
- Cargas menores: texto, JSON, HTML, CSS e código-fonte normalmente encolhem para uma fração do tamanho original.
- Padrão da indústria: GZIP é compreendido por praticamente qualquer servidor HTTP, CDN, navegador, ferramenta de arquivo e biblioteca padrão de linguagens de programação.
- Privacidade: a compressão acontece inteiramente no seu navegador. A entrada nunca chega aos nossos servidores.
- Pronta para ida e volta: a saída descomprime com a CLI
gunzip, com o cabeçalho HTTPContent-Encoding: gzipe com qualquer leitor RFC 1952 em Python, Node.js, Go, Java ou Rust.
Quais são as aplicações comuns da compressão GZIP?
GZIP é usado em toda a web e em ferramentas de linha de comando:
- Transferência HTTP: servidores web comprimem respostas com GZIP para que as páginas carreguem mais rápido pela rede.
- Arquivamento de logs: logs de servidor de longa duração são armazenados como arquivos .gz para reduzir o uso de disco.
- Backups e pacotes: tarballs (.tar.gz) comprimem árvores inteiras de diretórios para distribuição portátil.
Como é um exemplo de compressão GZIP?
Um documento JSON de 1 KB com muitos nomes de campo repetidos costuma ser comprimido para cerca de 200–300 bytes — uma redução de quatro a cinco vezes. Grandes logs de texto frequentemente comprimem em 90% ou mais. Entradas já comprimidas (JPEG, PNG, MP4, ZIP) não encolherão mais e podem crescer alguns bytes por causa do enquadramento GZIP.
Este compressor GZIP produz saída padrão RFC 1952 diretamente no seu navegador. Seja para reduzir uma carga útil antes da transmissão ou produzir um arquivo .gz para arquivamento, o resultado interopera com qualquer ferramenta compatível com GZIP na rede.