Inhalte komprimieren

Bei Bedarf komprimiert der Webserver zunächst die ausgelieferten Inhalte und sendet sie dann in dieser kompakteren Form an den Anfragenden. Der Browser entpackt die Inhalte vor dem Anzeigen. Ziel bei diesem Vorgehen ist, möglichst wenig Daten vom Server zum Endgerät zu übertragen. Der Vorteil liegt darin, dass derzeit etwa 90 Prozent aller Webbrowser komprimierte Inhalte verstehen und diese im laufenden Betrieb entpacken.

Die Rechenleistung der beteiligten Geräte gibt diese Umstellung heute oft problemlos her. Das Aktivieren der entsprechenden Apache-Module nehmen Sie über das Kommando a2enmod vor. Zur Verfügung stehen zwei unterschiedliche Verfahren – einerseits ein echtes Komprimieren der Inhalte über das Apache-Modul mod_deflate [14] und andererseits das Übermitteln bereinigter Inhalte mittels mod_tidy [15]. Beide Module fungieren dabei als Filter für die Ausgabe.

Dabei lohnt es sich, nur die textbasierten Formate zu berücksichtigen, wie HTML, CSS, Javascript, XML und JSON. Bilder und andere Binärdaten liegen oft bereits komprimiert vor – hier würde der zusätzliche Schritt zum Komprimieren nur Rechenzeit vergeuden. Welche Formate mod_deflate konkret berücksichtigt, legen Sie in der Datei /etc/apache2/mods-available/deflate.conf fest (Listing 6). Das Benennen der Formate entspricht der üblichen Schreibweise gemäß dem MIME-Standard.

Listing 6

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Das Modul mod_tidy hingegen entfernt vor dem Ausliefern an den Browser aus den Daten alle Kommentare, Leerzeilen und Umbrüche. Das betrifft selbst Copyright-Informationen und Angaben zu Lizenzen, die als Kommentare hinterlegt sind. Damit geht verloren, ob und vor allem wie Sie es anderen erlauben, die vom Webserver bezogenen Codeschnipsel weiter zu verwenden.

Eine hübsche Struktur des Dokuments ist nur für Sie als Autoren und Entwickler wichtig – den Webbrowser interessiert sie nicht. Er interpretiert lediglich den an ihn übermittelten Datenstrom. Die durch den Einsatz des Moduls erzielten Einsparungen im übertragenen Datenvolumen variieren stark und lagen in Tests um die 10 bis 25 Prozent.

In eine ähnliche Richtung – jedoch deutlich drastischer – geht RabbIT [16]. Dahinter verbirgt sich ein Caching Proxy, der ebenfalls Inhalte von Webseiten filtert. Gleichzeitig komprimiert er ausgewählte Inhalte wie Text und Bilder. Daneben beherrscht er noch das Herausfiltern von Werbung sowie von Hintergrundbildern.

RabbIT steht derzeit nicht als Debian-Paket bereit, sondern lediglich als Quellcode. Da die Entwickler dabei auf die Programmiersprache Java setzen, sollte die Software weitestgehend problemlos auf den einzelnen Distributionen ihren Dienst verrichten. Achten Sie dabei darauf, dass die verwendete Java Virtual Machine (JVM) für einen entsprechenden Durchsatz optimiert ist. Als Referenzwert bietet sich ein Vielfaches der Garbage Collection an.

SPDY oder HTTP/2

Helfen die zwischengeschalteten Filter nicht mehr, dann verbessert unter Umständen der Wechsel des verwendeten Protokolls zum Übertragen der Daten die Reaktionszeit. Im Januar 2015 wurde das Protokoll HTTP/2 als Nachfolger von HTTP 1.1 offiziell freigegeben [17]. Dabei übernahmen Mozilla, Google und die Google-Ausgründung Twist die Führung.

In das Konzept von HTTP/2 flossen die Erfahrungen aus dem SPDY-Protokoll mit ein, mit dem Google zwischenzeitlich versucht hatte, die Übertragung zu optimieren [18]. Dabei empfiehlt die Spezifikation, jede Verbindung mittels TLS zu verschlüsseln. Ob das tatsächlich die Sicherheit erhöht, darf man bislang bezweifeln, da HTTP/2 noch nicht so ausgereift wirkt wie seine Vorgänger [19]. Derzeit kommt HTTP/2 bereits bei Google Chrome, Firefox ab Version 35 und Internet Explorer (bereits aktiviert) zum Einsatz. Für die Webserver Apache und Nginx stehen passende Module zur Erweiterung bereit, um die Kommunikation von der Seite des Servers zu vereinfachen.

Diverse Tests zeigen, dass HTTP/2 schneller agiert als SPDY, obwohl die Antworten oft größer ausfallen. Das liegt daran, dass parallele Verbindungen zum Einsatz kommen (mehrere UDP-Verbindungen über eine einzige TCP-Verbindung) und andererseits die verwendete HPACK-Kompression kleinere GET-Requests erzeugt [20].

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 03/2018 NEUE DISTRIBUTIONEN

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Internet abschalten
Karl-Heinz Hauser, 20.02.2018 20:10, 0 Antworten
In der Symbolleiste kann man das Kabelnetzwerk ein und ausschalten. Wie sicher ist die Abschaltu...
JQuery-Script läuft nicht mit Linux-Browsern
Stefan Jahn, 16.02.2018 12:49, 2 Antworten
Hallo zusammen, ...folgender goldener Code (ein jQuery-Script als Ergebnis verschiedener Exper...
XSane-Fotokopie druckt nicht mehr
Wimpy *, 30.01.2018 13:29, 2 Antworten
openSuse 42.3 KDE 5.8.7 Seit einem Software-Update druckt XSane keine Fotokopie mehr aus. Fehler...
TOR-Browser stürzt wegen Wikipedia ab
Wimpy *, 27.01.2018 14:57, 0 Antworten
Tor-Browser 7.5 based on Mozilla Firefox 52.8.0 64-Bit. Bei Aufruf von http: oder https://de.wi...
Wifikarte verhindert Bootvorgang
Maik Kühn, 21.01.2018 22:23, 1 Antworten
iwlwifi-7265D -26 failed to load iwlwifi-7265D -25 failed to load iwlwifi-7265D -24 failed to l...