Selecteer een pagina
Home » Wat is HTTP/2 en wat is het verschil met HTTP/1.1?

Wat is HTTP/2?

HTTP/2 is de nieuwe standaard voor HTTP(S) en brengt veel verbeteringen met zich mee, waaronder hogere prestaties en snellere laadtijden. Al onze hostingpakketten zijn standaard uitgerust met HTTP/2 en gratis SSL.

In deze blog posts leggen wij uit wat HTTP/2 precies inhoud en wat het is. Ook waarom het beter is dan HTTP/1.

Wat is HTTP?

HTTP staat voor HyperText Transport Protocol. Met ‘hypertext’ worden websites bedoeld. HTTP is dus het protocol dat gebruikt wordt om websites over het internet op te vragen. De ontwikkeling van HTTP begon in 1989.

In 1991 werd de eerste officiële standaard uitgebracht, HTTP versie 0.9. Sindsdien is er aan het basis concept niets veranderd, terwijl het internet zelf enorm veranderd is. Websites in rond deze tijd bestonden enkel uit statische tekst met wat links naar elkaar. Langzamerhand werd dit steeds groter en uitgebreider. Denk hierbij aan afbeeldingen, JavaScript, CSS, jQuery etc. Tegenwoordig zijn er ook complete web applicaties, zoals Spotify en Google Docs.

Hoe werkt HTTP?

Hypertext Transfer Protocol (HTTP) is het protocol voor de communicatie tussen een webclient (meestal een webbrowser of een app) en een webserver. HTTP is een protocol dat zogenaamd text-based is. Dat betekent dat alle informatie als tekst verstuurd wordt. Op zich is dat erg handig, zeker tijdens de ontwikkeling, want je kunt zelf controleren wat er gebeurt. Daarnaast gebruikt HTTP één verbinding per verzoek. De browser opent een verbinding naar de server, vraagt één bestand op en sluit daarna de verbinding. Zowel het verzoek dat de browser verstuurt als het antwoord dat de server geeft, ziet er qua opbouw hetzelfde uit.

Elk HTTP-bericht bestaat uit drie onderdelen: statusregel, nul of meerdere headers en daarna een lege regel gevolgd door de inhoud van het bestand dat opgevraagd wordt. Als je een website bezoekt, gebruikt je browser het HTTP-protocol om de pagina op te vragen en de server beantwoordt dit ook via het HTTP-protocol. Het HTTP protocol wordt niet alleen veel op het wereldwijde web gebruikt, maar ook op lokale netwerken (we spreken dan van een intranet).

In HTTP is vastgelegd welke vragen (de Engelse term hiervoor is requests) een cliënt aan een server kan stellen en welke antwoorden (de Engelse term is responses) een webserver daarop kan teruggeven. Elke vraag bevat een URL die naar een webcomponent of een statisch object zoals een webpagina of plaatje verwijst.

HTTP Request

Een HTTP-request bestaat uit de requestsoort, de URL, de headervelden (koptitelvelden) en eventueel een inhoud. Een overzicht van de HTTP-requestmethoden:

  • GET – Ontvang het document gespecificeerd door de URL.
  • HEAD – Ontvang alleen de headers van het op te vragen document.
  • POST – Zend gegevens naar de server.
  • PUT – Vervang het document op de server door de verzonden data.
  • DELETE – Verwijder het document.
  • TRACE – Retourneert de aanvraag zodat een client kan zien welke wijzigingen of aanvullingen zijn gemaakt door tussenstations.
  • OPTIONS – Vraag de mogelijkheden op dit niveau aan van de server.
  • CONNECT – Vervangt de verbinding door een transparante TCP-/IP-tunnel, om bijvoorbeeld SSL-versleutelde communicatie (HTTPS) via een onversleutelde HTTP proxy te ondersteunen.
  • PATCH – Gedeeltelijke modificatie van het document (vervang een deel door de verzonden data).

De belangrijkste headervelden zijn:

  • Content-Length: Geeft de lengte van de inhoud aan.
  • Location: Indien de server de webbrowser naar een andere pagina doorverwijst wordt hierbij het benodigde pad gevoegd.
  • Server: Omvat een beknopte beschrijving van de serversoftware (bijvoorbeeld “Apache/2.2.9 (Win32) PHP/5.2.6”).
  • User-Agent: Geeft informatie over de aanvrager. Dit is meestal een webbrowser.
  • Date: De datum en het tijdstip waarop het document verzonden is.
  • Host*: Omdat het pakket naar een IP-adres wordt gestuurd weet de server niet op welk domein men aan het surfen is. In HTTP 1.1 is het verplicht om met deze header het domein mee te delen.

Problemen van HTTP/1.1

Eén van de grootste problemen met HTTP/1.1 is dat het maar één verzoek per verbinding kan uitvoeren. Dat betekent als je een webpagina bezoekt met bijvoorbeeld één plaatje, één JavaScript-bestand en één CSS-stylesheet, dat je al vier verbindingen moet opzetten. Het opzetten van een verbinding kost tijd en veroorzaakt daarmee ook veel vertraging bij het bekijken van websites. Daarnaast is het ook zo dat de browser maar een beperkt aantal gelijktijdige verbindingen opzet naar dezelfde server. Hierdoor kan het lang duren voordat een pagina volledig geladen is.

Vaak wordt er tekst verstuurd via HTTP denk hierbij aan HTML, JavaScript en CSS. Deze type bestanden zijn goed te comprimeren, daarom ondersteunt HTTP/1.1 compressie. Hierbij wordt een algoritme gebruikt om de data die verstuurd worden te comprimeren en te verkleinen, zoals ‘zip’ dat ook doet. Helaas worden de headers niet gecomprimeerd. Afhankelijk van de grootte van het bestand dat verstuurd wordt, kunnen de headers een groot deel van de totale data voor zich nemen.

Het probleem wordt erger door het feit dat veel van de grootste headers van de browser naar de server worden gestuurd en weer terug, zoals bijvoorbeeld cookies. Cookies worden bij elk HTTP-verzoek én elk antwoord meegestuurd. De headers zijn al gauw zo’n 700 á 800 bytes groot.

Wat is HTTP/2?

In 2012 begon het werk aan de opvolger van HTTP 1.1, genaamd HTTP/2: IETF richtte de werkgroep HTTP Working Group op. Het was een reactie op de ontwikkeling van het SPDY-protocol dat als experimenteel protocol ontwikkeld werd door Google om de laadtijden van webpagina’s te verbeteren ten opzichte van HTTP 1.1. Het doel van HTTP/2 is om de latency zo laag mogelijk te krijgen. Daarvoor worden een aantal technieken gebruikt. De belangrijkste daarvan gaan we nu bespreken.

Zoals de naam al aangeeft is het de opvolger van HTTP1.1. Bij HTTP2 is er gekeken naar hoe de problemen van HTTP1.1 opgelost konden worden en ook een betere performance neergezet kon worden. Hierbij kan de browser met HTTP2 meerdere verzoeken tegelijk verzenden ipv een voor een, waardoor je veel sneller een pagina opgebouwd hebt en aan je bezoeker kan laten zien.

Waarom is HTTP/2 sneller dan HTTP/1? HTTP1.1 is natuurlijk al jaren oud en daarbij is gebleken dat het protocol voor de complexe websites/webshops die we tegenwoordig hebben niet meer optimaal werkte. Daarom heeft Google toen besloten om een nieuw protocol hiervoor te ontwikkelen; SPDY.

HTTP/2 is gebaseerd op SPDY en behoudt tegelijk een hoge mate van compatibiliteit met HTTP 1.1. Andere voordelen zijn de lagere latency (vertraging) en andere snelheidsverbeteringen. De grootste verandering is de mogelijkheid om multiplexing toe te passen: meerdere verzoeken kunnen via één verbinding verzonden worden. Hiervoor is headercompressie nodig. De specificatie HPACK specifieert de headercompressie voor HTTP/2.

Daarnaast gebruikt HTTP/2 minder verbindingen tussen de server en de client. HTTP/2 specifieert ook een manier om inhoud van de server naar de browser te sturen, zonder dat de client continu moet vragen of er nieuwe inhoud beschikbaar is.

HTTP/2 verplicht TLS/SSL-encryptie niet, maar moedigt dit wel aan. Ook kiezen bepaalde softwareleveranciers zoals Mozilla ervoor HTTP/2 enkel te implementeren met SSL

In februari 2015 werd de HTTP2-specificatie afgewerkt. Midden mei 2015 werd de finale versie van de specificatie vastgelegd als RFC 7540.

Wil je gebruik maken van HTTP/2? Al onze hostingpakketten zijn standaard uitgerust met HTTP/2.

Verschil HTTP/2 en HTTP/1.1

De verbeterde snelheid van HTTP2 t.o.v. HTTP 1.1 komt dan ook door een aantal technieken die gebruikt worden in HTTP2:

  • Multiplexing; hierbij worden meerdere verzoeken tegelijk naar de server gestuurd en bepaalt het protocol welke bestanden er als eerst opgehaald worden en/of dit in stukjes kan, zodat dit efficiënt gaat.
  • Compressie van headers; Hierbij worden zowel de bestanden als de headers gecomprimeerd (lees: compacter gemaakt) waardoor het ophalen efficiënter gaat en minder lang duurt. Des te kleiner de bestanden en/of headers des te sneller het ingeladen is.
  • Server push; normaliter wordt eerst de html van een pagina in geladen en daarna pas de javascript, css bestanden. Met deze techniek kan de browser bepalen om de laatstgenoemde ook alvast mee te sturen zodat een pagina al meer opgebouwd worden verstuurd naar de bezoeker.

HTTP/2 bij Kalovi

Bij Kalovi vinden we de ervaring van bezoekers op websites van onze klanten erg belangrijk. Zoals de voordelen die hierboven genoemd zijn kan HTTP/2 een enorme verbetering geven aan uw website. Daarom bieden wij HTTP/2 standaard (naast gratis SSL) aan op al onze hostingpakketten.

U hoeft zelf dus niet wakker te liggen met vragen over hoe u HTTP/2 activeert op uw website. Deze zorg handelen wij namelijk voor u af. Daarnaast zorgen wij ook voor eenvoudige en gratis SSL installatie op uw website.

Gratis Website Analyse

Benieuwd of uw huidige website goed scoort? Doe dan de gratis website analyse.

Gratis Offerte Aanvragen

Benieuwd wat een nieuwe website kost? Vraag dan een gratis offerte aan.

Stuur ons een bericht

8 + 4 =