coding-1841550

HTTP/2

Das Hypertext Transfer Protokoll (HTTP) wurde Anfang der 90er-Jahre des letzten Jahrtausends entwickelt und bildet seitdem die Grundlage für jeden Webseitenaufruf im Internet.

Im Jahr 1999, also vor inzwischen mehr als 15 Jahren, wurde mit HTTP/1.1 das Protokoll veröffentlicht, welches den bisherigen Standard darstellt. Wichtigste Änderung gegenüber den Vorgängern war damals die Möglichkeit, beim Aufruf den Domainnamen mit an einen Server zu übergeben, so dass es nicht mehr notwendig war, für jede Domain eine eigene, separate IP-Adresse zu betreiben.

Seitdem ist viel Zeit vergangen und recht wenig passiert. Das mag daran liegen, dass es wenig Bedarf für Neuerungen gab, war sicherlich aber auch der Kompatibilität geschuldet. Kaum ein internetfähiges Gerät auf dieser Welt nutzt nicht HTTP/1.1.

Im Mai 2015 war es dann jedoch endlich soweit. Hauptsächlich begründet auf Vorarbeiten von Google, welche mit SPDY versucht haben, das Internet schneller zu machen, wurde das neue Protokoll HTTP/2 veröffentlicht. Das neue Protokoll bietet im Vergleich zu seinem Vorgänger einige Vorteile, welche vor allem darauf abzielen, Transfers zu beschleunigen und unnötigen Overhead zu reduzieren. So lassen sich nun mit HTTP/2 Daten besser als bislang komprimiert bzw. binär übertragen, Server können nun Nachrichten an Clients selbst initiieren (sog. Push-Verfahren) und bestehende Verbindungen lassen sich nun mehrfach nutzen. Insbesondere letzteres spart eine Menge Zeit und Overhead, da Webseiten heute in der Regel nicht mehr nur einmalig aufgerufen werden, sondern Browser per Ajax&Co viel interaktiver als früher mit dem Server sprechen.

Wir haben uns schon sehr früh HTTP/2 angesehen und nach Möglichkeiten gesucht, den neuen Protokollstand unseren Kunden anbieten zu können. Im letzten Jahr war jedoch der von uns und den meisten anderen Hostern eingesetzte Apache-Webserver noch nicht so weit. Es gab nur einige experimentelle Erweiterungen. Seit ein paar Wochen ist der Standard nun aber fester Bestandteil der Server-Software. Wir haben das Protokoll daher auf einigen Maschinen getestet und die Unterstützung zuerst für gut befunden. Kurz nach dem Entschluss, das Protokoll nun auf alle Server auszurollen, mussten wir jedoch einen vorläufigen Rückzieher machen: gerade die vielversprechende mehrfache Nutzung von Verbindungen funktioniert in der Kombination Apache und Chrome nicht korrekt. Sobald ein SSL-Zertifikat mehrfach, für verschiedene Domains genutzt wird, wie es z.B. bei einem Wildcard-Zertifikat der Fall ist, kommt es zu einem Fehler.

Grund ist, dass der Apache das Umschalten der Domain für ein- und dieselbe Verbindung noch nicht unterstützt. Apache gibt dies auch korrekt an den Browser weiter. Anstatt jedoch auf das alte, funktionierende Verfahren zurück zu schalten und eine neue Verbindung aufzubauen, verhält sich Chrome fehlerhaft, stoppt den Seitenabruf und gibt anstatt der gewünschten Webseite die Fehlermeldung des Servers aus. HTTP/2 ist somit in der Praxis noch nicht für alle Fälle einsatzbereit.

Das beschriebene Problem ist bereits bekannt und an Lösungen wird gearbeitet. Wahrscheinlich wird der Apache Webserver im Laufe des Jahres Support für den Wechsel der Domains beinhalten. Dann sollte auch einer Aktivierung von HTTP/2 auf allen unseren Servern nichts mehr im Weg stehen. Bis dahin werden wir die Situation beobachten und weiter testen.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.