Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

HTTP Komprimierung in IIS5

Geschrieben von: Christoph Wille
Kategorie: Optimierung

Heute beschäftigen wir uns mit einem Feature des IIS 5, das wahrscheinlich kaum jemand kennt - HTTP Komprimierung. Dabei komprimiert IIS alle ausgehenden Dateien mit dem GZIP oder Deflate Algorithmus, was speziell für Bandbreiten-beengte Server mit viel statischem Inhalt einen enormen Geschwindigkeitsgewinn bringt (eine HTML Seite kann sehr gut komprimiert werden).

Die Komprimierung an sich ist kein Microsoft-spezifisches Feature, nein, alle modernen Browser die HTTP 1.1 verstehen, können mit den Komprimierungsalgorithmen GZIP oder Deflate umgehen. Allerdings fehlte bis IIS5 das Komprimierungsfeature am Server - nun ist es in Form eines Filters permanent installiert, allerdings standardmäßig deaktiviert.

Die Komprimierung aktivieren

Wie gesagt, standardmäßig ist die Komprimierung ausgeschaltet. Da sich jetzt einige wundern werden, wo Sie denn das Feature übersehen haben, hier die Antwort - in den Standardeigenschaften des WWW Services in den Servereinstellungen. Also dort, wo man alle heiligen Zeiten einmal nachschaut.

Daher alles schön Schritt für Schritt. Server auswählen, rechte Maustaste klicken, den Eintrag Properties auswählen.

In der folgenden Dialogbox WWW Service in der Master Properties Dropdown ausgewählt lassen, und Edit klicken. Nun sind wir in den Master Eigenschaften, und die Komprimierung versteckt sich gekonnt im Service Tab:

Es gibt 2 Optionen, die für alle Sites des Servers Geltung erlangen:

  • Compress application files: Ausgewählt, wird der Output von dynamisch erstellten Inhalten (ASP, DLL, EXE) vor dem Versenden zum Client on-the-fly komprimiert. Nur dann ratsam, wenn man wirklich viel Rechenpower hat, aber eine kleine Leitung.
  • Compress static files: Ausgewählt, werden statische Inhalte komprimiert zum Client gesendet, allerdings wird die komprimierte Datei zur Optimierung in einem Cache gespeichert. Jeder weitere Aufruf wird aus dem Cache bedient. Standarmäßig werden Dateien mit den Endungen HTML, HTM und TXT komprimiert.

Das Cacheverzeichnis für statische Dateien muß auf einer NTFS Disk liegen, die Directory Compression ausgeschaltet hat. Dieses Verzeichnis dient nur für statische Dateien, da dynamische Inhalte generell nicht gecacht werden - hier wird per Request komprimiert.

Feineinstellungen

Die Auswahl der Dateitypen, die als komprimierbar eingestuft werden, könnte man als willkürlich bezeichnen. Was zum Beispiel ist mit XML? Oder Officedokumenten? Alle diese könnten bei Komprimierung die Bandbreite deutlich entlasten, und weil sie komprimiert gecacht werden, ist die Komprimierung keine große Belastung für den Webserver.

Die Einstellungen für den Komprimierungsfilter finden sich allesamt in der Metabase des IIS. Es gibt zwar Administrationsscripts zur Manipulation von Einträgen in der Metabase, allerdings bin ich zu faul, mir schon wieder irgendwelche Kommandozeilenparameter zu merken (wer es dennoch möchte, die alternative Methode wird im referenzierten Artikel "Using HTTP Compression On Your IIS 5.0 Web Site" beschrieben).

Ich habe mich für MetaEdit entschieden, ein Tool aus dem Windows 2000 Server Resource Kit (ohne Werbung zu machen, ein vernünftiges Überleben ohne Resource Kit ist unter Windows 2000 nicht möglich). Man bekommt einen nette Baumstruktur der Metabase, und kann zum gewünschten Branch navigieren (siehe auch Screenshot):

/LM/W3Svc/Filters/Compression/GZIP/HcFileExtensions 

Ein einfacher Doppelklick, und schon kann man die Dateierweiterungen bequem editieren:

Achtung Falle: da zwei Komprimierungsalgorithmen zur Anwendung kommen, muß man den HcFileExtensions Eintrag sowohl in GZIP als auch Deflate updaten! Sonst gibt es unliebsame Überraschungen - wie zB keinerlei sichtbaren Erfolg.

Wenn man alle Änderungen durchgeführt hat, und MetaEdit wieder geschlossen hat, fehlt noch eine Kleinigkeit: man muß den IIS veranlassen, die Änderungen zu laden. Dies macht man dann mit Hilfe des IISRESET Utilities (das ist bei Windows 2000 standardmäßig dabei):

IISreset.exe /restart 

Nachtragen muß ich noch den Eintrag für Dateiendungen der dynamischen Komprimierung: HcScriptFileExtensions. Wenn man spezielle ASP Dateien komprimieren möchte, würde ich empfehlen, vorher eine neue Dateiendung auf die ASP Engine zu mappen, und dann hier einzutragen. Dadurch wird die Komprimierung nur für spezielle - nicht als ASP erkennbare - Dateien ausgeführt, und nicht für alle ASP Dateien (was performancemäßig einen Prozessor und somit den Webserver umbringen könnte).

Der Client

Um mir Anfragen der Leserschaft zu ersparen, hier die Beantwortung der Frage "Muß man am Client etwas einstellen, damit das funktioniert?". Nein. Jeder HTTP 1.1 Client beantragt automatisch Komprimierung, und nun bekommt er sie auch von Ihrem Webserver. Für den Benutzer ist alles völlig transparent.

Schlußbemerkung

Für die Komprimierung von statischen Inhalten kann ich eine eindeutige Empfehlung aussprechen - hilft's nicht, so schadet es auch nicht. Bei der Komprimierung von dynamischen Inhalten muß man sehr genau auf die Leistungsfähigkeit des Servers achten, weil man könnte unter Umständen mehr Unheil anrichten als Nutzen ziehen.

Verwandte Artikel

Output Caching 101
Serverseitiges Caching mit XCache
Trafficreduzierung mit XCompress
Virtuelle Verzeichnisse umbenennen
Webserver-Tuning mit XTune

Links zu anderen Sites

Using HTTP Compression On Your IIS 5.0 Web Site

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©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.