Skip to content

Glossary

DEFLATE

A compressão sem perda por trás de metade da web

By Published Updated

DEFLATE é um algoritmo de compressão de dados sem perda especificado na RFC 1951. Combina duas técnicas: LZ77 (encontrar substrings repetidas e substituí-las por referências retrospectivas) e codificação Huffman (atribuir códigos binários mais curtos a símbolos mais comuns).

DEFLATE é o algoritmo de compressão por trás de arquivos de imagem PNG, arquivos ZIP, arquivos comprimidos com gzip (incluindo HTTP Content-Encoding: gzip), fluxos de dados da biblioteca zlib e arquivos pack do Git. É indiscutivelmente o algoritmo de compressão mais implantado na história da computação.

Características:

  • Sem perda — bytes originais recuperáveis exatamente.
  • Rápido para descomprimir, moderadamente rápido para comprimir.
  • Sem dicionário externo, portanto qualquer fluxo DEFLATE é autossuficiente.
  • Bom para texto e dados estruturados; medíocre para mídia já comprimida.

Algoritmos mais novos (Brotli, Zstandard) comprimem melhor e são cada vez mais comuns na web, mas DEFLATE permanece o fallback universal porque todos os navegadores, sistemas operacionais e ferramentas o suportam.

A origem livre de patentes: Phil Katz projetou o DEFLATE em 1993 para o PKZIP e o publicou explicitamente sem royalties. Essa decisão é a razão pela qual o DEFLATE — e não o LZW (que a Unisys manteve patentes até 2003) ou a codificação aritmética (que a IBM patenteou) — se tornou o padrão universal. A biblioteca zlib (Mark Adler & Jean-loup Gailly, 1995) forneceu uma implementação de referência limpa sob licença permissiva, o que permitiu que todo sistema operacional, navegador e runtime de linguagem agrupasse o mesmo código.

Por que o Brotli vence onde o DEFLATE perde: Brotli (Google, 2013) alcança 20-25% melhor compressão do que gzip em texto web típico porque vem com um dicionário estático de 120 kB de fragmentos comuns de HTML, CSS e JavaScript — o decodificador já “conhece” frases como <html lang="en"> sem precisar codificá-las no fluxo. Zstandard (Facebook, 2016) troca um pouco de compressão por uma velocidade de decodificação muito maior e agora é o padrão para o kernel Linux e muitos fluxos de trabalho de backup/arquivamento. Todos os três coexistem; negociações de Accept-Encoding: gzip, br, zstd permitem que o servidor escolha o que o cliente suporta. Relacionado: sem perda, ETag. Referência: RFC 1951 — Especificação do Formato de Dados Comprimidos DEFLATE.

Por que isso importa: um exemplo medido

Pegue um arquivo jQuery 3.7 minificado típico de 100 kB (102.310 bytes descomprimido). Em níveis de compressão padrão: gzip (DEFLATE nível 6) produz cerca de 36.200 bytes — uma redução de 64,6%. Brotli na qualidade 11 reduz o mesmo arquivo para aproximadamente 28.400 bytes (72,2% de redução). Zstd nível 19 chega a cerca de 30.100 bytes. Os deltas parecem modestos isoladamente, mas se acumulam: uma página de e-commerce típica entrega ~250 kB de JS, CSS e HTML, então mudar de gzip para Brotli economiza aproximadamente 20 kB na transmissão — o que, com a latência típica de 4G, se traduz em 50-150 ms mais rápido no primeiro conteúdo visível. Brotli é assimétrico na decodificação: codificar na qualidade 11 é lento (~50 ms para aquele arquivo de 100 kB), mas a decodificação é quase idêntica em velocidade ao gzip, então o padrão correto é pré-comprimir ativos estáticos no momento da compilação e pular Brotli em tempo real para respostas dinâmicas.

Níveis e a troca entre velocidade e razão de compressão

Os nove níveis de compressão do DEFLATE (1-9) trocam tempo de codificação pelo tamanho de saída. O nível 1 é aproximadamente 5× mais rápido que o nível 9 e produz uma saída cerca de 10-15% maior. A maioria dos servidores web usa o nível 6 por padrão, que fica no ponto de inflexão da curva. A implementação paralela pigz, ao dividir a entrada em blocos independentes, torna o nível 9 acessível em máquinas multicore para cargas de trabalho de arquivamento. Nenhuma dessas configurações afeta a velocidade de decodificação — o descompressor lê o que o codificador produziu com throughput constante. Referência: RFC 1952 — Especificação do formato de arquivo GZIP.

Frequently asked questions

O que é Deflate?
Deflate é um algoritmo de compressão sem perda que combina LZ77 (referências retrospectivas a strings repetidas anteriores) e codificação Huffman (códigos de comprimento variável para símbolos frequentes). É definido na RFC 1951 e é o motor de compressão dentro de arquivos ZIP, gzip e imagens PNG.
Como o Deflate é usado na prática?
Quando um navegador solicita uma página web, o servidor tipicamente responde com Content-Encoding: gzip — que é um fluxo comprimido por Deflate com um cabeçalho gzip. Arquivos HTML, CSS e JS comprimem 60–80%, reduzindo significativamente o tempo de transferência em conexões lentas.
Qual é a diferença entre Deflate, gzip e zlib?
Deflate é o algoritmo central. zlib envolve Deflate com um pequeno cabeçalho e checksum Adler-32 (usado dentro de PNG e codificação HTTP zlib). Gzip envolve Deflate com um cabeçalho maior incluindo nome de arquivo e CRC-32 (usado para arquivos e codificação HTTP gzip). Os dados comprimidos são idênticos; apenas o invólucro difere.
Como o Deflate se compara ao Brotli e Zstandard?
Brotli (usado em compressão HTTP moderna) e Zstandard tipicamente alcançam 15–25% melhor compressão do que Deflate/gzip em conteúdo web, com velocidade de descompressão comparável. Deflate permanece onipresente porque está integrado aos formatos ZIP, PNG e PDF e tem décadas de suporte de hardware e software.

Related

Published May 14, 2026 · Last reviewed May 31, 2026