
HTTP/2, HTTP/3 und Minifizierung: Lohnt sich Minifizierung noch?
HTTP/2 und HTTP/3 ändern den Weg der Dateien, nicht ihre Größe. Messungen zu Größe, Kompilierzeit und Bundling zeigen, was Minifizierung noch bringt.
HTTP/2 hat den Weg der Dateien geändert, nicht ihre Größe
Eine Behauptung kehrt immer wieder: Seit HTTP/2 Anfragen bündelt, müsse man weder minifizieren noch Dateien zusammenfassen. Die Hälfte stimmt. Das Protokoll hat die Kosten vieler kleiner Anfragen beseitigt. Es hat aber kein einziges Byte aus einer JavaScript-Datei entfernt, und der Browser muss jede davon weiterhin laden, entpacken und kompilieren. Dieser Leitfaden trennt, was HTTP/2 und HTTP/3 geändert haben, von dem, was unberührt blieb. Die Zahlen stammen aus drei Tests vom 22. Oktober 2026 (dem Benchmark-Datensatz von FastMinify, einem Paket mit 644 Modulen und einem Kompiliertest in V8). Dazu kommen die RFCs und die Browser-Dokumentation, die im Text genannt werden. Zur Kompression lesen Sie unseren GZIP- und Brotli-Leitfaden.
Was die Protokolle geändert haben und was nicht
HTTP/2 (RFC 9113, Juni 2022) transportiert viele Anfragen und Antworten gleichzeitig über eine einzige Verbindung. Mit HTTP/1.1 öffnete ein Browser meist sechs Verbindungen je Host und stellte den Rest in eine Warteschlange. Deshalb haben Teams Dateien zusammengefügt, Bild-Sprites gezeichnet und Ressourcen auf mehrere Hostnamen verteilt.
Verbesserungen
HTTP/3 (RFC 9114, Juni 2022) behält das HTTP-Modell bei, läuft aber über QUIC statt über TCP. Ein verlorenes Paket hält nur noch den betroffenen Stream auf, während es bei HTTP/2 alle Übertragungen der Verbindung aufhält.
Verbesserungen
Beide Protokolle bewegen Bytes. Keines ändert, wie viele Bytes eine Datei hat, und keines analysiert Ihren Code.
Verbesserungen
Wir haben den Minifizierungs-Benchmark von FastMinify (Ausgabe 2026-10) genutzt. Er misst nicht minifizierte Dateien öffentlicher Bibliotheken roh, mit gzip Stufe 9 und mit Brotli Qualität 11. Jede Zahl ist eine Summe über die Dateien einer Sprache. JavaScript läuft mit Terser 5.51.2 in den Standardeinstellungen, CSS mit CSSO und JSON mit JSON.stringify.
Verbesserungen
Wir haben lodash-es 4.18.1 geladen, das 644 JavaScript-Module ausliefert. Jedes Modul haben wir mit esbuild minifiziert und mit gzip Stufe 9 und Brotli Qualität 11 komprimiert. Das ist ein Extremfall, denn kaum eine Seite lädt 644 Module, aber er zeigt den Mechanismus.
Verbesserungen
Wir haben fünf Bibliotheken mit V8 kompiliert (Node 26.4.0 auf einem Apple M4 Max), einmal wie ausgeliefert und einmal mit Terser minifiziert. Der Test nutzt new vm.Script mit einer Quelle, die sich bei jedem Durchlauf ändert, um den Kompilier-Cache zu umgehen. Jeder Wert ist der Median aus 30 Durchläufen, danach der Median aus fünf solchen Serien.
Verbesserungen
Was Sie 2026 behalten und was Sie ablegen sollten
Diese Schritte lohnen sich bei jedem Protokoll.
Jede davon war mit sechs Verbindungen je Host sinnvoll. Manche kosten Sie heute etwas.
Prüfen, was Ihr Server wirklich sendet
Zwei schnelle Prüfungen geben die Antwort, und eine dritte erklärt, warum ein erster Besuch oft h2 zeigt.
Die Kodierung hängt vom Header ab, den der Client sendet. Testen Sie deshalb mit dem Header eines Browsers.
Fünf Fehler, die den Umstieg auf HTTP/2 überleben
Der Umstieg auf HTTP/2 oder HTTP/3 ist kein Grund, lesbaren Code auszuliefern. Das Protokoll hat keinen Einfluss darauf, was in der Datei steht.
Native Module und HTTP/2 machen es möglich, Quelldateien unverändert auszuliefern. Das V8-Team empfiehlt für Produktion weiterhin Bundling. Nicht gebündelt liefern Sie nur kleine Anwendungen mit unter etwa 100 Modulen aus.
Der umgekehrte Exzess ist genauso verbreitet. Ein Bundle für alle Seiten bedeutet, dass jedes Deployment den ganzen Cache entwertet und jede Seite Code lädt, den sie nie ausführt.
Mehrere Gewohnheiten waren nur mit sechs Verbindungen je Host sinnvoll. Unser Base64-Leitfaden beschreibt den Größenaufschlag von Data-URIs.
HTTP/3 verbessert, wie sich eine Verbindung nach Paketverlust erholt. Es macht eine Seite nicht kleiner.
Vier Behauptungen über HTTP/2, HTTP/3 und Dateigröße
Die Behauptung behandelt einen schnelleren Transport, als würde er die Nutzlast verkleinern.
Kompression und Minifizierung überschneiden sich, wirken aber auf Verschiedenes. Kompression entfernt Wiederholung. Minifizierung entfernt, was das Programm nie brauchte.
Multiplexing hat die Grenze für parallele Anfragen aufgehoben, nicht die anderen Kosten einer Datei.
HTTP/3 löst ein Netzwerkproblem, den Paketverlust auf einer gemeinsamen Verbindung.
Mit FastMinify minifizieren und messen
Der JavaScript-Minifier, der CSS-Minifier, der JSON-Minifier und der HTML-Minifier laufen in Ihrem Browser und zeigen die Originalgröße und die Ausgabegröße.
Datei einfügen oder ablegen
Fügen Sie den Quelltext in das Eingabefeld ein oder legen Sie eine Datei ab. Wählen Sie bei JavaScript die Komprimierungsstufe (konservativ, normal oder aggressiv).
Das Panel Komprimierung lesen
Das Panel zeigt Originalgröße, Ausgabegröße und den eingesparten Anteil in Prozent. Es sind unkomprimierte Größen. Vergleichen Sie sie mit den Rohwerten in diesem Artikel, nicht mit dem, was übertragen wird.
Die Console-Option prüfen
Der JavaScript-Minifier entfernt standardmäßig console-Aufrufe und debugger-Anweisungen (Optionen „Konsole entfernen“ und „Debugger entfernen“). Schalten Sie beides ab, wenn Ihr Code darauf angewiesen ist.
Die Seiten der Minifier für JavaScript, CSS, HTML, XML, SVG und SQL haben eine Schaltfläche „Concat-Dateien“. Sie fügt die gewählten Dateien zusammen und minifiziert das Ergebnis.
Concat-Dateien öffnen
Wählen Sie auf der Minifier-Seite „Concat-Dateien“ und fügen Sie Ihre Dateien hinzu. Ziehen Sie sie in die Reihenfolge, in der sie laufen müssen.
Zusammenfügen und minifizieren
Starten Sie „Verketten und minimieren“. Bei JavaScript verbindet das Werkzeug die Dateien mit einem Semikolon in einer eigenen Zeile, damit eine Datei die nächste nicht verschluckt. Danach minifiziert es das Ganze. Imports löst es nicht auf. Für einen echten Abhängigkeitsgraphen nutzen Sie Ihren Bundler (siehe Online-Minifier und Build-Tools).
Die Messungen mit eigenen Dateien nachvollziehen
curl -I sendet eine HEAD-Anfrage, und einige Server antworten darauf anders als auf ein GET. Ersetzen Sie die URL durch eine Ihrer Dateien.
Einfaches Beispiel
Speichern Sie das Skript als size.mjs. Es nutzt gzip Stufe 9 und Brotli Qualität 11, die Einstellungen des Benchmarks.
Einfaches Beispiel
Verwendung
Das misst nur die Kompression. ES-Module auf diese Weise zusammenzufügen ergibt kein lauffähiges Skript. Nutzen Sie es auf einem Ordner, um die Kosten winziger Dateien zu sehen.
Einfaches Beispiel
Das Skript kompiliert ein klassisches Skript, ohne es auszuführen. new Script akzeptiert keine ES-Module mit import oder export.
Einfaches Beispiel
Weiter minifizieren und die HTTP/1.1-Gewohnheiten ablegen
HTTP/2 und HTTP/3 haben kleine Anfragen günstig gemacht. Große Dateien haben sie nicht klein gemacht. Minifizierung halbiert die komprimierte Größe von nicht minifiziertem JavaScript noch immer, spart bei CSS einige Prozent und verringert den Aufwand beim Kompilieren. Wertlos geworden ist das HTTP/1.1-Werkzeug aus vervielfachten Hostnamen, Push und riesigen Bundles. Minifizieren Sie, komprimieren Sie mit Brotli, bündeln Sie mit Maß und beurteilen Sie das Ergebnis nach den Bytes, die übertragen werden.
Minifizieren Sie Ihre Dateien im Browser
Verwandte Artikel

Rechnen Sie eine Unix-Epoche in ein lesbares Datum um und zurück, unterscheiden Sie Sekunden und Millisekunden und meiden Sie Zeitzonen-, JWT- und Zeitumstellungsfallen.

Lesen Sie einen Cron-Ausdruck Feld für Feld, prüfen Sie die nächsten Ausführungen in UTC oder Ortszeit und meiden Sie Fallen bei Schritten und Zeitzonen.

Netzwerk, Maske, Hostbereich und Broadcast eines CIDR berechnen, Bereiche zu minimalen Blöcken zusammenfassen und IPs prüfen, direkt im Browser.