Welche Vorteile bieten beide Methoden für HTML-, CSS- und Javascript-Dateien, die von einem LAMP-Server bereitgestellt werden? Gibt es bessere Alternativen?
Der Server stellt einer Kartenanwendung mithilfe von Json Informationen zur Verfügung, also ein großes Volumen kleiner Dateien.
Antworten:
Die einfache Antwort lautet nicht .
RFC 2616 definiert Deflate als:
Das zlib-Format ist in RFC 1950 wie folgt definiert :
Also ein paar Header und eine ADLER32-Prüfsumme
RFC 2616 definiert gzip als:
RFC 1952 definiert die komprimierten Daten als:
CRC-32 ist langsamer als ADLER32
Also ... wir haben zwei Komprimierungsmechanismen, die denselben Algorithmus für die Komprimierung verwenden, aber einen anderen Algorithmus für Header und Prüfsumme.
Jetzt sind die zugrunde liegenden TCP-Pakete bereits ziemlich zuverlässig , daher ist das Problem hier nicht Adler 32 gegenüber CRC-32 , das GZIP verwendet.
Es stellte sich heraus, dass viele Browser im Laufe der Jahre einen falschen Deflate-Algorithmus implementiert haben. Anstatt den zlib-Header in RFC 1950 zu erwarten, erwarteten sie einfach die komprimierte Nutzlast. In ähnlicher Weise haben verschiedene Webserver den gleichen Fehler gemacht.
Im Laufe der Jahre haben Browser damit begonnen, eine Fuzzy-Logik- Deflate-Implementierung zu implementieren. Sie versuchen, die zlib-Header- und Adler-Prüfsumme zu ermitteln. Wenn dies fehlschlägt, versuchen sie, Nutzdaten zu erhalten.
Das Ergebnis einer solchen komplexen Logik ist, dass sie oft kaputt ist. Verve Studio hat einen vom Benutzer bereitgestellten Testabschnitt , der zeigt, wie schlimm die Situation ist.
Beispiel: Deflate funktioniert in Safari 4.0, ist jedoch in Safari 5.1 fehlerhaft. Außerdem treten im IE immer Probleme auf.
Das Beste, was Sie tun können, ist, das Entleeren insgesamt zu vermeiden. Die geringfügige Geschwindigkeitssteigerung (aufgrund von Adler 32) ist das Risiko von Nutzlastbrüchen nicht wert.
quelle
GZip ist einfach entleert plus eine Prüfsumme und Kopf- / Fußzeile. Das Entleeren ist jedoch schneller , wie ich auf die harte Tour gelernt habe.
quelle
Sie sind wahrscheinlich nicht in der Lage, Deflate als Option auszuwählen. Im Gegensatz zu dem, was Sie vielleicht erwarten, verwendet mod_deflate nicht deflate, sondern gzip. Obwohl die meisten Punkte gültig sind, ist sie für die meisten wahrscheinlich nicht relevant.
quelle
Ich denke, es gibt keinen großen Unterschied zwischen deflate und gzip, da gzip im Grunde nur ein Header ist, der um deflate gewickelt ist (siehe RFCs 1951 und 1952).
quelle
Der Hauptgrund ist, dass Deflate schneller zu codieren ist als gzip und auf einem ausgelasteten Server, der möglicherweise einen Unterschied macht. Bei statischen Seiten ist dies eine andere Frage, da sie leicht einmal vorkomprimiert werden können.
quelle
mod_deflate benötigt weniger Ressourcen auf Ihrem Server, obwohl Sie möglicherweise eine kleine Strafe in Bezug auf den Komprimierungsgrad zahlen.
Wenn Sie viele kleine Dateien bereitstellen, würde ich empfehlen, Ihre komprimierten und unkomprimierten Lösungen zu vergleichen und zu testen. In einigen Fällen führt das Aktivieren der Komprimierung möglicherweise nicht zu Einsparungen.
quelle
Es sollte keinen Unterschied zwischen gzip und deflate für die Dekomprimierung geben. Gzip ist nur mit ein paar Dutzend Byte Header einschließlich einer Prüfsumme entleert. Die Prüfsumme ist der Grund für die langsamere Komprimierung. Wenn Sie jedoch zig Millionen Dateien vorkomprimieren, möchten Sie diese Prüfsummen als Überprüfung der Integrität in Ihrem Dateisystem. Darüber hinaus können Sie Befehlszeilentools verwenden, um Statistiken für die Datei abzurufen. Für unsere Website komprimieren wir eine Menge statischer Daten (das gesamte offene Verzeichnis, 13.000 Spiele, automatische Vervollständigung für Millionen von Keywords usw.) und sind von Alexa 95% schneller als alle Websites eingestuft. Faxo-Suche. Wir verwenden jedoch einen eigenen proprietären Webserver. Apache / mod_deflate hat es einfach nicht geschnitten. Wenn diese Dateien in das Dateisystem komprimiert werden, erzielen Sie nicht nur einen Treffer für Ihre Datei mit der minimalen Dateisystemblockgröße, sondern auch den unnötigen Aufwand für die Verwaltung der Datei im Dateisystem, der dem Webserver weniger wichtig sein könnte. Ihr Anliegen sollte der gesamte Speicherbedarf und die Zugriffs- / Dekomprimierungszeit sowie die Geschwindigkeit sein, mit der diese Daten vorkomprimiert werden können. Der Platzbedarf ist wichtig, denn obwohl der Speicherplatz billig ist, möchten Sie so viel wie möglich in den Cache passen.
quelle
Unter Ubuntu mit Apache2 und dem bereits installierten Deflate-Modul (standardmäßig) können Sie die
Deflate-GZIP-Komprimierung in zwei einfachen Schritten aktivieren :Und du bist weg! Ich habe festgestellt, dass Seiten, die ich über meine ADSL-Verbindung bereitgestellt habe, viel schneller geladen wurden.
Bearbeiten: Gemäß dem Kommentar von @ GertvandenBerg wird die gzip-Komprimierung aktiviert und nicht die Luft abgelassen.
quelle
wenn ich mich richtig erinnere
quelle