Performance Best Practice im Zeitalter von HTTP2

HTTP/2 Performance

Neue Möglichkeiten zur Geschwindigkeitssteigerung

HTTP, das Hypertext Transfer Protocol, kann getrost als eins der Urgesteine des Internets bezeichnet werden. Mit der Begründung des Internets hat Tim Berners Lee das Übertragungsprotokoll im Jahr 1991 veröffentlicht. die fundamentale Bedeutung von HTTP für das Internet lässt sich nachvollziehen, wenn man sich nur einmal die Aktualisierungspolitik anschaut. Nach seiner Einführung wurde das Protokoll im Jahr 1999 ein erstes Mal behutsam auf die Version HTTP/1.1 aktualisiert und blieb dann weitere 16 Jahre bis 2015 unangetastet. HTTP/2 bringt dann allerdings einige fundamentale Neuerungen mit, die zum einen auf die rapide Veränderung des Internets reagieren, gleichzeitig aber die Tore für weitere Neuerungen weit aufstoßen, ohne dabei unzuverlässig zu werden.
Wir werfen einen Blick auf die Neuerungen, die HTTP/2 mitbringt, um die Performance vieler Webseiten zu verbessern.

Neuerungen in HTTP/2

HTTP stammt aus einer Zeit, in der das Internet noch ohne Bilder und Multimedia-Dateien auskam. Die verfügbaren Internetseiten waren ganz auf den Text ausgerichtet und Dinge wie CSS oder Javascript waren völlig unbekannt. Die großen multimedial geprägten Sites mit responsiven oder skalierbaren Designs zeigten zunehmend die Grenzen von HTTP/1.1 auf und so wurde es Zeit für eine grundlegende Überarbeitung, die zur Performance-Verbesserung unter anderem folgende Eigenschaften mitbringt:

Multiplexing

Mit dem sogenannten Head-of-Line Blocking löst HTTP/2 eines der gravierendsten Probleme seiner Vorgängerversion. HTTP/1.1 überträgt eine Internetseite streng nach einer festgelegten Reihenfolge. Bei einfachen Seiten stellt dies kein Problem dar. Ein umfangreiches Skript oder sehr große Elemente können den Seitenaufbau bei diesem Verfahren aber extrem Verlangsamen. In der Client-Server-Kommunikation mit HTTP/1.1 wurde diese Unzulänglichkeit dadurch umgangen, indem einfach mehrere TCP-Verbindungen zu einer Seite aufgebaut wurden, was die Serverlast jedoch unnötig in die Höhe treibt.

HTTP/2 erlaubt vollständiges Multiplexing, also das parallele Laden verschiedener Seitenbestandteile über eine einzige TCP-Verbindung.

Header Compression

Mit HTTP/2 wird nicht mehr bei jedem Aufruf der Header eine Webseite neu übertragen. Vielmehr wird eine Indexdatei angelegt, in der bereits empfangene Header gespeichert werden. Bei einem Seitenaufruf überträgt der Server also zunächst nur den Headerindex. It dieser bereits in der Datei enthalten, muss der vollständige Header nicht mehr gesendet werden, was die Zugriffszeiten verkürzt.
Neue oder veränderte Header werden weiterhin vollständig übertragen.

Server Push

Server Push ist ein Feature, das sich im Moment noch in einer eher experimentellen Phase befindet. Bei der herkömmlichen Client-Server-Kommunikation wartet der Server strikt jeden Aufruf ab, bevor er tätig wird. Mit Server Push erhält der Server die Eigenschaften von sich aus Informationen zu senden, die er für nötig hält. So nimmt ein Server mit diesem Verfahren nach einem Seitenaufruf beispielsweise automatisch an, dass ein Stylesheet benötigt wird, und versendet es ohne weitere Aufforderung.

HTTPS

HTTP/2 setzt zum Betrieb zwingend die Aktivierung von HTTPS, also eines verschlüsselten Protokolls voraus. Vom Blickwinkel der Geschwindigkeitsoptimierung mag dies widersinnig sein, da HTTPS-Verbindungen in der Regel etwas langsamer sind als unverschlüsselte Verbindungen. Aber die geänderten Umstände der weltweiten Kommunikation machen den Gebrauch eines verschlüsselten Protokolls unverzichtbar. Und durch die anderen mit HTTP/2 eingeführten Änderungen macht sich ein eventueller Geschwindigkeitsverlust durch HTTPS normalerweise nicht bemerkbar.

Konsequenzen für die Best Practice

Mit diesen Neuheiten ist die Performance-Optimierung von Webseiten leichte als je zuvor. Gängige Analysetools wie Pingdom oder GTmetrix liefern noch nicht in jedem Fall zuverlässige Ergebnisse für HTTP/2, aber mit den folgenden Maßnahmen können Sie sicherstellen, die Performance Ihrer Webseite zu optimieren:

Nutzen Sie Browser Caching.

Das Herunterladen von Browserassets dauert mitunter sehr lang und ist ein völlig unnötiger Prozess, wenn Sie ausgiebigen Gebrauch vom Browser-Caching machen. Assets, die im Cache gespeichert sind, müssen nicht erneut vom Server übertragen werden. Für Assets, die sich nicht besonders häufig ändern, können Sie durchaus Speicherzeiten bis zu einem Jahr festsetzen.

Nutzen Sie Datenkompression

Statische Daten wie CSS und Javascript sollten vom Server komprimiert werden. Eine gute Kompression kann das Datenvolumen um bis zu 90 Prozent reduzieren, was die Ladezeiten deutlich verkürzt.

Reduzieren Sie DNS-Lookups

Bevor der Browser Anfragen an einen Host senden kann, muss er zuerst die IP-Adresse eines Servers feststellen. Dies geschieht durch ein sogenanntes DNS-Lookup, das zwischen 20 und 120 µs pro Anfrage dauern kann. Reduzieren Sie diese Lookups, indem sie sicherstellen dass Ihre Seite so wenige Hosts wie möglich verwendet. Eine Reduzierung der Hosts verringert die Zahl der DNS-Lookups und spart so ebenfalls wertvolle Zeit.

Vermeiden Sie Redirects

Es gibt Fälle, in denen Redirect unvermeidbar sind. Allerdings sollten Sie alles daran setzen, Redirects auf ein absolutes Minimum zu reduzieren, um die Kommunikation zwischen Browser und Server nicht unnötig zu verlängern.

Benutzen Sie ein CDN

Ein CDN, also ein Content Delivery Network, sorgt für die Verteilung großer Datenmengen, indem es diese auf regional unterschiedliche Server verteilt. Zwar bedeutet die vermehrte DNS-Lookups, die aber durch den stark optimierten Datendurchsatz eines CDNs mehr als wettgemacht wird.

Fazit

Mit HTTP/2 steht seit dem Jahr 2015 die aktualisierte Fassung des grundlegenden Internet-Übertragungsprotokolls bereit. Es bietet alle Features, die für eine drastische Performance-Verbesserung moderner Internetseiten sorgen. Wenn Sie ihre Webseiten konsequent auf diese Neuerungen hin optimieren, erlangen Sie entscheidende Geschwindigkeitsvorteile und bieten Ihren Kunden einen reibungslosen und schnellen Service.