Eine charakteristische Eigenschaft von HTTP/1.1 ist bereits erwähnt worden: Um unterschiedliche Seitenelemente wie Bild-, JavaScript- oder CSS-Dateien an den Client/Browser zu transferieren, musste je eine separate TCP/IP-Verbindung geöffnet und auch wieder geschlossen werden. HTTP/2 wendet wie sein Vorbild SPDY stattdessen das Multiplex-Verfahren an, sodass mit einer einzigen Verbindung die gesamte Website geladen werden kann. Zudem hat der Server nun die Möglichkeit, vorhersehbare Folgedaten an den Client weiterzugeben, ohne dass dieser danach fragt (Server-Push).
Mit HTTP/2 werden außerdem Datenpakete von Website-Bestandteilen in der Reihenfolge ihrer Priorität verschickt, zuerst beispielsweise Elemente, die für den Seitenaufbau zuständig sind. Der HTTP/2-Header wird im Vergleich zu HTTP/1.1 stark komprimiert versendet, indem überflüssige Informationen entfallen. Eine weitere Neuerung ist die Verwendung des Binärcodes (anstelle von Text-Dateien) bei der Kommunikation, was selbige vereinfacht und weniger fehleranfällig macht.
Hier alle HTTP/2-Neuerungen in der Zusammenfassung:
- eine Verbindung zwischen einem Browser (Client) und einer Website
- Multiplex-Verfahren für einen gesammelten Dateien-Austausch
- Binärcodierter Nachrichtenaustausch
- stark komprimierter HTTP-Nachrichtenkopf
- Server-Push bei absehbaren Folgeanforderungen (zum gegenwärtigen Zeitpunkt nur bei Apache und nicht bei Nginx)
- Priorisierung wichtiger Seitenelemente
Die Hintergründe für die Neuerungen bei HTTP/2 werden in diesem Video von Akami Technologies nochmals veranschaulicht: