Blog

Alle Beiträge mit dem Tag http

HTTP/2 vs. HTTP/1.1

Spring-Boot-Service mit HTTP/1.1 und HTTP/2 Cleartext

Die Version 2 des HTTP-Protokolls ist eigentlich dafür gedacht, nur mit SSL- bzw. TLS-Verschlüsselung verwendet zu werden. Dennoch ist es möglich, und für Testzwecke unter Umständen auch sinnvoll, die Variante h2c (HTTP/2 Cleartext) zu verwenden. Dabei findet keine Verschlüsselung statt. Kein Webbrowser und nur wenige Webserver unterstützen so etwas.

Der Java-basierte Webserver Jetty jedoch schon. Damit ist es möglich, eine kleine, auf Spring Boot basierende Beispiel-Anwendung zu bauen, um ein wenig mit h2c und HTTP-Protokoll-Upgrades herumzuspielen.
weiterlesen

iX Developer – Java 2017: Was Java-Entwickler wissen müssen!

HTTP/2 – iX DEVELOPER „Java 9 / Java EE8“

Mein Artikel über den HTTP/2-Client, der es fast ins neue Java 9 geschafft hätte, erscheint am 4. Juli 2017. Oder ab sofort online.

Dieses iX DEVELOPER Sonderheft mit dem Titel Java 2017: Was Java-Entwickler wissen müssen! widmet sich den Neuerungen der neuen Java-Version. Neben dem Modulsystem, das den Namen Jigsaw trägt, bringt „die 9er“ u.a. ein neues Kommandozeilen-Tool mit dem Namen jshell und eine neue Process-API.

HTTP/2 und Completable Futures

Der HTTP-Client aus dem JDK hätte (Konjunktiv!) mit der Version 9 ein umfassendes Update bekommen. Darunter waren Features wie die Unterstützung der neuen Protokollversion HTTP/2 und die Implementierung der Completable-Futures-API zur Behandlung asynchroner Ereignisse.

Incubator-Feature

Bedauerlicherweise wurde unter den JDK-9-Entwicklern die Entscheidung getroffen, den neuen HTTP-Client nicht als Teil der finalen API des JDK-9 mit auszuliefern. Er wird stattdessen als Incubator-Feature geliefert (siehe JEP 110).

Leider können sich Incubator-Features jederzeit in API und Umfang ändern und werden nicht für die Nutzung in produktivem Code empfohlen. Sie dienen vielmehr dazu, experimentellen Code frühzeitig in einem gesicherten Rahmen auszuliefern, damit die Entwickler-Community Erfahrungen sammeln kann.

Genau das ist auch die Absicht hinter dem Artikel. Anhand von kurzen Code-Beispielen und Vergleichen mit anderen HTTP/2-Clients (Jetty und OkHttp) soll gezeigt werden, was mit der Implementierung aus dem neuen JDK möglich ist und wie sie sich derzeit „anfühlt“.

Weiterhin diskutiert der Artikel den möglichen Nutzen von HTTP/2 für die Entwicklung von Webservices. Insbesondere die Tatsache, dass HTTP/2 immer auch die Verwendung von HTTPS erfordert, ist beim Einsatz von Web- und Microservices kritisch zu sehen. Hier entsteht ein nicht zu unterschätzender Mehraufwand durch die Verwaltung und Verteilung von SSL- bzw. TLS-Zertifikaten.

Der Artikel enthält eine Reihe von Code-Beispielen, die bei Github und auf der Heft-DVD verfügbar sind.

JavaSPEKTRUM 5/2016: HTTP/2 in Java 9

In der Ausgabe 5/2016 des JavaSPEKTRUM ist ein Artikel von Holisticon-Mitarbeiter Jan Weinschenker über die Implementierung von HTTP/2 in Java 9 erschienen.

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

weiterlesen