Frage

Von einem frühen Beitrag zu versuchen, meine Website Leistung Ich habe mich bei der HTTP-Komprimierung zu verbessern. Ich habe über ihre Einrichtung in IIS lesen, aber es scheint eine globale Sache für alle IIS-Applikations-Pools zu sein ich kann das nicht erlaubt sein zu tun, wie es eine andere Stelle auf ihn auch läuft. Ich sah dann einige Codes in global.asax zu setzen, die gleiche Sache auf einer Pro-Website Basis zu erreichen.

Here http://www.stardeveloper.com/articles/display.html?article=2007110401&page=1] 1

Ist das so gut wie die Einrichtung in IIS? Wie dramatisch ist die Wirkung? Bekannte Probleme?

War es hilfreich?

Lösung

Wenn Sie sich darauf, mit dieser zu bewegen, würde ich vorschlagen, eine Httpmodule im Vergleich zu global.asax umzusetzen. Die Httpmodule können Sie Kompression mit einer Konfigurationsänderung über Wiederaufbau deaktivieren und ermöglicht es Ihnen, Affen mit Kompression Assembly von Ihrem Web-App trennen.

Rich-Kran hat eine ziemlich schöne 2.0-Modul hier: http://www.codeplex.com/httpcompression/ wenn Sie wollen aufstehen und laufen schnell.

Die blowery Projekt Steven Rogers erwähnt ist ein Httpmodule als auch.

Ansonsten Ihr eigenes Schreiben ist ziemlich einfach. Ein Httpmodule gibt Ihnen die gleichen Ereignisse wie global.asax -. Beginrequest, Endrequest und feinkörnige Veranstaltungen wie PostReleaseRequestState und PreSendRequestHeaders, die Sie benötigen, um alle Falten auszubügeln

Was IIS Kompression verus Httpmodule, IIS ist auf jeden Fall einfacher, da man auf eine andere Assembly nicht viel Aufhebens machen mit noch. Ich habe beiden Methoden mit Business-Anwendungen verwendet, und beide führen etwa zu gleichen Teilen unter Lasttests. Wenn IIS verfügbar ist, würde ich es sagen verwenden.

Zwischen 60 und 80% Kompression für HTML, JS, CSS und XML-Dateien sind gemeinsam mit gzip. Denken Sie daran, viele Ihrer Nutzlast können Bilder und Multimedia-Objekte sein, die viel schwieriger zu komprimieren sind.

Andere Tipps

http://blowery.org/httpcompress/

Wir haben dieses Komprimierungsprogramm an meinem Job für eine Weile benutzt. Ziemlich gut.

Ich denke, die Global.asax Option ein gut sein wird, wenn Sie in einer Shared-Hosting-Umgebung zum Beispiel sind, wo Sie haben keinen Zugriff auf IIS-Konfiguration.

IIS 6 Basiskomprimierungsunterstützung bietet, aber wenn Sie bereits in IIS 7, bietet es Ihnen große HTTP-Komprimierung Unterstützung, können Sie festlegen, welche Dateien erhalten komprimiert basierend auf ihren MIME-Typ in den Konfigurationsdateien ...

Es erreicht im Wesentlichen dieselbe wie IIS-Komprimierung - sowohl die Reaktion mit gzip-Komprimierung Senden am Ende. Ich habe diese Methode vor kurzem umgesetzt, und es reduziert konsequent Antwortgröße um 60% ohne Auswirkungen auf die Leistung der Mühe wert.

Es gibt ein paar möglichen Probleme. Zunächst müssen Sie die Ausgabezwischenspeicherung vorsichtig sein. Sie müssen eine benutzerdefinierte VaryBy verwenden, um sicherzustellen, dass verschiedene Versionen für Anfragen zwischengespeichert werden, mit verschiedenen Accept-Encoding-Header. Andernfalls, wenn die komprimierte Version im Cache gespeichert wird dann alle Benutzer wird es erhalten, ob ihr Browser es akzeptieren kann.

Zweitens GZipStream wird manchmal die letzten Zeichen aus der Antwort gestutzt, wenn Sie Response.End oder Response.Flush verwenden, da der Strom nicht bis es zu spät ist geschlossen. Ich bin mir nicht bekannt, dass schöne Lösung dieses Problems.

Schließlich wird dies nur Ihre HTML komprimieren. Alle CSS oder Javascript-Dateien werden in der Regel serviert werden. Sie würden müssen, beispielsweise die Dateien über eine benutzerdefinierte dienen IHttpHandler sie zu komprimieren.

Es gibt Probleme mit JavaScript und VBScript. Das JavaScript-Problem wird in einem Kommentar von xxldaniel auf einem Coding Artikel bestätigt wurde, und ich hatte Probleme mit VBScript (für M $ Office Automation) mit einem JSON-like "Scripting.Dictionary" mit "Microsoft.XMLHTTP" Anfrage.

Sie können versuchen, mod_gzip Module. Es verwendet verwaltet ZLib Version und ermöglicht eine hoch einstellbare Konfiguration. Syntax ist kompatibel mit dem gleichen Namen Apache-Modul und sogar erweitert. So zum Beispiel könnten Sie verschiedene Komprimierungsstufe für die verschiedenen MIME-Typen festgelegt und so weiter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top