Glossary
DEFLATE
La compresión sin pérdida detrás de media web
By Buğra SözeriPublished Updated
DEFLATE es un algoritmo de compresión de datos sin pérdida especificado en la RFC 1951. Combina dos técnicas: LZ77 (encontrar subcadenas repetidas y reemplazarlas con referencias retroactivas) y codificación Huffman (asignar códigos binarios más cortos a los símbolos más comunes).
DEFLATE es el algoritmo de compresión detrás de los archivos de imagen PNG, los archivos ZIP, los archivos comprimidos con gzip (incluyendo Content-Encoding: gzip HTTP), los flujos de datos de la biblioteca zlib y los archivos pack de Git. Es posiblemente el algoritmo de compresión más desplegado en la historia de la informática.
Características:
- Sin pérdida — los bytes originales son recuperables exactamente.
- Rápido para descomprimir, moderadamente rápido para comprimir.
- Sin diccionario externo, por lo que cualquier flujo DEFLATE es autónomo.
- Bueno para texto y datos estructurados; mediocre para medios ya comprimidos.
Los algoritmos más nuevos (Brotli, Zstandard) comprimen mejor y son cada vez más comunes en la web, pero DEFLATE sigue siendo el recurso universal porque todos los navegadores, sistemas operativos y herramientas lo soportan.
La historia del origen libre de patentes: Phil Katz diseñó DEFLATE en 1993 para PKZIP y lo publicó explícitamente libre de regalías. Esa decisión es la razón por la que DEFLATE — no LZW (del que Unisys tenía patentes hasta 2003) ni la codificación aritmética (patentada por IBM) — se convirtió en el estándar universal predeterminado. La biblioteca zlib (Mark Adler y Jean-loup Gailly, 1995) proporcionó una implementación de referencia limpia bajo una licencia permisiva, que permitió a todos los sistemas operativos, navegadores y runtimes de lenguajes incluir el mismo código.
Por qué Brotli gana donde DEFLATE pierde: Brotli (Google, 2013) logra un 20-25% mejor compresión que gzip en texto web típico porque incluye un diccionario estático de 120 kB con fragmentos comunes de HTML, CSS y JavaScript — el decodificador ya “conoce” frases como <html lang="en"> sin tener que codificarlas en el flujo. Zstandard (Facebook, 2016) intercambia un poco de compresión por una velocidad de decodificación mucho mayor y es ahora el predeterminado para el kernel de Linux y muchos flujos de trabajo de copia de seguridad/archivo. Los tres coexisten; las negociaciones Accept-Encoding: gzip, br, zstd permiten al servidor elegir el que el cliente soporta. Relacionado: sin pérdida, ETag. Referencia: RFC 1951 — Especificación del formato de datos comprimidos DEFLATE.
Por qué importa: un ejemplo medido
Tome un archivo fuente típico de jQuery 3.7 minificado de 100 kB (102.310 bytes sin comprimir). A niveles de compresión predeterminados: gzip (nivel DEFLATE 6) produce aproximadamente 36.200 bytes — una reducción del 64,6%. Brotli en calidad 11 reduce el mismo archivo a aproximadamente 28.400 bytes (reducción del 72,2%). Zstd nivel 19 llega a unos 30.100 bytes. Las diferencias parecen modestas de forma aislada pero se acumulan: una página de comercio electrónico típica envía ~250 kB de JS, CSS y HTML, por lo que cambiar de gzip a Brotli ahorra aproximadamente 20 kB en la red — lo que con la latencia de ida y vuelta típica de 4G se traduce en 50-150 ms de primer pintado de contenido más rápido. Brotli es asimétrico en decodificación: la codificación en calidad 11 es lenta (~50 ms para ese archivo de 100 kB) pero la decodificación es casi idéntica en velocidad a gzip, por lo que el patrón correcto es precomprimir activos estáticos en tiempo de compilación y omitir Brotli sobre la marcha para respuestas dinámicas.
Niveles y la compensación velocidad/razón
Los nueve niveles de compresión de DEFLATE (1-9) intercambian tiempo de codificación por tamaño de salida. El nivel 1 es aproximadamente 5× más rápido que el nivel 9 y produce una salida aproximadamente un 10-15% más grande. La mayoría de los servidores web usan el nivel 6 por defecto, que se sitúa en el punto de inflexión de la curva. La implementación paralela pigz, al dividir la entrada en bloques independientes, hace que el nivel 9 sea asequible en máquinas multinúcleo para cargas de trabajo de archivo. Ninguna de estas configuraciones afecta la velocidad de decodificación — el descompresor lee lo que el codificador produjo a un rendimiento constante. Referencia: RFC 1952 — Especificación del formato de archivo GZIP.
Frequently asked questions
- ¿Qué es Deflate?
- Deflate es un algoritmo de compresión sin pérdida que combina LZ77 (referencias a cadenas repetidas anteriores) y codificación Huffman (códigos de longitud variable para símbolos frecuentes). Está definido en la RFC 1951 y es el motor de compresión dentro de archivos ZIP, gzip e imágenes PNG.
- ¿Cómo se usa Deflate en la práctica?
- Cuando un navegador solicita una página web, el servidor típicamente responde con Content-Encoding: gzip — que es un flujo comprimido con Deflate con una cabecera gzip. Los archivos HTML, CSS y JS se comprimen un 60-80%, reduciendo significativamente el tiempo de transferencia en conexiones lentas.
- ¿Cuál es la diferencia entre Deflate, gzip y zlib?
- Deflate es el algoritmo principal. zlib envuelve Deflate con una pequeña cabecera y suma de verificación Adler-32 (usada dentro de PNG y codificación HTTP zlib). Gzip envuelve Deflate con una cabecera más grande que incluye nombre de archivo y CRC-32 (usada para archivos y codificación HTTP gzip). Los datos comprimidos son idénticos; solo difiere el envoltorio.
- ¿Cómo se compara Deflate con Brotli y Zstandard?
- Brotli (usado en compresión HTTP moderna) y Zstandard típicamente logran un 15-25% mejor compresión que Deflate/gzip en contenido web, con velocidad de descompresión comparable. Deflate sigue siendo omnipresente porque está integrado en los formatos ZIP, PNG y PDF y tiene décadas de soporte en hardware y software.
Related
Published May 14, 2026 · Last reviewed May 31, 2026