Het HTTP protocol krijgt een update
Na de experimenten door Google met het SPDY protocol de basic van het protocol voor HTTP/2 protocol gebruikt.
HTTP/2 is verbetert op het punt dat het maar 1 TCP verbinding per webserver nodig heeft voor ieder verzoek aan de webserver nodig heeft.
Dit zorgt ervoor dat het niet meer nodig is om voor alle inhoud van een webpagina een aparte verbind op te zetten maar nu alles via multiplexing over 1 TCP verbinding verstuurt kan worden. Hierdoor zal een pagina met bijvoorbeeld veel kleine afbeelding onder HTTP/2 aanzienlijk sneller zijn dan onder voorgaande in voorgaande versie’s van het HTTP protocol. In HTTP 1.1 en 1.0 hadden was er origineel een limit van 2 gelijktijdige verbinden per webserver waardoor veel dingen volgens de origineel standaard niet gedownload konden worden totdat het downloaden van de inhoud van twee verbindingen klaar was. Dit werd in HTTP1.1 al met HTTP Pipelining enigszins opgelost maar het was nog niet ideaal. Verder hadden veel webbrowser al het limit verhoogd van 2 naar 6 of 8 gelijktijdige verbinden per server om te verkomen dat het laden van een website langzaam was doordat het downloaden van een verbinding nog niet klaar was waardoor de webbrowser niet gelijktijdig alvast iets anders kan gaan downloaden.
Echter is het ophogen van het aantal TCP verbindingen ook niet ideaal omdat iedere TCP verbinding een file descriptor en een poort vereist en daar is voor de server en client een limiet aan. En is daarnaast het opzetten van iedere TCP verbinding langzaam mede door de vereiste 3-Way handshake van TCP. Door het gebruiken van multiplexing in HTTP/2 is er geen langzame extra TCP verbinding nodig voor iedere webserver waarmee je verbind.
Verder gebruikt het HTTP/2 protocol het HPACK compressie algoritme voor het nu comprimeren van HTTP headers waardoor er minder informatie gedownload hoeft te worden. De volledige specificatie van HTTP/2 zijn op github te vinden.
Http/2 is nu officieel vastgelegd in RFC 7450.
Gister is deze blog (eindelijk) ook over HTTP/2 beschikbaar gemaakt.
Maar let wel op dat het dus alleen over httpS (ssl/tls) werkt met de meeste webbrowsers.