HTTP / 2 is een nieuwe manier om waardoor uw website veel sneller wordt geladen door het elimineren van vele inefficiënties verbonden aan de huidige versie van HTTP. Het mooiste eraan? Je hoeft niet te veel moeite te doen om het op gang te krijgen.

Of wel?

Wat is HTTP / 2?

Toen HTTP1 en HTTP1.1 oorspronkelijk werden ontwikkeld, was het web heel anders dan het nu is. Websites hadden minder hulpmiddelen (JavaScript-bestanden, CSS-bestanden, afbeeldingen) dan nu. Verbindingen met internet waren niet erg snel en gebruikers waren niet erg kieskeurig met de laadsnelheid van de website.

Gebruikers beginnen jeukende vingers te krijgen wanneer een site langer dan 3 seconden nodig heeft om een ​​reactie weer te geven.

Je was blij dat een website volledig geladen was. Je hebt mogelijk in het geheim geklaagd dat het laden traag was. Maar je kon er niet echt veel aan doen. Dat komt omdat de trage laadtijd meestal afkomstig was van factoren die onafhankelijk waren van de webserver en de technologie die u gebruikte. Meestal was het de eigenlijke internetverbinding die de belangrijkste beperkende factor was.

Snel vooruit naar vandaag. Geweldige laadtijd van de website wordt gemeten in milliseconden in plaats van seconden. Gebruikers beginnen jeukende vingers te krijgen wanneer een site langer dan 3 seconden nodig heeft om een ​​reactie weer te geven. In dit soort situaties worden inefficiënties geteld in milliseconden die zijn gekoppeld aan de oorspronkelijke versies van HTTP start een echt verschil maken. Daarom krijg je zoveel artikelen te bespreken hoe u uw website sneller kunt maken . Omdat milliseconden er toe doen.

De nieuwe versie van HTTP, bekend als HTTP / 2 adresseert specifieke bekende problemen van HTTP. Het doel is om een ​​aantal problemen aan te pakken die nog duidelijker zijn geworden sinds het web is geëvolueerd naar grotere en grotere websites met veel meer CSS-, JS- en afbeeldingsbestanden dan aanvankelijk verwacht.

Maar wat is er mis met HTTP1.x en waarom besteden we zoveel moeite om het sneller te maken?

De problemen van HTTP1.x

HTTP1.x heeft een aantal inherente problemen. Laten we eigenlijk geen problemen noemen. HTTP1.x heeft een aantal manieren waarop het efficiënter kan zijn.

  1. HTTP 1.x is gebaseerd op tekst: oorspronkelijk was het idee dat HTTP1.x voor de mens leesbaar moest zijn, dus het was volledig op tekst gebaseerd. Per definitie hebben alle op tekst gebaseerde protocollen inefficiënties die daarmee zijn geassocieerd, zoals witruimte, koppelingsonderbrekingen, hoofdletters, etc.
  2. Er is maar één bestand tegelijk overgezet: dit is een van de grootste problemen met de 1.x-versies van HTTP. Stelt u zich eens voor dat u een bezorger bent die slechts één pakket tegelijk kan leveren. Ze moeten elke keer dat ze het volgende pakket moeten afleveren terug naar de basis gaan.
  3. Honderden verzoeken zijn vereist voor de websites van vandaag: met meer geavanceerde thema's betekent dit dat de grootte van de websites en het aantal bronnen groeit. En dat geldt ook voor de tijd die het kost om elke resource te laden. Vergeet niet dat onze "bezorger" elke keer weer terug moet gaan naar de basis, ze kunnen niet meer dan één bestand tegelijk overdragen.
  4. Elke verbinding is een zware technische bewerking: omdat er honderden verbindingen nodig zijn, begint deze ernstige overhead te accumuleren. Doordat de laadtijd in milliseconden wordt gemeten, begint de gecombineerde tijd die nodig is om een ​​verbinding voor honderden bronnen tot stand te brengen, zeer aanzienlijk.

Vaak moesten webontwerpers specifieke maatregelen nemen om deze inefficiënties te verminderen. Tijdelijke oplossingen zoals CSS-sprites, minificatie en het combineren van bestanden zijn bedoeld om problemen met het laden van websites te verhelpen.

Dit zijn in essentie workarounds in plaats van fixes.

Hoe HTTP / 2 de problemen van HTTP1.x oplost

HTTP / 2 is ontworpen en geëvolueerd van SPDY , een protocol ontworpen op Google gericht op het 2x sneller maken van het web. Het adresseert HTTP-problemen op de volgende manier

  1. HTTP / 2 is bedoeld voor consumptie door machines (uw webbrowser en de webserver van uw website) in plaats van mensen. Het is binair in plaats van tekst gebaseerd waardoor het inherent efficiënter is. Overdracht en parsering van de gegevens verloopt sneller met binaire protocollen.
  2. Meerdere bestanden kunnen tegelijkertijd op dezelfde verbinding worden overgedragen . Correcties zijn zodanig geïmplementeerd dat u pijplijnbronnen op dezelfde verbinding kunt gebruiken. In plaats van iedere keer een nieuwe verbinding te moeten openen (onze bezorger gaat terug naar de basis), kunnen alle bronnen op dezelfde verbinding worden uitgevoerd (onze bezorger dumpt alles in een busje en neemt alles in één keer op).
  3. Server push om bestanden te verzenden die vereist zijn door de browser. In HTTP1.x is het de webbrowser die de webserver vraagt ​​naar de benodigde resources. Met HTTP Server Push (geïmplementeerd als onderdeel van HTTP / 2) kan de server bronnen verzenden waarvan hij weet dat de webbrowser dit nodig heeft. U kunt de server bijvoorbeeld opdragen niet te wachten tot de browser vraagt ​​naar de CSS-, JS- en andere bronbestanden die de browser sowieso nodig heeft.
  4. HTTP-pakket Koptekst en andere optimalisaties - dit zijn technische verbeteringen die zijn ontworpen om de daadwerkelijke efficiëntie van overdrachten te verbeteren

Wat is vereist om HTTP2 in te schakelen?

Door HTTP / 2 niet te ondersteunen via niet-versleutelde verbindingen, zijn website-eigenaren sterk gewapend in het implementeren van HTTP's voor hun website.

Terug aan het begin van het artikel zeiden we dat je niet veel moeite hoeft te doen om HTTP / 2 in te schakelen. HTTP / 2 inschakelen is iets dat moet worden gedaan op het niveau van de webserver. De meeste webservers zoals Apache, Nginx, IIS en andere grote webservers hebben al ondersteuning voor HTTP / 2.

Als u uw eigen webserver draait, hoeft u alleen de HTTP / 2-bibliotheken te installeren en in te schakelen. Als uw website wordt gehost bij een hostingbedrijf, vraag dan bij het bedrijf of de webserver al is ingeschakeld voor HTTP / 2.

De vangst? Beveiligde certificaten

Misschien was het te mooi om waar te zijn. We hebben zojuist besproken hoe webservers HTTP / 2 al volledig ondersteunen.

De meeste grote webbrowsers ondersteunen ook volledig HTTP / 2. Ze hebben er echter ook voor gekozen om alleen HTTP / 2 in de gecodeerde modus te ondersteunen. De reden hiervoor is dat er een sterke beweging is geweest om HTTPS (codering) overal op internet mogelijk te maken. Dergelijke initiatieven zoals HTTPS overal sterk de noodzaak van HTTPS op alle websites.

Door HTTP / 2 niet te ondersteunen via niet-versleutelde verbindingen, zijn website-eigenaren sterk gewapend in het implementeren van HTTP's voor hun website.

Natuurlijk is dit niet noodzakelijk een slechte zaak. Het implementeren van HTTPS heeft aanzienlijke beveiligings- en privacyvoordelen. Met bedrijven die samenkomen om een ​​Certificate Authority genaamd te vormen Laten we versleutelen om gratis veilige certificaten toe te staan, worden de totale kosten om daadwerkelijk een certificaat te verkrijgen en implementeert HTTPS veel goedkoper. Dit was relatief duur tot een tijdje geleden.

Het implementeren van HTTPS is niet iets dat je zou moeten doen zonder het de nodige aandacht te geven. U kunt dit waarschijnlijk bespreken met uw vertrouwde website-ontwikkelaar of iemand met voldoende technische expertise. Meestal moet uw hostingbedrijf u hierin kunnen begeleiden.

Uiteraard wordt het ten zeerste aanbevolen om HTTPS te implementeren. Naast de extra beveiliging, krijg je de mogelijkheid om HTTP / 2 in te schakelen en je website sneller te maken. Dat is wat we een win-win situatie noemen.

Zijn andere optimalisatietechnieken nog steeds nodig?

Ja en nee.

Bepaalde optimalisaties gericht op het verminderen van webverzoeken worden overbodig. Als uw site bezig is met berekeningstijd om JS, CSS en andere bestanden te "combineren", is dit feitelijk een overheadkost geworden. Elke keer dat er "verspild" is om de bovengenoemde inefficiënties aan te pakken, is dit niet langer nodig.

Aan de andere kant moeten dergelijke optimalisaties, zoals caching, vermindering van de omvang van bronnen, levering van inhoud via een CDN, kiezen van een geweldige hostingserver en andere optimalisaties die verschillende soorten inefficiënties aanpakken, op hun plaats blijven.

Het leuke aan HTTP / 2 is dat het niet alleen de laadtijd van uw website versnelt, maar ook dat u uw website veiliger maakt. Er is geen reden om aan te nemen dat beide voordelen hebben. HTTP / 2 is de volgende stap om al het internet sneller te maken. Laten we allemaal deel uitmaken van het en het laten gebeuren.