Blog

20. November 2017

Schnellere Ladezeiten für Debian 8 – mit HTTP/2

Debian 8 schneller mit HTTP2

Die Webserver aus Debian 8 sind standardmäßig nicht mit HTTP/2 kompatibel. Da das neue Kommunikationsprotokoll HTTP/2 die Ladezeiten optimiert, haben wir eine Möglichkeit evaluiert, damit unsere Kunden die Vorteile von HTTP/2 mit dem Betriebssystem Debian 8 nutzen können.

Welche Vorteile bietet HTTP/2?

Die 2015 veröffentliche Weiterentwicklung HTTP/2 des Hypertext Transfer Protocol (HTTP) bewirkt einige Vorteile, insbesondere für die Performance. Der Performancevorteil liegt in der Übertragungsart begründet. Anders als bei HTTP/1.1 erfolgt die Kommunikation bei HTTP/2 nicht mehr über separate TCP-Verbindungen für jede parallele Anfrage. Bei dem neuen Protokoll wird die Kommunikation zwischen Browser und Server durch ein sogenanntes Multiplexing zusammengefasst und über eine einzige TCP-Verbindung verschickt. Die Daten werden in TCP-Paketen übertragen und nach der Priorität geladen, die der Browser vorgibt. Dies beschleunigt die Seitenübertragung und führt damit letztendlich zu besseren Ladezeiten der gesamten Webanwendung.

Des Weiteren werden unter HTTP/2 die Daten in dem Header, welcher wichtige Zusatzinformationen enthält, komprimiert. Auf diese Weise verringert sich der Datenverkehr. Ein weiterer Vorteil des neuen Protokolls ist der Server Push. Dabei kann der Server proaktiv auf vorhersehbare Anfragen des Browsers reagieren. Er sendet die voraussichtlich zukünftig benötigten Ressourcen vorzeitig an den Browser. Hierdurch lassen sich Seiteninhalte noch vor dem eigentlichen Seitenaufruf laden. Wird die Seite dann aufgerufen, fallen die Ladezeiten folglich sehr kurz aus.

In HTTP/1.1 optimierten häufig alternative Methoden die Übertragung und führten so zu schnelleren Ladezeiten. Dazu gehören CSS-Sprites (mehrere Bilder zu einem Zusammenfügen und erst im Browser wieder aufteilen), Code-Inlining (Einfügen externer Bibliotheken direkt in die Seite) oder auch Domain-Sharding (Aufteilen der Ressourcen auf verschiedene Domains, um die Anzahl maximaler TCP-Verbindungen zu erhöhen). Diese Methoden benötigten einen stark erhöhten Entwicklungsaufwand und belegten zusätzliche Ressourcen auf Browserseite. Das schränkte insbesondere leistungsschwache Endgeräte ein. HTTP/2 benötigt diese alternativen Methoden nicht.

Welche Voraussetzungen sind für die Nutzung von HTTP/2 erforderlich?

In erster Linie müssen sowohl der Browser als auch der Webserver HTTP/2 unterstützen. Dafür ist eine SSL- bzw. TLS-Verschlüsselung zwingend erforderlich. Die meisten Browser können bereits seit 2015 mit dem neuen Protokoll kommunizieren. Hier ist es erforderlich, die Browser auf die neueste Version zu aktualisieren.

In der folgenden Tabelle von caniuse.com werden die verschiedenen Browser und ihre Kompatibilität dargestellt.

Quelle: caniuse.com, 2017

Gängige Webserver unterstützen ebenfalls das neue Protokoll. NGINX und Apache beispielsweise haben die HTTP/2 Unterstützung bereits in ihren neuen Versionen integriert: Apache ab Version 2.4.17 und NGINX ab Version 1.9.5. Die Webserver benötigen für die Nutzung von HTTP/2 eine aktuelle Version der Bibliothek „OpenSSL“. Für Apache und NGINX muss diese ab Version 1.0.2 oder höher installiert werden, damit HTTP/2 vollständig unterstützt werden kann. Nicht alle gängigen Server-Betriebssysteme verfügen daher standardmäßig über die notwendigen Voraussetzungen.

Debian liefert die notwendige Software ab Debian 9 aus. Ubuntu ab Version 16.04. CentOS und RHEL liefern zum Zeitpunkt ihrer aktuellen Version noch kein Apache mit HTTP/2 Support als Paket. Windows unterstützt HTTP/2 mit dem proprietärem Webserver IIS ab der 2016er Version. Dagegen lässt sich HTTP/2 unter Debian 8 standardmäßig nicht verwenden. Da dieses Betriebssystem jedoch sehr weit verbreitet ist und auch viele unserer Kunden dieses Betriebssystem beibehalten möchten, evaluierten wir eine Lösung, um HTTP/2 auch unter Debian 8 nutzbar zu machen.

Welche Voraussetzungen müssen für Magento erfüllt sein?

Magento stellt grundsätzlich keine Anforderungen, um HTTP/2 zu verwenden. Es wird lediglich ein kompatibler Webserver benötigt. Dennoch empfehlen wir bei Magento die Funktion zum Zusammenfügen von JavaScript und CSS in den Einstellungen unter Configuration→Developer→CSS Settings→Merge CSS Files zu deaktivieren. Diese Funktion wird durch das Multiplexing von HTTP/2 überflüssig.

Gibt es Nachteile bei HTTP/2? Welche Aufwände entstehen?

Bei HTTP/2 gibt es im Grunde genommen keine Nachteile, es müssen lediglich die beschriebenen Voraussetzungen erfüllt sein. Der Aufwand besteht darin, die notwendigen Versionen des Webservers Apache oder NGINX zu installieren. Je nach Webserver muss im Anschluss nur noch HTTP/2 aktiviert werden. Im Fall von Apache muss beispielsweise das Modul mod_http2 aktiviert und anschließend das HTTP/2-Protokoll eingeschaltet werden. Diesen gesamten Prozess haben wir automatisiert. Zudem können Browser und Server bei Bedarf auch weiterhin via HTTP/1.1 oder HTTP/1.0 kommunizieren, wodurch eine Abwärtskompatibilität zu älteren Browsern und Endgeräten gegeben ist.

HTTP/2 unter Debian 8 nutzen

Als eCommerce Hoster ist es maxcluster wichtig, seinen Kunden möglichst wirtschaftliche Lösungen und deshalb HTTP/2 auch in Verbindung mit Debian 8 anzubieten. Dafür haben wir eine Möglichkeit evaluiert, mit welcher HTTP/2 auch unter Debian 8 funktioniert.
Die Apache- und NGINX-Webserver von Debian 9 werden zusammen mit der benötigten Version von OpenSSL unter Debian 8 installiert. Da die OpenSSL Bibliotheken sich parallel installieren lassen, gibt es hier keine Schwierigkeiten mit der bereits installierten Version aus Debian 8. So lassen sich auch auf Basis von Debian 8 Softwarepakete aus Debian 9 auf dem Server installieren, die für HTTP/2 erforderlich sind – ohne ein Abhängigkeitsproblem der Pakete zu erzeugen. Auch für die nötigen Sicherheitsupdates von Apache, NGINX und OpenSSL ist über die Debian 9 Repositories gesorgt.

Unsere Empfehlung

Wir empfehlen unseren Kunden, in einer Testumgebung die korrekte Auslieferung ihrer Anwendung zu überprüfen – mit Bedacht auf die unterschiedlichen Browser und Mobilgeräte. In unserem Interface „Managed Center“ lässt sich die Nutzung von HTTP/2 unter Debian 8 bequem und einfach aktivieren (siehe Screenshot 1).

HTTP2 im maxcluster Interface aktivieren

Screenshot 1: Einfache Aktivierung von HTTP/2 im maxcluster Interface „Managed Center“

Dazu muss nur das Feld HTTP/2 in den Menüpunkten Apache oder NGINX ausgewählt werden. Bei Apache wird durch das Aktivieren von HTTP/2 gleichzeitig ein Update des Webservers auf Version 2.4.17 durchgeführt. HTTP/1.1 und  HTTP/1.0 bleiben für ältere Browser selbstverständlich ebenfalls aktiv.

Wir empfehlen nach der Aktivierung von HTTP/2, die Conversion-Rate zu überprüfen. Dadurch lassen sich die positiven Auswirkungen der Umstellung auf den eigenen Shop abschätzen. Einige unserer Kunden konnten bereits nach der HTTP/2-Umstellung von der optimierten Performance durch erhöhte Conversion-Rate profitieren.

Teile diesen Beitrag