Multiplexing und Server Push - HTTP/2 in Java 9

Seit Mai 2015 ist HTTP/2, verabschiedet durch die IETF, der offizielle Nachfolger des Hyptertext Transfer Protocol der Version 1.1. Die Standardisierung wurde in den RFC 7540 und 7541 festgeschrieben.

HTTP/2 ermöglicht eine effizientere Ausnutzung der Netzwerk-Ressourcen und soll außerdem die Netzwerk-Latenz reduzieren. Eine HTTP-Verbindung kann für mehrere Übertragungen wiederverwendet werden, was auch als Request/Response-Multiplexing bezeichnet wird. In den Genuss dieser Neuerung kommt man mit dem neuen JDK 9 automatisch. Der HTTP/2-Client aus dem neuen JDK wird bei der Kommunikation mit dem Server die einmal aufgebaute TCP-Verbindung für mehrere HTTP-Verbindungen wiederverwenden. Dabei können mehrere Anfragen direkt hintereinander verschickt werden. Die Antworten können in beliebiger Reihenfolge verarbeitet werden.

Ebenfalls neu ist das Konzept des sogenannten Server-Push. Dabei kann der Server die Entscheidung treffen, dem Client Daten unverlangt zuzusenden, wenn ersterer der Ansicht ist, dass diese zukünftig notwendig sein werden.

In Java war man bisher auf Bibliotheken wie den freien Jetty-HTTP/2-Client angewiesen, um diese Vorteile nutzen zu können. Mit Java 9 wird die Unterstützung von HTTP/2 eine Kernfunktionalität. Dieser Vortrag stellt die Implementierung im neuen JDK mithilfe von Code-Beispielen und einer Demo vor. In einer Demo soll der Unterschied zwischen den HTTP-Versionen 1.1 und 2 live vorgeführt werden. Hierbei werden mithilfe von Restful-Service-Aufrufen die Roundtrips und die Nebenläufigkeit der 2er-Version vorgeführt. Im Vergleich dazu werden ähnliche Service-Aufrufe mit dem alten 1.1er-Protokoll vorgeführt.

Dienstag, 28.03.2017
11:00 - 11:40
Schauspielhaus
Fortgeschritten
Deutsch
Core Java & JVM-Sprachen
Demo
Weinschenker

Jan Weinschenker

Holisticon AG

Weitere Vorträge, die Sie interessieren könnten

A Tour of the (Advanced) Akka Features in 40 Minutes
28.03.2017
Eventhalle
12:00 - 12:40
Johan Janssen
JDK 8 Lambdas: Cool Code that Doesn't Use Streams
28.03.2017
Silverado Theater
12:00 - 12:40
Simon Ritter
Railway-oriented Programming mit Java
28.03.2017
Schauspielhaus
13:00 - 13:40
Stefan Macke
JUnit 5: Next Generation Testing on the JVM
28.03.2017
Eventhalle
13:00 - 13:40
Nicolai Parlog
Project Panama - the New Java Native
28.03.2017
Silverado Theater
15:00 - 15:40
Christoph Engelbert