LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog-Übersicht /Web Entwicklung/Tutorials / HTTP-Kompression nach Dateityp: Was zu messen ist
Diesen Artikel in anderen Sprachen lesen:

HTTP-Kompression nach Dateityp: Was zu messen ist

HTTP-Kompression nach Dateityp: Was zu messen ist

Management Summary

Webkompression verringert die Datenmenge bei der Übertragung von Websitedateien zum Browser. Der Nutzen hängt vom Inhalt ab: Text lässt sich häufig deutlich verkleinern, während Bilder und Schriften oft bereits komprimiert sind und wenig zusätzliche Ersparnis bieten. Eine einheitliche Behandlung aller Dateien kann deshalb Rechenaufwand verschwenden. Sinnvolle Entscheidungen wägen weniger Übertragung gegen die benötigte Verarbeitung ab. Kleine Dateien und schnelle Seiten hängen zusammen, sind aber nicht dieselbe Messgröße.

Inhalt
  1. Text zuerst prüfen, bereits komprimierte Formate getrennt betrachten
  2. Keine allgemeine Grenze bei hundert Byte
  3. Ein aussagekräftiger Vergleich braucht denselben Inhalt
  4. Cache-Varianten und Validatoren prüfen
  5. Was der Kompressionsprüfer tatsächlich zeigt
  6. Fragen und Antworten
  7. Quellen

HTTP-Kompression verkleinert den Antwortinhalt für die Übertragung. Ob gzip, Brotli oder zstd lohnt, hängt vom konkreten Inhalt, der Kompressionsstufe und den Kosten der Verarbeitung ab. Eine Dateiendung allein liefert keine zuverlässige Entscheidung.

Textkandidaten, Dateiaufbau und Bedingungen für gültige Größenvergleiche
Textkandidaten, Dateiaufbau und Bedingungen für gültige Größenvergleiche.

Text zuerst prüfen, bereits komprimierte Formate getrennt betrachten

HTML, CSS, JavaScript, JSON, XML und SVG sind häufig gute Kandidaten. Wiederkehrende Zeichenfolgen und andere statistische Muster ermöglichen kürzere Darstellungen. Minifizierung entfernt etwa Leerraum oder verkürzt Namen; wiederholte Schlüsselwörter und Strukturen bleiben trotzdem erhalten. Auch minifiziertes JavaScript kann deshalb deutlich schrumpfen. JSON besteht ebenfalls nicht zwangsläufig aus einmaligen Werten.

JPEG, PNG, WebP und AVIF verwenden bereits Kompression. WOFF2 verarbeitet Schriftdaten mit speziellen Transformationen und Brotli. Eine zusätzliche HTTP-Kodierung bringt bei solchen Dateien oft wenig, kann aber je nach Datei noch Bytes sparen oder zusätzliche Bytes verursachen. Eine unverändert ausgelieferte Datei belegt nur die Serverentscheidung, nicht das Ergebnis eines tatsächlich durchgeführten zweiten Kompressionsversuchs.

SVG ist XML-Text und gehört trotz Bildfunktion zu den Textkandidaten. ICO ist dagegen ein Container: Möglich sind unter anderem Bitmapdaten und bereits komprimierte PNG-Bilder. Deshalb ist weder „jedes ICO ist unkomprimiert“ noch „jedes Bild ist schon optimal komprimiert“ richtig.

Keine allgemeine Grenze bei hundert Byte

Auch kleine Antworten können schrumpfen. Ein lokaler Test vom 25. Oktober 2026 verwendet exakt 80 ASCII-Zeichen a. gzip mit Stufe 6 erzeugt 24 Byte, Brotli mit Stufe 5 erzeugt 10 Byte und zstd mit Stufe 3 erzeugt 21 Byte. Die drei Eingabezeichen abc wachsen dagegen auf 23, 7 und 16 Byte. Alle sechs Ergebnisse wurden wieder dekodiert und bytegenau mit der Eingabe verglichen.

Das sind künstliche Beispiele für Inhaltsabhängigkeit, keine Messung von Webseiten oder Ladezeiten. Formatversionen und Einstellungen können Ergebnisse ändern. Eine Mindestgröße in der Serverkonfiguration ist eine betriebliche Abwägung, keine mathematische Grenze für Komprimierbarkeit.

Auch der Format-Overhead unterscheidet sich: gzip enthält eine Prüfsumme, der normale Brotli-Datenstrom keine, bei zstd ist eine Inhaltsprüfsumme optional. Eine einheitliche Erklärung mit „Kopf und Prüfsumme bei jedem Format“ wäre deshalb falsch.

Ein aussagekräftiger Vergleich braucht denselben Inhalt

  1. Für jede Variante dieselbe endgültige Ressourcen-URL, dieselben relevanten Anfragebedingungen und denselben Messzeitraum verwenden. Dynamische Inhalte können sich schon zwischen zwei Abrufen ändern.
  2. HTTP-Status, endgültigen Inhaltstyp und tatsächliches Content-Encoding prüfen. Ein Angebot von br erzwingt keine Brotli-Antwort; eine Sperrseite kann sogar mit Status 200 erscheinen.
  3. Antworten vollständig dekodieren und den Inhalt bytegenau oder mit einem geeigneten Hash vergleichen. Unterschiedliche oder abgeschnittene Inhalte aus dem Größenvergleich ausschließen.
  4. Für gleiche Inhalte kodierte Antwortbytes durch unkodierte Inhaltsbytes teilen. Beispiel: 20 KiB aus 100 KiB ergeben 20 Prozent Restgröße beziehungsweise 80 Prozent Ersparnis.
  5. Mehrere Durchläufe und getrennte Zeitmessungen verwenden, wenn Aussagen über Geschwindigkeit oder CPU-Kosten erforderlich sind. Vorab komprimierte statische Dateien und dynamische Kompression haben unterschiedliche Kosten.

size_download von curl erfasst heruntergeladene Nutzdatenbytes, keine vollständige Netzwerkrechnung einschließlich HTTP-Headern, TLS und Paketaufwand. Bei --compressed kann die gespeicherte Datei bereits dekodiert sein; deren Dateigröße ist dann eine andere Messgröße. Die lokale curl-Version muss die angebotene Kodierung unterstützen.

Cache-Varianten und Validatoren prüfen

Wenn die Repräsentation anhand von Accept-Encoding gewählt wird, beschreibt Vary: Accept-Encoding diese Auswahl für Caches. Die Prüfung muss die relevanten kodierten und unkodierten Antworten umfassen. Ein fehlender Header kann bei wiederverwendbaren Antworten zur falschen Variantenwahl beitragen; eine kaputte Seite ist dadurch allein noch nicht nachgewiesen. Speicherregeln und weitere Cache-Konfiguration zählen ebenfalls.

Ein ETag ist eine Versionsmarkierung in der Serverantwort. Verschiedene kodierte Bytefolgen benötigen unterschiedliche starke ETags. Ein gemeinsamer schwacher Validator mit W/ kann inhaltlich gleichwertige Varianten, etwa eine komprimierte und eine unkomprimierte Fassung derselben Seite, kennzeichnen, ersetzt aber keine Prüfung der Inhalte oder der Einsatzbedingungen. Unterschiedliche ETag-Werte allein beweisen noch keine korrekte Implementierung.

Was der Kompressionsprüfer tatsächlich zeigt

Der Kompressions-Aushandlungsprüfer ruft eine Ressource nacheinander mit identity, gzip, br, zstd und einer festen Kombination ab. Die als Browser bezeichnete Variante ist ein curl-Abruf mit gzip, deflate, br, zstd, keine echte Browsermessung und kein universeller Browserheader.

Der aktuelle Prüfer meldet unterschiedliche dekodierte Inhalte, berechnet Größenquoten aber trotzdem weiter. Das Dekodierlimit liegt bei 3 MiB. Solche Abweichungen, abgeschnittene Antworten und Fehlerseiten machen den Vergleich unbrauchbar. Außerdem prüft die Vary-Auswertung nur eine kodierte Variante; die Typklassifikation untersucht keine Dateiinhalte. Das Werkzeug liefert daher Hinweise, keine vollständige Abnahme der Serverkonfiguration.

Fragen und Antworten

Ist Brotli immer kleiner als gzip?

Nein. Inhalt, Implementierung, Wörterbuch und Kompressionsstufe beeinflussen das Ergebnis. Die kleinste Datei ist außerdem nicht automatisch die wirtschaftlichste Wahl für dynamische Antworten.

Welche Typen gehören in eine Kompressionsregel?

Textformate sind ein sinnvoller Ausgangspunkt. Bereits komprimierte Formate und ICO benötigen eine gesonderte Betrachtung. Entscheidend sind vollständige, inhaltlich gleiche Vergleichsantworten sowie die Anforderungen an Rechenzeit und Zwischenspeicherung.

Beweist eine kleinere Antwort eine schnellere Seite?

Nein. Netzwerkbedingungen, Cachetreffer, Verbindungsaufbau, Serverarbeit und Browserausführung beeinflussen die Ladezeit. Eine Größenmessung beantwortet zunächst nur die Frage nach den gemessenen Antwortbytes.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Eine Frage oder eine Idee für ein Webprojekt? Schreib mir kurz, worum es geht. Das Formular nutzt reCAPTCHA und formconfirmed zum Schutz vor Spam.

Kommentar schreiben

Randfälle, die der Artikel nicht behandelt, und Rückfragen zum Code sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.

LUKASWOJCIK.COM · NEWSLETTER

Neue Ideen im Postfach

Neue Blogartikel, praktische Tools und Einblicke in die Projekte.

Themen auswählen (optional)
Ohne Auswahl: alle Themen.

Erst nach Bestätigung per E-Mail. · Datenschutz

Datenschutz · Newsletter

E-Mail-Adresse, Sprache, Themenauswahl sowie Anmelde- und Bestätigungszeit werden für den Newsletter gespeichert. Versand nur nach Double-Opt-in. Jede Ausgabe enthält eine sofortige Abmeldung. Formconfirmed prüft die Anmeldung auf Spam; dafür werden Formularsignale und die E-Mail-Adresse verarbeitet. Keine Öffnungs- oder Klicktracking-Pixel im Newsletter.

Vollständige Datenschutzerklärung öffnen ↗