SAP und HTTP/2

Veröffentlicht am

Das HTTP Protokoll ist eines der am häufigsten genutzten Protokolle im Internet. Allerdings haben HTTP/1.0 und HTTP/1.1 einige Nachteile für moderne Applikationen – insbesondere in Hinblick auf Performance in Weitverkehrsnetzen. Um diese Probleme zu verbessern, wurde mit RFC 7540 HTTP/2 als Nachfolger eingeführt.

HTTP/2 ist kein grundlegender Umbau des HTTP Protokolls, sondern es optimiert den Transport der bestehenden HTTP Semantik. Alle grundlegenden Features von HTTP/1.1 sind erhalten geblieben, nur der Transport über das Netzwerk wurde geändert.

Die primären Ziele für HTTP/2 sind die Reduzierung der Latenzzeit durch vollständiges Anforderungs- und Antwortmultiplexing, die Minimierung des Protokoll-Overheads durch effiziente Komprimierung der HTTP-Header-Felder und die Unterstützung von Anforderungspriorisierung und Server-Push.

Der SAP Web Dispatcher und der Internet Communication Manager unterstützen ab Kernel Version 749 das HTTP/2 Protokoll als Protokollkonverter. Beide Komponenten sind in der Lage HTTP/2 zu empfangen und nach HTTP/1.1 zu übersetzen.

Die HTTP/2 Unterstützung im ICM beschränkt sich auf AS ABAP Instanzen. Für AS Java gibt es keine HTTP/2 Unterstützung im ICM, allerdings kann man vor einem AS Java einen Web Dispatcher mit HTTP/2 Unterstützung schalten.

Der HTTP/2 Support kann über den Parameter icm/HTTP/support_http2 = true aktiviert werden. HTTP/2 wird dabei aber nur über SSL unterstützt. Falls ein Client selbst kein HTTP/2 unterstützt, wird diesem weiterhin HTTP/1 serviert.

Zusätzlich muss der Parameter ssl/ciphersuites um „PFS“ ergänzt werden, damit HTTP/2 unterstützt wird. Zum Beispiel

HTTP/2 wurde mit dem Ziel entwickelt die Antwortzeiten von web-basierten Applikationen zu verbessern. Inwieweit die Antwortzeiten verbessert werden (bzw. ob eine Verbesserung sichtbar ist) hängt von der Applikation und den Charakteristika der Netzwerkverbindung ab. In lokalen Netzwerken (mit einer hohen Bandbreite und einer niedrigen Round Trip Time (RTT)) ist meistens kaum ein Unterschied zwischen HTTP/1.1 und HTTP/2 sichtbar. Verbesserungen gegenüber HTTP/1.1 werden üblicherweise in Netzwerken mit hoher Bandbreite und hoher RTT sichtbar. In Extremfällen, z. B. bei einer niedrigen Bandbreite und niedriger RTT, kann HTTP/2 sogar zu längeren Antwortzeiten führen. Auch müssen (auf einigen Plattformen) die Socket Buffer Einstellungen optimal sein, damit der volle Vorteil von HTTP/2 sichtbar wird.

Ein wichtiges Merkmal von HTTP/2 ist die deutliche Vergrößerung der maximalen Anzahl paralleler Requests. Die Gesamtzahl der zu verarbeitenden Requests bleibt dabei identisch. Allerdings kann es zu einer Verschiebung der „Belastungsspitzen“ kommen. Bei Bedarf ist es daher notwendig, den Parameter icm/max_conn zu erhöhen.

google.com: Introduction to HTTP/2