Glossary
DEFLATE
Die verlustfreie Komprimierung hinter dem halben Web
By Buğra SözeriPublished Updated
DEFLATE ist ein verlustfreier Datenkomprimierungsalgorithmus, spezifiziert in RFC 1951. Er kombiniert zwei Techniken: LZ77 (das Finden wiederholter Teilzeichenketten und ihr Ersetzen durch Rückverweise) und Huffman-Kodierung (das Zuweisen kürzerer Binärcodes zu häufigeren Symbolen).
DEFLATE ist der Komprimierungsalgorithmus hinter PNG-Bilddateien, ZIP-Archiven, gzip-komprimierten Dateien (einschließlich HTTP Content-Encoding: gzip), zlib-Bibliotheksdatenströmen und den Pack-Dateien von Git. Er ist wohl der am häufigsten eingesetzte Komprimierungsalgorithmus der Computergeschichte.
Merkmale:
- Verlustfrei – die ursprünglichen Bytes sind exakt wiederherstellbar.
- Schnell zu dekomprimieren, mäßig schnell zu komprimieren.
- Kein externes Wörterbuch, sodass jeder DEFLATE-Datenstrom in sich geschlossen ist.
- Gut für Text und strukturierte Daten; mittelmäßig für bereits komprimierte Medien.
Neuere Algorithmen (Brotli, Zstandard) komprimieren besser und sind im Web zunehmend verbreitet, doch DEFLATE bleibt der universelle Rückfall, weil jeder Browser, jedes Betriebssystem und jedes Werkzeug es unterstützt.
Die patentfreie Entstehungsgeschichte: Phil Katz entwarf DEFLATE 1993 für PKZIP und veröffentlichte es ausdrücklich lizenzfrei. Diese Entscheidung ist der Grund, warum DEFLATE – nicht LZW (auf das Unisys bis 2003 Patente hielt) oder die arithmetische Kodierung (die IBM patentierte) – zum universellen Standard wurde. Die zlib-Bibliothek (Mark Adler & Jean-loup Gailly, 1995) lieferte eine saubere Referenzimplementierung unter einer freizügigen Lizenz, was es jedem Betriebssystem, Browser und jeder Sprachlaufzeit erlaubte, denselben Code einzubinden.
Warum Brotli dort gewinnt, wo DEFLATE verliert: Brotli (Google, 2013) erreicht bei typischem Webtext eine 20–25 % bessere Komprimierung als gzip, weil es ein 120 kB großes statisches Wörterbuch gängiger HTML-, CSS- und JavaScript-Fragmente mitbringt – der Decoder „kennt“ Phrasen wie <html lang="en"> bereits, ohne sie im Datenstrom kodieren zu müssen. Zstandard (Facebook, 2016) tauscht ein wenig Komprimierung gegen deutlich schnellere Dekodiergeschwindigkeit und ist heute der Standard für den Linux-Kernel und viele Backup-/Archivierungsabläufe. Alle drei koexistieren; Accept-Encoding: gzip, br, zstd-Aushandlungen lassen den Server jeweils das wählen, was der Client unterstützt. Verwandt: verlustfrei, ETag. Quelle: RFC 1951 — DEFLATE Compressed Data Format Specification.
Warum es zählt: ein gemessenes Beispiel
Nehmen wir eine typische 100 kB große, minifizierte jQuery-3.7-Quelldatei (102.310 Byte unkomprimiert). Bei Standard-Komprimierungsstufen: gzip (DEFLATE Stufe 6) erzeugt etwa 36.200 Byte – eine Reduktion um 64,6 %. Brotli bei Qualität 11 reduziert dieselbe Datei auf rund 28.400 Byte (72,2 % Reduktion). Zstd Stufe 19 landet bei etwa 30.100 Byte. Die Unterschiede wirken isoliert betrachtet bescheiden, summieren sich aber: Eine typische E-Commerce-Seite liefert ~250 kB an JS, CSS und HTML aus, sodass der Wechsel von gzip zu Brotli rund 20 kB auf der Leitung spart – was bei typischer 4G-Umlauflatenz 50–150 ms schnelleres First Contentful Paint bedeutet. Brotli ist dekodierasymmetrisch: Das Kodieren mit Qualität 11 ist langsam (~50 ms für jene 100-kB-Datei), aber das Dekodieren ist nahezu gleich schnell wie bei gzip, sodass das richtige Muster lautet: statische Assets zur Build-Zeit vorkomprimieren und On-the-fly-Brotli für dynamische Antworten überspringen.
Stufen und der Kompromiss zwischen Geschwindigkeit und Verhältnis
Die neun Komprimierungsstufen von DEFLATE (1–9) tauschen Kodierzeit gegen Ausgabegröße. Stufe 1 ist etwa 5× schneller als Stufe 9 und erzeugt eine Ausgabe, die rund 10–15 % größer ist. Die meisten Webserver verwenden standardmäßig Stufe 6, die am Wendepunkt der Kurve liegt. Die parallele pigz-Implementierung macht durch Aufteilung der Eingabe in unabhängige Blöcke Stufe 9 auf Mehrkernmaschinen für Archivierungsaufgaben erschwinglich. Keine dieser Einstellungen beeinflusst die Dekodiergeschwindigkeit – der Dekompressor liest mit konstantem Durchsatz, was auch immer der Encoder erzeugt hat. Quelle: RFC 1952 — GZIP file format specification.
Frequently asked questions
- Was ist Deflate?
- Deflate ist ein verlustfreier Komprimierungsalgorithmus, der LZ77 (Rückverweise auf frühere wiederholte Zeichenketten) und Huffman-Kodierung (Codes variabler Länge für häufige Symbole) kombiniert. Er ist in RFC 1951 definiert und das Komprimierungsmodul innerhalb von ZIP-Archiven, gzip und PNG-Bildern.
- Wie wird Deflate in der Praxis verwendet?
- Fordert ein Browser eine Webseite an, antwortet der Server typischerweise mit Content-Encoding: gzip – ein Deflate-komprimierter Datenstrom mit gzip-Header. HTML-, CSS- und JS-Dateien werden um 60–80 % komprimiert, was die Übertragungszeit bei langsamen Verbindungen erheblich verkürzt.
- Was ist der Unterschied zwischen Deflate, gzip und zlib?
- Deflate ist der Kernalgorithmus. zlib umhüllt Deflate mit einem kleinen Header und einer Adler-32-Prüfsumme (verwendet innerhalb von PNG und der HTTP-zlib-Kodierung). Gzip umhüllt Deflate mit einem größeren Header inklusive Dateiname und CRC-32 (verwendet für Dateien und die HTTP-gzip-Kodierung). Die komprimierten Daten sind identisch; nur die Hülle unterscheidet sich.
- Wie schneidet Deflate im Vergleich zu Brotli und Zstandard ab?
- Brotli (in moderner HTTP-Komprimierung verwendet) und Zstandard erreichen bei Webinhalten typischerweise eine 15–25 % bessere Komprimierung als Deflate/gzip, bei vergleichbarer Dekomprimierungsgeschwindigkeit. Deflate bleibt allgegenwärtig, weil es fest in die Formate ZIP, PNG und PDF eingebaut ist und über jahrzehntelange Hardware- und Softwareunterstützung verfügt.
Related
Published May 14, 2026 · Last reviewed May 31, 2026