Warum sind Funktionen wie gzip auf vielen Webservern nicht standardmäßig aktiviert?


7

Nachdem ich mit mehreren Webservern online gespielt habe, habe ich Dinge wie goDaddy gesehen, die gzip standardmäßig nicht aktivieren. Gleiches gilt für einige IIS-Drops, Standardinstallationen von Apache usw.

Ich laufe weiterhin auf Servern, auf denen es keine grundlegenden Dinge gibt, die die Geschwindigkeit Ihrer Website verbessern.

Dies führt mich zu zwei Optionen: Jeder, der Webserves-Pakete schlecht erstellt, oder ich verstehe einfach nicht, warum er dies getan hat. Es ist viel wahrscheinlicher, dass ich nicht weiß, warum sie das nicht tun.

Könnte mich jemand aufklären, warum Sie Webserver mit deaktivierten Funktionen wie gzip und verschiedenen Cache-Steuerungs-Headern versenden würden?

Ich dachte, schnellere Websites wären das Ergebnis davon, wie mir ySlow und PageSpeed ​​ständig sagen. Was sind die Nachteile?


Vielleicht habe ich darüber nachgedacht, aber ich hatte das Gefühl, dass es Überschneidungen mit nicht serverbasierten Webtechnologien gibt.
Inkognito

Ich denke nicht, dass dies eine konstruktive Frage zu Server Fault wäre. Ich bin mir nicht sicher, ob es hier konstruktiv ist, um ehrlich zu sein.
ChrisF

1
@ChrisF Könnten Sie genauer sein? Ich frage, was Versand-Software in einer Konfiguration ohne Optimierungsangebote verdient. Spezifisch für sehr beliebte Techniken. Diese Techniken verfügen sogar über mehrere Tools, die speziell zur Messung der Qualität entwickelt wurden. Warum wird es für etwas so scheinbar Wichtiges gegen den Strich gemacht? Haben Sie ehrlich gesagt das Gefühl, dass es hier nichts zu lernen gibt, was eine Kanone für die Website ist?
Inkognito

1
@ChrisF Es wäre in Ordnung, auf ServerFault zu haben. Bring es vorbei, wir kümmern uns darum.
Wesley

1
@ChrisF Ich habe im Chat gefragt und der Konsens ist, dass es dort drüben gehört. Bitte migrieren Sie zu ServerFault. Vielen Dank. chat.stackexchange.com/transcript/message/1512234#1512234
Incognito

Antworten:


6

"Ressourcen" - RAM und CPU sind erforderlich, um Ihre Inhalte im laufenden Betrieb zu komprimieren ... ein wenig, aber Ressourcen auf ein oder zwei Websites sind trivial, aber auf 1000 oder mehr ... kann es unkonventionell werden. Außerdem - der Kommentar von Falcon ist gültig - möchten Anbieter die ausfallsichere "Bare Bones" -Konfiguration als Standard.

-sean

UPDATE: Ich habe auch vergessen: Die zusätzliche Ausführungszeit bei jeder Anforderung, auch die eigentliche Komprimierung durchzuführen - es gibt den zusätzlichen Speicher, der beim Laden von mod_deflate [deflate_module] verwendet wird, sodass im Allgemeinen jeder Prozess etwas dicker und ein wenig wird etwas langsamer. ~ wie ich schon sagte, im Allgemeinen trivial, aber wenn Sie zunächst auf Ressourcen angewiesen sind ...


Ich möchte das in "den falschen Mythos der Serverressourcen" ändern. Normalerweise belastet die HTTP-Komprimierung moderne Server nur vernachlässigbar. SSL, das um eine Größenordnung CPU-anspruchsvoller sein kann als Gzip, macht immer noch häufig <5% der Server-CPU-Auslastung aus. Und wenn es einen Extremfall gibt, in dem ein Webserver aufgrund von CPU + RAM-Last nicht in der Lage ist, Gzip zu komprimieren, platzieren Sie entweder einfach einen Caching-Proxyserver davor oder komprimieren Sie Textinhalte über eine geplante Aufgabe (cron) vor. .
Jesper M

2

Ein Grund könnte die IE6-Kompatibilität sein. IE6 unterstützt zwar gzip, jedoch nur bis zu einer komprimierten Größe von 65535 Byte.

Wenn Ihre Seite größer ist, wird der Rest ohne Erklärung abgeschnitten. Aber hier ist der lustige Teil: Es passiert nur, wenn die Seite aus dem Datei-Cache geladen wurde, nicht, wenn sie über das Netzwerk empfangen wurde, was das Debuggen des gesamten Chaos schwierig macht.

Es kann umgangen werden, indem die Header der Anforderung verarbeitet werden. Manchmal gibt es jedoch einen transparenten Proxy mit IE6, z. Virensoftware. Der Proxy ändert keinen User-Agent-Header, sodass Sie ziemlich viel Pech haben. Gut, dass IE6 fast ausgerottet ist.

Ich bin mir nicht sicher, ob alle Versionen betroffen waren oder nur einige, aber das oben Genannte war der Grund, warum die Website, für die ich arbeite, für lange Zeit gzip deaktiviert hatte.


stimme Tom zu, IE6-Kompatibilitätsprobleme sind jetzt ein Witz.
Grufftech

1

Möglicherweise liegt dies daran, dass GZip nicht von jedem Browser unterstützt wird. Diese Erklärung ist falsch: Ein Server kann basierend auf dem Accept-EncodingHeader der Anforderung abwärtskompatibel sein. Dies gibt an, ob der Browser GZip-komprimierten Inhalt akzeptieren kann.

Eine mögliche Erklärung ist, dass nicht alles komprimiert werden muss. Warum sollten Sie eine ZIP-Datei oder ein JPEG-Bild komprimieren? Bestenfalls wird die Größe gleich sein. Im schlimmsten Fall wird es größer.

Ein weiterer Faktor ist die serverseitige Leistung. Es ist besser, den Entwickler die Komprimierung aktivieren zu lassen, wenn dieser Entwickler die Auswirkungen auf die CPU und die Vor- und Nachteile von ZGip für einen bestimmten Inhalt kennt.


Sie haben absolut Recht, wenn Sie ZIP, JPEG usw. nicht doppelt komprimieren. Dies ist jedoch ziemlich leicht zu vermeiden. Alle wichtigen Webserver (mindestens IIS, Apache, Nginx, die mir bekannt sind) haben Möglichkeiten zu steuern, welche Inhaltstypen (MIME-Typen / Erweiterungen) komprimiert werden dürfen.
Jesper M

Es ist einfacher zu schließen MIME - Typen zu komprimieren als ausschließen MIME - Typen ohne Komprimierung zu senden. Wenn sich eine Person für die Komprimierung interessiert, würde sie diese aktivieren. Wenn sich eine Person nicht darum kümmert oder nichts davon weiß, bleibt sie für vom Server unbekannte Typen aktiviert, was die Gesamtleistung des Servers verringert.
Arseni Mourzenko

0

Ich denke, es ist aus Kompatibilitätsgründen. Einige Clients können es nicht dekomprimieren und in einigen seltenen Fällen kann es die serverseitige Funktionalität beeinträchtigen. Die Anbieter möchten wahrscheinlich eine ausfallsichere Standardkonfiguration.


1
Ich glaube nicht: Wenn Sie eine Anfrage stellen, gibt ein Browser an, ob GZip akzeptiert wird (Beispiel :) Accept-Encoding:gzip,deflate,sdch, was bedeutet, dass der Server nur dann GZip-Inhalte kann, wenn diese unterstützt werden und kompatibel bleiben.
Arseni Mourzenko

0

Je weniger Anweisungen ein Webserver ausführen muss, desto mehr Anforderungen können bearbeitet werden.

Für die Ausführung der gzip-Komprimierung sind Anweisungen erforderlich, sodass sie verlangsamt wird. Wenn Sie es möchten, können Sie es einschalten.


0

Meine Antwort mag albern und kontrovers sein, aber können Sie sich vorstellen, wie viel Umsatz Unternehmen wie Amazon vermissen werden, wenn die HTTP-Komprimierung standardmäßig aktiviert ist? Der Datenverkehr ist ein wesentlicher Bestandteil der monatlichen Rechnung, und all diese erholsamen APIs transportieren Tonnen von Daten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.