Die neue Version 2 des HTTP-Protokolls macht das Netz schneller. Dazu nutzt es viele ausgefeilte technische Raffinessen: Request-Multiplexing, komprimierte Protokoll-Metadaten und Server-Push. All dies macht das Surfen sehr viel angenehmer und sorgt für eine bessere User-Experience.
HTTP/2 zielt darauf ab, die Netzbandbreite besser auszunutzen. Profitieren auch SOAP- und RESTful-Webservices vom neuen HTTP? HTTP/2 bringt Mehraufwand für die Entwickler. Lohnt sich das am Ende? Meist schon, es gibt aber auch Aspekte, die einen echt Nerven kosten.
Webservices auf Basis von HTTP/2 und Servlet4JanWeinschenker
Java EE 8 und Servlet 4.0 bringen der Java-Welt das, was das JDK9 nicht geschafft hat: die Unterstützung der Version 2 des HTTP-Protokolls. HTTP/2 bringt HTTP-Push, Request-Multiplexing und Header-Komprimierung ins Web. Die Netzbrandbreite soll besser ausgenutzt werden. Latenzen sollen verringert werden. Bisher profitieren davon in erster Linie Webseiten und Browser. Mit dem Standard Servlet 4.0 kommen diese Neuerungen erstmals standardisiert in die Enterprise-Java-Welt.
Der Vortrag zeigt die Neuerung und deren Implementierung im JDK9 und mit einigen Servlet4-Implementierungen
Making the internet faster HTTP/3 und QUICQAware GmbH
Linux-Stammtisch, Making the internet faster HTTP/3 und QUIC, 27. Juli 2021, online: Vortrag von Franz Wimmer, (@zalintyre, Senior Software Engineer bei QAware)
== Bitte Folien herunterladen, falls sie unscharf sein sollten! =
Abstract:
Mit QUIC und HTTP/3 das Internet beschleunigen. Erfahre mehr über die Entwicklung des WWW, Benchmarks und die Implementierung von HTTP/3.
Redaktionelle Hochlastwebseiten am Beispiel von stern.deNils Langner
stern.de ist mit ca. 170 000 000 Seitenabrufen im Monat eine der höchstfrequentierten Webangebote Deutschlands. In Spitzen, wie zum Beispiel zu einer Stern-TV-Sendung, wird die Last auf den Systemen für einige Zeit mehr als verdoppelt. Um diesen sprunghaften Anstieg der Last kosteneffizient abzubilden, bedarf es einer flexiblen System- und Softwarearchitektur. Es wird gezeigt, wie diese Anforderungen an eine redaktionelle Hochlastwebsite sowohl in der Infrastruktur als auch in der Software abgebildet werden und es werden dazugehörende Herausforderungen skizziert. Behandelt werden unter anderem: PaaS, Gateway-, Object- und Byte-Code-Cache, ESI, Content Delivery Networks, Bottlenecks und Load Balancing.
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerkeadoubleu
Innerhalb dieser Vorlesung werden die Grundlagen der im Web verwendeten Technologien gezeigt. Anhand von Use Cases wird gezeigt, wie man kleine Webanwendungen erstellt und wie sich diese von umfangreichen Webanwendungen auf Basis von Webrahmenwerken wie z.b. Apache Wicket oder Google Web Toolkit unterscheiden.
17 years after Fieldings paper REST is at its peak. Every interface has to use REST. But there are many problems in using and designing REST APIs. This sessions describes the problems and encourages to use besides REST other means of communication.
Webservices auf Basis von HTTP/2 und Servlet4JanWeinschenker
Java EE 8 und Servlet 4.0 bringen der Java-Welt das, was das JDK9 nicht geschafft hat: die Unterstützung der Version 2 des HTTP-Protokolls. HTTP/2 bringt HTTP-Push, Request-Multiplexing und Header-Komprimierung ins Web. Die Netzbrandbreite soll besser ausgenutzt werden. Latenzen sollen verringert werden. Bisher profitieren davon in erster Linie Webseiten und Browser. Mit dem Standard Servlet 4.0 kommen diese Neuerungen erstmals standardisiert in die Enterprise-Java-Welt.
Der Vortrag zeigt die Neuerung und deren Implementierung im JDK9 und mit einigen Servlet4-Implementierungen
Making the internet faster HTTP/3 und QUICQAware GmbH
Linux-Stammtisch, Making the internet faster HTTP/3 und QUIC, 27. Juli 2021, online: Vortrag von Franz Wimmer, (@zalintyre, Senior Software Engineer bei QAware)
== Bitte Folien herunterladen, falls sie unscharf sein sollten! =
Abstract:
Mit QUIC und HTTP/3 das Internet beschleunigen. Erfahre mehr über die Entwicklung des WWW, Benchmarks und die Implementierung von HTTP/3.
Redaktionelle Hochlastwebseiten am Beispiel von stern.deNils Langner
stern.de ist mit ca. 170 000 000 Seitenabrufen im Monat eine der höchstfrequentierten Webangebote Deutschlands. In Spitzen, wie zum Beispiel zu einer Stern-TV-Sendung, wird die Last auf den Systemen für einige Zeit mehr als verdoppelt. Um diesen sprunghaften Anstieg der Last kosteneffizient abzubilden, bedarf es einer flexiblen System- und Softwarearchitektur. Es wird gezeigt, wie diese Anforderungen an eine redaktionelle Hochlastwebsite sowohl in der Infrastruktur als auch in der Software abgebildet werden und es werden dazugehörende Herausforderungen skizziert. Behandelt werden unter anderem: PaaS, Gateway-, Object- und Byte-Code-Cache, ESI, Content Delivery Networks, Bottlenecks und Load Balancing.
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerkeadoubleu
Innerhalb dieser Vorlesung werden die Grundlagen der im Web verwendeten Technologien gezeigt. Anhand von Use Cases wird gezeigt, wie man kleine Webanwendungen erstellt und wie sich diese von umfangreichen Webanwendungen auf Basis von Webrahmenwerken wie z.b. Apache Wicket oder Google Web Toolkit unterscheiden.
17 years after Fieldings paper REST is at its peak. Every interface has to use REST. But there are many problems in using and designing REST APIs. This sessions describes the problems and encourages to use besides REST other means of communication.
HTTP/3 und QUIC Making the internet fasterQAware GmbH
Grazer Linuxtage, April 2023, Franz Wimmer (Senior Software Engineer @QAware GmbH)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Seit seiner Einführung setzt das HTTP-Protokoll auf TCP auf. Das macht es zwar verlässlich, aber auch relativ langsam, weil für jede angebotene Resource ein TCP-Handshake durchgeführt werden muss. HTTP/2 hat versucht, diesen Nachteil mit Multiplexing auszugleichen.
Um die Beschränkungen von TCP loszuwerden, hat Google QUIC (Quick UDP Internet Connections) entwickelt. QUIC und das damit mögliche HTTP/3 sollen die Client-Server-Kommunikation im Internet signifikant beschleunigen.
In diesem Talk sehen wir eine Zusammenfassung der alten HTTP-Protokolle und welche Vor- und Nachteile diese mitbringen. Wir lernen, wie sich QUIC und HTTP/3 in den OSI-Stack einfügen, welche Verbesserungen die neuen Protokolle mitbringen und wie es dabei mit der Kompatibilität und IT-Sicherheit aussieht. Außerdem werfen wir einen Blick darauf, welche praktischen Anwendungsmöglichkeiten es dafür heute bereits gibt.
Echtzeitvisualisierung von Twitter & CoOliver Lemm
The presentation was hold on APEX Connect 2016 in Berlin 26th of april together with Kai Donato. It demonstrates how to use the Twitter streaming api and visualize it by realtime in a graph using VivagraphJS.
02 Webtechnologien - Informatiosinstegration und Webportaleklickandbau
Webtechnologien - Informatiosinstegration und Webportale
Beispiel einer umfangreichen Webanwendung
Grundlagen Webtechnologien
Desktop vs. Webanwendungen
Webtechnologien für kleinere Webanwendungen
Anforderungen bei der Erstellung umfangreicher
Webanwendungen
Konzepte von Webrahmenwerken
Am 22. März 2018 veranstalteten wir zusammen mit unserem Partner LiveTiles einen Chatbot Hackathon. Hier haben Sie die Gelegenheit, alle Slides des Anlasses inkl. Bonusmaterial anzuschauen. Viel Spass.
Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013Michael Kirst-Neshva
In diesem Vortrag gebe ich einen Überblick über die vermeintliche Cloud Bedrohung von ausländischen Behörden und wie man generell mit einfachen Mitteln sein Netzwerk und vor allem die Dateninhalte schützen kann.
Anhand von recherchierten Zahlen konnte ich darstellen, dass nicht alleine ausländische Behörden erhebliche Mengen an Daten bei Cloud Providern anfragen.
Die in diesem Vortrag gezeigten Vorschläge sind nur als Teil einer Gesamtlösung zu sehen.
Dataservices - Data Processing mit MicroservicesQAware GmbH
IT-Tage 2018, Frankfurt: Vortrag von Mario-Leander Reimer (@LeanderReimer, Cheftechnologe bei QAware)
=== Dokument bitte herunterladen für bessere Lesbarkeit! ===
Abstract: Data Processing und Microservices sind ein perfektes Gespann. In dieser Kombination können Microservices dazu verwendet werden, ein flexibles, Event-getriebenes und skalierbares System von lose gekoppelten Datenverarbeitungsaufgaben aufzubauen. Diesen Ansatz nennen wir Dataservices.
In diesem Vortrag stellen wir zunächst die wesentlichen Konzepte und einige Schlüsseltechnologien vor, um Dataservice-Architekturen zu realisieren. Anschließend werden wir die einzelnen Bestandteile einer exemplarischen Datenverarbeitungs-Pipeline schrittweise komponieren und die Showcase-Pipeline in der Cloud zur Ausführung bringen und skalieren.
RapidClipse X ist eine visuelle Java Entwicklungsumgebung für die schnelle und effiziente Entwicklung individueller Business-Applikationen für den professionellen Einsatz in Unternehmen. Mit RapidClipse X lassen sich moderne Web-Oberflächen auf Basis des neuen Web-Components-Standards bequem mit der Maus designen. UI-Designer brauchen dafür keinerlei Programmierkenntnisse und spätere Änderungen sind unkompiziert. Vor allem bei Projekten mit hohem UI-Anteil, lassen sich Entwicklungszeit und kosten um bis zu 90% einsparen. Der generierte Code besitzt eine hohe Qualität und ist vor allem immer gleich. UI-Code selber zu schreiben ist daher nicht mehr wirtschaftlich. RapidClipse ist seit 2014 auf dem Markt und wird von vielen Unternehmen wie der Allianz SE für die Entwicklung datengetriebener Geschäftsanwendungen eingesetzt. Nachdem im vergangenem Jahr mit RapidClipse X ein vollständig neuer UI-Builder auf Basis von Web-Components dazu kam, lag der Fokus in den letzten 12 Monaten auf der Datenbankprogrammierung und Performance. Mit MicroStream bietet RapidClipse jetzt eine neues Persistenz-Framework und Alternative zur komplizierten Hibernate-Programmierung, mit der sich hochperformante In-Memory-Datenbankanwendungen entwickeln lassen. Datenbankankzugriffe werden mit MicroStream bis zu ungaubliche 1000 Mal schneller ausgeführt, Anwendungen benötigen 90% weniger Rechenleistung, was die Server- und Cloud-Betriebskosten senkt und last but not least wird die Datenbankentwicklung damit stark vereinfacht, was die Produktivität steigert. Dieser Vortrag bietet einen vollständigen Überblick über die Arbeitsweise und Möglichkeiten mit RapidClipse.
Alexander Schulze at Mobile Developer Conference MDC 2012, presenting Real-time Apps with jWebSocket. Integration with Sencha/ExtJS, jQuery and PhoneGap, NFC and SmartCards, SMS, Captcha, Remote Control and Monitoring, Online-Collaboration and Online-Gaming. Imparting WebSocket knowledge and benefits of bidirectional full-duplex TC communication vs. http. Cross-Plattform compatible for native and web based, stationary and mobile Apps. With special thanks to the entire Team of Artemisa/UCI.
Betriebsdatenerfassung einer Dimplex Wärmepumpe vom Typ LA 40TUJohannes Kinzig
Dieses Projekt hat zum Ziel die Betriebsdaten der installierten Wärmepumpe (Dimplex - Typ LA 40TU) zu erfassen, um das Betriebsverhalten analysieren zu können. Die gesammelten Daten sollen im Anschluss dazu genutzt werden, Optimierungspotential für den Betrieb zu identifizieren. Dieses Projekt dient dazu, zwei Fragen zu evaluieren:
Welche Betriebsdaten können erfasst werden, die ein Fachunternehmen dabei unterstützen den anlagenbezogenen Wartungsvertrag zu erfüllen und gleichzeitig die Arbeitszeiten vor Ort zu reduzieren? (#SmartService)
Welche Betriebsdaten werden benötigt, um den Betrieb der Wärmepumpe noch weiter zu optimieren, sodass eine nachhaltige Energieeinsparung möglich wird? (#renewables)
Im Web heißt Anwendungsentwicklung, weit verbreitete Technologien in verschiedenen Client-Server-Szenarien einzusetzen. Die Folien zeigen, in welcher Kombination das geschehen kann: Standard Webseiten, Dynamische Webseiten mit Javascript, serverbasierte Dynamik mit PHP, Cooperative Processing mit AJAX. Auf dem Server kann statt mit PHP auch mit Javascript, Java oder .NET gearbeitet werden. Ebenso sind Szenarien mit .NET oder Java-Clients denkbar.
Moderne Microservice-Architekturen, die als Ablöse von ERP-Monolithen diskutiert werden, wären ohne Webtechnologien kaum möglich. Auch Spiele, die auf Webtechnologien basieren, generieren höchste Umsätze.
Die Folien sind als Power Point downloadbar und dürfen "raub"kopiert werden. Wenn die eine oder andere Folie für eigene Präsentationen hilfreich ist, würde ich mich über feedback freuen.
Desription in english:
On the Web, application development means using widely used technologies in various client-server scenarios. The slides show in which combination this can happen: standard websites, dynamic websites with Javascript, server-based dynamics with PHP, cooperative processing with AJAX. On the server you can work with JavaScript, Java or .NET instead of PHP. Similarly, scenarios with .NET or Java clients are conceivable.
Modern microservice architectures, which are discussed as a replacement for ERP monoliths, would hardly be possible without web technologies. Even games based on web technologies generate the highest revenues.
The slides are downloadable as Power Point and may be copied "robbery". If one or the other slide is helpful for your own presentations, I would be glad about feedback.
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
Diese Slides zeigen, wie man Performanceprobleme von Microsoft SharePoint Server 2013 vorbeugt, analysiert und behebt. Die Slides sind im Rahmen einer Veranstalltung der SharePoint Community Mittelland Schweiz entstanden.
HTTP/3 und QUIC Making the internet fasterQAware GmbH
Grazer Linuxtage, April 2023, Franz Wimmer (Senior Software Engineer @QAware GmbH)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Seit seiner Einführung setzt das HTTP-Protokoll auf TCP auf. Das macht es zwar verlässlich, aber auch relativ langsam, weil für jede angebotene Resource ein TCP-Handshake durchgeführt werden muss. HTTP/2 hat versucht, diesen Nachteil mit Multiplexing auszugleichen.
Um die Beschränkungen von TCP loszuwerden, hat Google QUIC (Quick UDP Internet Connections) entwickelt. QUIC und das damit mögliche HTTP/3 sollen die Client-Server-Kommunikation im Internet signifikant beschleunigen.
In diesem Talk sehen wir eine Zusammenfassung der alten HTTP-Protokolle und welche Vor- und Nachteile diese mitbringen. Wir lernen, wie sich QUIC und HTTP/3 in den OSI-Stack einfügen, welche Verbesserungen die neuen Protokolle mitbringen und wie es dabei mit der Kompatibilität und IT-Sicherheit aussieht. Außerdem werfen wir einen Blick darauf, welche praktischen Anwendungsmöglichkeiten es dafür heute bereits gibt.
Echtzeitvisualisierung von Twitter & CoOliver Lemm
The presentation was hold on APEX Connect 2016 in Berlin 26th of april together with Kai Donato. It demonstrates how to use the Twitter streaming api and visualize it by realtime in a graph using VivagraphJS.
02 Webtechnologien - Informatiosinstegration und Webportaleklickandbau
Webtechnologien - Informatiosinstegration und Webportale
Beispiel einer umfangreichen Webanwendung
Grundlagen Webtechnologien
Desktop vs. Webanwendungen
Webtechnologien für kleinere Webanwendungen
Anforderungen bei der Erstellung umfangreicher
Webanwendungen
Konzepte von Webrahmenwerken
Am 22. März 2018 veranstalteten wir zusammen mit unserem Partner LiveTiles einen Chatbot Hackathon. Hier haben Sie die Gelegenheit, alle Slides des Anlasses inkl. Bonusmaterial anzuschauen. Viel Spass.
Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013Michael Kirst-Neshva
In diesem Vortrag gebe ich einen Überblick über die vermeintliche Cloud Bedrohung von ausländischen Behörden und wie man generell mit einfachen Mitteln sein Netzwerk und vor allem die Dateninhalte schützen kann.
Anhand von recherchierten Zahlen konnte ich darstellen, dass nicht alleine ausländische Behörden erhebliche Mengen an Daten bei Cloud Providern anfragen.
Die in diesem Vortrag gezeigten Vorschläge sind nur als Teil einer Gesamtlösung zu sehen.
Dataservices - Data Processing mit MicroservicesQAware GmbH
IT-Tage 2018, Frankfurt: Vortrag von Mario-Leander Reimer (@LeanderReimer, Cheftechnologe bei QAware)
=== Dokument bitte herunterladen für bessere Lesbarkeit! ===
Abstract: Data Processing und Microservices sind ein perfektes Gespann. In dieser Kombination können Microservices dazu verwendet werden, ein flexibles, Event-getriebenes und skalierbares System von lose gekoppelten Datenverarbeitungsaufgaben aufzubauen. Diesen Ansatz nennen wir Dataservices.
In diesem Vortrag stellen wir zunächst die wesentlichen Konzepte und einige Schlüsseltechnologien vor, um Dataservice-Architekturen zu realisieren. Anschließend werden wir die einzelnen Bestandteile einer exemplarischen Datenverarbeitungs-Pipeline schrittweise komponieren und die Showcase-Pipeline in der Cloud zur Ausführung bringen und skalieren.
RapidClipse X ist eine visuelle Java Entwicklungsumgebung für die schnelle und effiziente Entwicklung individueller Business-Applikationen für den professionellen Einsatz in Unternehmen. Mit RapidClipse X lassen sich moderne Web-Oberflächen auf Basis des neuen Web-Components-Standards bequem mit der Maus designen. UI-Designer brauchen dafür keinerlei Programmierkenntnisse und spätere Änderungen sind unkompiziert. Vor allem bei Projekten mit hohem UI-Anteil, lassen sich Entwicklungszeit und kosten um bis zu 90% einsparen. Der generierte Code besitzt eine hohe Qualität und ist vor allem immer gleich. UI-Code selber zu schreiben ist daher nicht mehr wirtschaftlich. RapidClipse ist seit 2014 auf dem Markt und wird von vielen Unternehmen wie der Allianz SE für die Entwicklung datengetriebener Geschäftsanwendungen eingesetzt. Nachdem im vergangenem Jahr mit RapidClipse X ein vollständig neuer UI-Builder auf Basis von Web-Components dazu kam, lag der Fokus in den letzten 12 Monaten auf der Datenbankprogrammierung und Performance. Mit MicroStream bietet RapidClipse jetzt eine neues Persistenz-Framework und Alternative zur komplizierten Hibernate-Programmierung, mit der sich hochperformante In-Memory-Datenbankanwendungen entwickeln lassen. Datenbankankzugriffe werden mit MicroStream bis zu ungaubliche 1000 Mal schneller ausgeführt, Anwendungen benötigen 90% weniger Rechenleistung, was die Server- und Cloud-Betriebskosten senkt und last but not least wird die Datenbankentwicklung damit stark vereinfacht, was die Produktivität steigert. Dieser Vortrag bietet einen vollständigen Überblick über die Arbeitsweise und Möglichkeiten mit RapidClipse.
Alexander Schulze at Mobile Developer Conference MDC 2012, presenting Real-time Apps with jWebSocket. Integration with Sencha/ExtJS, jQuery and PhoneGap, NFC and SmartCards, SMS, Captcha, Remote Control and Monitoring, Online-Collaboration and Online-Gaming. Imparting WebSocket knowledge and benefits of bidirectional full-duplex TC communication vs. http. Cross-Plattform compatible for native and web based, stationary and mobile Apps. With special thanks to the entire Team of Artemisa/UCI.
Betriebsdatenerfassung einer Dimplex Wärmepumpe vom Typ LA 40TUJohannes Kinzig
Dieses Projekt hat zum Ziel die Betriebsdaten der installierten Wärmepumpe (Dimplex - Typ LA 40TU) zu erfassen, um das Betriebsverhalten analysieren zu können. Die gesammelten Daten sollen im Anschluss dazu genutzt werden, Optimierungspotential für den Betrieb zu identifizieren. Dieses Projekt dient dazu, zwei Fragen zu evaluieren:
Welche Betriebsdaten können erfasst werden, die ein Fachunternehmen dabei unterstützen den anlagenbezogenen Wartungsvertrag zu erfüllen und gleichzeitig die Arbeitszeiten vor Ort zu reduzieren? (#SmartService)
Welche Betriebsdaten werden benötigt, um den Betrieb der Wärmepumpe noch weiter zu optimieren, sodass eine nachhaltige Energieeinsparung möglich wird? (#renewables)
Im Web heißt Anwendungsentwicklung, weit verbreitete Technologien in verschiedenen Client-Server-Szenarien einzusetzen. Die Folien zeigen, in welcher Kombination das geschehen kann: Standard Webseiten, Dynamische Webseiten mit Javascript, serverbasierte Dynamik mit PHP, Cooperative Processing mit AJAX. Auf dem Server kann statt mit PHP auch mit Javascript, Java oder .NET gearbeitet werden. Ebenso sind Szenarien mit .NET oder Java-Clients denkbar.
Moderne Microservice-Architekturen, die als Ablöse von ERP-Monolithen diskutiert werden, wären ohne Webtechnologien kaum möglich. Auch Spiele, die auf Webtechnologien basieren, generieren höchste Umsätze.
Die Folien sind als Power Point downloadbar und dürfen "raub"kopiert werden. Wenn die eine oder andere Folie für eigene Präsentationen hilfreich ist, würde ich mich über feedback freuen.
Desription in english:
On the Web, application development means using widely used technologies in various client-server scenarios. The slides show in which combination this can happen: standard websites, dynamic websites with Javascript, server-based dynamics with PHP, cooperative processing with AJAX. On the server you can work with JavaScript, Java or .NET instead of PHP. Similarly, scenarios with .NET or Java clients are conceivable.
Modern microservice architectures, which are discussed as a replacement for ERP monoliths, would hardly be possible without web technologies. Even games based on web technologies generate the highest revenues.
The slides are downloadable as Power Point and may be copied "robbery". If one or the other slide is helpful for your own presentations, I would be glad about feedback.
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
Diese Slides zeigen, wie man Performanceprobleme von Microsoft SharePoint Server 2013 vorbeugt, analysiert und behebt. Die Slides sind im Rahmen einer Veranstalltung der SharePoint Community Mittelland Schweiz entstanden.
HTTP/2 – Ist das auch gut für java-basierte Webservices?
1. HTTP/2 – Ist das auch gut
für java-basierte
Webservices?
JAN WEINSCHENKER
20. Februar 2018 @JANWEINSCHENKER 1
2. Agenda
20. Februar 2018 @JANWEINSCHENKER 2
1. HTTP von damals bis heute
2. Die Technik in HTTP
3. Java und Servlet4
4. Fragen
3. 20. Februar 2018 @JANWEINSCHENKER 3
PROFESSIONALS
INDIVIDUALS
N3RDS
Die Holisticon AG ist eine Management- und IT-
Beratung aus Hamburg.
Wir entwickeln beste Individualsoftware,
Webplattformen und Apps.
Geschäftsprozesse durchdringen wir und
automatisieren sie.
Große Datenmengen machen wir mit Smart-Data-
Ansätzen beherrschbar.
4. HTTP von damals bis
heute
DIE VORGESCHICHTE VON HTTP/2 (H2)
20. Februar 2018 @JANWEINSCHENKER 4
5. HTTP/1.0 - 1990
Line Mode Browser (LMB) von Nicola Pellow (CERN)
20. Februar 2018 @JANWEINSCHENKER 5
6. HTTP/1.0 – 1991: Nexus Browser
Entwickelt von Tim
Berners-Lee
20. Februar 2018 @JANWEINSCHENKER 6
7. 20. Februar 2018 @JANWEINSCHENKER 7
www.muenchen.de - April 1999
Quelle: archive.org
www.yahoo.com - April 1999
Quelle: archive.org
HTTP/1.1 – 1999
8. Das Web heute
20. Februar 2018 @JANWEINSCHENKER 8
315 Requests
5,79 MB
2,36s
9. Das Web hat sich verändert
• Mehr und komplexere
Inhalte
• JavaScript, CSS, AJAX,
Audio/Video, ...
• Mobile Endgeräte, also ggf.
unzuverlässige Leitungen
• „Dickere“ Leitungen
• Leistungsfähigere Browser
• Das Web bzw. HTTP ist zur
Grundlage von SOAP- und
RESTful-Webservices
geworden.
20. Februar 2018 @JANWEINSCHENKER 9
Aber HTTP/1.* stammt immer noch
aus den 90ern!
10. HTTP/2 – Seit 2015
• Connection-Multiplexing
• Reduziert Protokoll-Overhead und TCP-Sockets
• Server-Push
• Reduziert Anzahl der HTTP-Anfragen
• Komprimierung der Protokoll-Header (HPACK)
• Reduziert Anzahl der TCP-Roundtrips
20. Februar 2018 @JANWEINSCHENKER 10
11. Die Technik in HTTP
20. Februar 2018 @JANWEINSCHENKER 11
12. HTTP Request Roundtrip
20. Februar 2018 @JANWEINSCHENKER 12
Client ServerDNS
DNS
TCP
HTTP
GET
SSL
www.google.de
172.217.20.195
SYN
SYN/ACK
ACK
GET
1x pro
Host
13. HTTP/1.1 Request-Pipelining
20. Februar 2018 @JANWEINSCHENKER 13
Client Server
GET index.html
Abwicklung
mehrerer
GET-Requests
innerhalb
einer TCP-
Verbindung
14. HTTP/1.1 – Head-Of-Line-Blocking
Bei HTTP/1.1 verarbeitet der Client die Antworten des Servers nur
in der Reihenfolge, in der er die zugehörigen Anfragen versendet
hat.
20. Februar 2018 @JANWEINSCHENKER 14
15. HTTP/1.1 Workarounds
• Mehrere TCP-Connections parallel öffnen
• Domain Sharding
• TCP-Verbindungen sind relativ “teuer“
• Anzahl an Verbindungen wird durch Clients begrenzt.
20. Februar 2018 @JANWEINSCHENKER 15
17. HTTP/1.1 Workarounds
• Verbindungen reduzieren
• Spriting
• Zusammenfassen von Ressourcen
• CSS und JavaScript
• Inlining mittels Base 64
• Probleme beim Caching
20. Februar 2018 @JANWEINSCHENKER 17
18. HTTP/2 - Keine Workarounds mehr nötig
• HTTP/2 bietet Multiplexing
• Alle Request-Response-Konversationen laufen simultan über
ein und dieselbe TCP-Verbindung.
20. Februar 2018 @JANWEINSCHENKER 18
19. HTTP/2 Push und Multiplexing
20. Februar 2018 @JANWEINSCHENKER 19
Client Server
HTTP
GET
GET index.html
index.html favicon.ico
script.js
Style.css
via Server-PUSH
20. HTTP/2 - Begrifflichkeiten
HTTP/2 HTTP/1.1
Connection Ein TCP Socket
Stream Ein Austausch von Request- und Response-Messages zwischen Client und
Server
Message Ein Request bzw. eine Response
Frame Kleinste Einheit zur Kommunikation über die Connection. Eine Message
besteht aus einem oder mehreren Frames.
20. Februar 2018 @JANWEINSCHENKER 20
27. Header-Daten im Browser
1 Kilobyte an Cookie-Daten pro HTTP-Request
• Problem beim initialen Verbindungsaufbau:
• TCP definiert eine Maximalgröße für die ersten TCP Pakete:
532 bytes.
• MSS (Maximum Segment Size)
20. Februar 2018 @JANWEINSCHENKER 27
28. ACK
TCP Slow Start
20. Februar 2018 @JANWEINSCHENKER 28
Browser Server
GET
GET
GET
ACK
ACK
Beispiel: 1 GET-Request mit 1500 Byte an Header-Daten und MSS 500 Byte.
29. Header Compression – HTTP/2
• Komprimierung der HTTP-Header mittels
HPACK
• Payload-Kompression weiterhin mit GZIP
20. Februar 2018 @JANWEINSCHENKER 29
30. Header Compression mit HPACK
Dreistufige Komprimierung von HTTP Headern.
1. Vordefiniertes Kompressionswörterbuch für 61 sehr gebräuchliche Header. Z.B.:
◦ 2 = :method GET
◦ 3 = :method POST
◦ 8 = :status 200
◦ 16 = accept-encoding gzip, deflate
2. Dynamisches Kompressionswörterbuch
◦ Wird zum Zeitpunkt der Verbindungsaufnahme ausgehandelt
3. Statische Huffman-Kodierung
20. Februar 2018 @JANWEINSCHENKER 30
33. Die Servlet API
20. Februar 2018 @JANWEINSCHENKER 33
• Die meisten Änderungen sind für Entwickler transparent.
• Multiplexing und HPACK erfolgen automatisch.
• Lediglich Server Push ist mit eigenem
Implementierungsaufwand verbunden.
34. Java: HTTP/2 Verfügbarkeit
Name HTTP/2 Servlet 4
JBOSS EAP 7.1 ja nein
Wildfly 9+ ja nein
Glassfish 5 ja ja
Spring Boot 2 (RC1) ja ja (mit Embedded Tomcat 9)
Tomcat 9 ja ja
OkHttp 3 Client ja nein
Jetty Serve und Client v9.3+ ja nein
Undertow Server 1.4 ja nein
Apache Commons HTTP Client ja nein
20. Februar 2018 @JANWEINSCHENKER 34