HTTP/2 is de tweede grote revisie van het Hypertext Transfer Protocol (HTTP), het fundamentele protocol dat gebruikt wordt voor communicatie tussen webbrowsers en webservers. Geïntroduceerd in 2015 als opvolger van HTTP/1.1, brengt HTTP/2 significante verbeteringen in snelheid en efficiëntie voor het laden van webpagina's.
Het protocol werd ontwikkeld op basis van Google's SPDY-protocol en is ontworpen om de prestaties van moderne websites te verbeteren zonder dat er wijzigingen nodig zijn in de manier waarop websites werken. HTTP/2 is volledig compatibel met HTTP/1.1, wat betekent dat bestaande websites en applicaties naadloos kunnen overstappen.
Kernfunctionaliteiten van HTTP/2
HTTP/2 introduceert verschillende technische verbeteringen die de prestaties drastisch verbeteren:
- Multiplexing: Meerdere verzoeken en antwoorden kunnen tegelijkertijd over één TCP-verbinding worden verzonden, waardoor het 'head-of-line blocking' probleem van HTTP/1.1 wordt opgelost
- Header compressie: HTTP-headers worden gecomprimeerd met HPACK-compressie, wat de overhead vermindert en bandbreedte bespaart
- Server Push: Servers kunnen proactief bronnen naar de client sturen voordat deze erom vraagt, wat de laadtijd verder verkort
- Binary protocol: In tegenstelling tot het tekstgebaseerde HTTP/1.1, gebruikt HTTP/2 een binair protocol dat efficiënter te verwerken is
- Stream prioritering: Verzoeken kunnen worden geprioriteerd, zodat belangrijke bronnen eerst worden geladen
Technische werking
HTTP/2 werkt met het concept van 'streams', waarbij elke stream een bidirectionele stroom van bytes vertegenwoordigt tussen client en server. Meerdere streams kunnen tegelijkertijd bestaan binnen één TCP-verbinding, wat multiplexing mogelijk maakt. Elk frame binnen een stream bevat een stream identifier, waardoor de ontvanger weet bij welke stream het hoort.
De binaire framing layer is de kern van HTTP/2 en zorgt ervoor dat berichten worden opgesplitst in kleinere frames die onafhankelijk kunnen worden verzonden en aan de andere kant weer kunnen worden samengesteld. Dit maakt efficiënte multiplexing en prioritering mogelijk.
Beveiliging en HTTPS
Hoewel HTTP/2 technisch gezien ook over onversleutelde verbindingen kan werken, vereisen alle grote browsers dat HTTP/2 alleen wordt gebruikt over HTTPS-verbindingen. Dit betekent dat een SSL/TLS-certificaat een praktische vereiste is voor het gebruik van HTTP/2, wat de algehele beveiliging van het web ten goede komt.
