Moin Moin!
Ich würde gerne mal wieder eine Diskussion vom Zaun brechen, was denn nun "besser", schneller ist:
"It depends."
Kompression, egal ob deflate oder gzip, funktioniert nicht mit jedem Client, obwohl die Unterstützung zunimmt. Wenn Du *alle* Clients bedienen willst, mußt Du ggf. auf Kompression verzichten. Oder Du verzichtest auf Besucher.
Kompression tauscht Bandbreite gegen Rechenzeit (CPU-Last). Für statische Resourcen kannst Du einmalig vorkomprimieren, für dynamische Resourcen klappt das offensichtlich nicht.
Vorkomprimierte, statische Resourcen auszuliefern spart auf dem Server Bandbreite und Rechenzeit, und bürdet das Auspacken dem Client aus, der meistens genügend Rechenleistung und RAM hat. Willst Du Clients bedienen, die Kompression nicht unterstützen, mußt Du jede Resource doppelt vorhalten, einmal komprimiert, einmal unkomprimiert. Alternativ dazu kannst Du Server-Rechenzeit investieren, um nur eine Variante der Resourcen vorzuhalten und die andere ggf. zu komprimieren oder zu dekomprimieren.
Bei dynamischen Resourcen brauchst Du immer Rechenzeit auf dem Server, um sie zu komprimieren. Damit verlangsamst Du die Auslieferung, sparst aber -- gerade bei schmalbandigen Clients (Modem, GPRS) -- Übertragungszeit. Bei breitbandigen Clients spart die Auslieferung kaum Übertragungszeit, aber die Antwortzeit wird durch die Kompression erhöht.
Es bleibt also nur: Messen, messen, messen.
Wenn Du Deine Clients (und insbesondere ihre Anbindung ans Internet) nicht kennst, ist keine sinnvolle, eindeutige Aussage möglich, ob Du komprieren solltest oder nicht.
Ob Du nun gzip oder deflate nimmst, hängt hauptsächlich davon ab, was Deine Clients unterstützen und wie viel Arbeit es Deinem Server macht. Deflate ist IMHO geringfügig weniger Aufwand, aber komprimiert nicht ganz so stark wie gzip.
Auch hier ist keine eindeutige Aussage möglich, ob gzip oder deflate zu bevorzugen ist. Es hängt von den Clients und der verfügbaren Rechenleistung des Servers ab.
Alternativ zur Komprimierung wäre auch zu überlegen, Dinge wegzulassen. Google liefert z.B. die meisten Text-Resourcen (HTML, JS, CSS) ohne jeden nicht notwendigen Leerraum aus und verzichtet auf jeden unnötigen Schnickschnack. Das spart pro Aufruf nur ein paar hundert Bytes, aber bei deren Besucherzahlen dürfte das etliche Gigabytes pro Tag sparen.
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".