Geschrieben von: Christoph Wille
Kategorie: Optimierung
This printed page brought to you by AlphaSierraPapa
Der Traffic einer Site wächst mit deren Popularität, und irgendwann erreichen die Kosten für den Datentransfer eine Höhe, wo man sich Optionen überlegen sollte. Ein einfacher und schnell umgesetzter Ansatz ist die HTTP Komprimierung, die den Traffic deutlich reduzieren kann.
Auf AspHeute haben wir im Artikel HTTP Komprimierung in IIS5 bereits über die Bordmittel von IIS 5 geschrieben, mit denen man HTTP Komprimierung gratis implementieren kann. Warum also auf eine kommerzielle Lösung wie XCompress setzen?
Der Compression Filter von IIS 5 hat einige Schwächen, die im Artikel HTTP Komprimierung in IIS5 angesprochen werden: die Aktivierung ist nur per Server möglich, die Implementierung hauptsächlich auf statische Inhalte ausgerichtet, und die Definition von welche Inhalte/Dateitypen komprimiert werden sollen höchst umständlich. Hier kommt uns XCompress sehr entgegen:
Den Installationsschritt kann ich mir für diesen Artikel ersparen, da XCompress mit einem InstallShield Installer ausgeliefert wird, der alle Arbeit übernimmt. Um für eine Site die Komprimierung zu aktivieren, müssen Sie im Start Menü auf XCompress / XCompress Manager gehen. Dies ist im Prinzip der altbekannte ISM (Internet Services Manager), nur haben wir bei den Siteeigenschaften einen Propertytab mehr:
Ich habe die Komprimierung bereits aktiviert, die Typen sind die von XCompress vorgegebenen. Text kann klarerweise am besten komprimiert werden, nicht empfehlen werden sich Bildtypen wie JPEG oder ZIP Dateien. Da die Komprimierung auf MIME Types achtet, ergeben sich nicht mehr die Probleme wie mit dem IIS 5 Compression Filter, der auch ASP Dateien komprimiert hat, die andere als Textdaten zurückgeliefert haben.
XCompress ist als ISAPI Filter ausgeführt, bekommt also alle Requests mit, die der Web Server abarbeitet. Ein normaler Webserver ohne XCompress liefert folgende Response Header:
Die aufgerufene ASP Datei ist ein kleines aber hilfreiches Debuggingscript für die Header, die der Client (also meistens der Browser) schickt:
<%=Request.ServerVariables("all_http")%>
Ist XCompress installiert, dann modifiziert es den Server Header:
Zu Demonstrationszwecken schicke ich hier den ACCEPT_ENCODING Header vom Client aus mit: dieser weist den Server an, daß der Client komprimierten Content annehmen kann. Schickt der Browser diesen Header nicht, tritt XCompress auch nicht in Aktion. Will man Browser überwachen, dann benötigt man einen Proxy, wie im Artikel Mitlauschen bei der Browser-Webserver Kommunikation gezeigt.
Ein weiterer Vorteil gegenüber dem Compression Filter ist das gut ausgebaute Monitoring. Dies läuft wie immer über den Performance Monitor, und man kann die Counter per Website analysieren. Zu finden sind diese unter der Gruppierung XCompress:
Zum Beispiel sieht man hier die Gesamtanzahl der komprimiert ausgelieferten Requests der Website über die Zeit aufgetragen:
Eine detaillierte Auflistung der Counter finden Sie in der Hilfedatei von XCompress (Tip: die FAQs und White Papers in der Hilfe lesen!).
Obwohl IIS 5 mit einem Compression Filter ausgeliefert wird, gibt es dennoch gute Gründe nach einer anderen Lösung zu greifen. Meine zwei Hauptpunkte für XCompress: Komprimierung von POST Requests und die Komprimierung basierend auf dem MIME Type.
This printed page brought to you by AlphaSierraPapa
Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20020731.zip
Einführung in Performance Monitoring
http:/www.aspheute.com/artikel/20000428.htm
HTTP Komprimierung in IIS5
http:/www.aspheute.com/artikel/20001115.htm
Mitlauschen bei der Browser-Webserver Kommunikation
http:/www.aspheute.com/artikel/20020305.htm
Serverseitiges Caching mit XCache
http:/www.aspheute.com/artikel/20000817.htm
XTune Revisited
http:/www.aspheute.com/artikel/20011002.htm
C# Http Compression Module
http://www.blowery.org/code/HttpCompressionModule.html
XCompress
http://www.xcache.com/
©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.