Wat is HTTP / 2 en wat doet het?



Probeer Ons Instrument Voor Het Oplossen Van Problemen

In de afgelopen 20 jaar is het World Wide Web dramatisch geëvolueerd. Alle verbeterde webtechnologieën vereisen betere en snellere oplossingen en protocollen voor communicatie en bestandsoverdracht dan de huidige (HTTP), die hun technologische limieten bereiken.





Wat is HTTP / 2?

HTTP / 2 is de nieuwste versie van Hypertext Transport Protocol (HTTP) - het onderliggende protocol dat wordt gebruikt door het World Wide Web . Het werd aanvankelijk goedgekeurd in februari 2015. Dat is bijna 20 jaar na de oorspronkelijke HTTP. HTTP / 2 vermindert laadtijden en zorgt voor enorme verbeteringen in de communicatie tussen servers en browsers. De meerderheid van de browsers heeft HTTP / 2 al toegevoegd, en het heeft niet veel dingen veranderd vanuit het perspectief van de gebruikers. Dat is de belangrijkste reden waarom velen van ons het nog niet hebben gelezen of gehoord.



Wat doet HTTP / 2?

Als opvolger van HTTP, HTTP / 2 richt zich op het verbeteren van alle kenmerken van HTTP . Om achterwaartse compatibiliteit met het oudere protocol te behouden, behoudt het de meeste functionaliteit van HTTP. Het introduceert echter enkele drastische verbeteringen.

Zowel HTTP als HTTP / 2 definiëren:

  • Welke acties webbrowsers en servers moeten ondernemen als reactie op verschillende opdrachten.
  • Hoe elk stukje informatie via internet van de ene naar de andere computer wordt overgebracht.
  • Hoe berichten worden gemaakt, geformatteerd en verzonden.

Met andere woorden, HTTP en HTTP / 2 bepalen de standaarden voor de manier waarop webinhoud op uw computer wordt afgeleverd, met het verschil dat HTTP / 2 alles sneller maakt dan zijn voorganger. Hier kunt u in detail zien wat HTTP / 2 doet.



Gemultiplexte streams

Bidirectionele series tekstformaatframes die via het HTTP / 2-protocol tussen een server en client worden verzonden, worden ‘streams’ genoemd. HTTP kan slechts één van deze 'streams' tegelijk verzenden. Nadat de stream is verzonden, is er een vertraging tussen de volgende streamoverdracht.

HTTP / 2 brengt een nieuwe binaire framing-laag tot stand die het probleem met het één voor één verzenden van 'streams' direct oplost. Hiermee kunnen clients en servers de HTTP / 2-payload opsplitsen in kleine, onafhankelijke en gemakkelijk te beheren interleaved frame-sequenties. Al deze informatie wordt weer in elkaar gezet zodra deze aan de andere kant is ontvangen. Dit protocol maakt de uitwisseling mogelijk van meerdere, gelijktijdig open en onafhankelijke bidirectionele sequenties zonder latentie tussen opeenvolgende streams.

Voordelen:

  • De parallelle gemultiplexte verzoeken en reacties blokkeren elkaar niet.
  • Een enkele TCP-verbinding kan een effectief gebruik van netwerkbronnen garanderen, zelfs bij het verzenden van meerdere datastromen.
  • Snellere webprestaties, verminderde latentie en betere resultaten van zoekmachines.
  • Verminderde CapEx en OpEx bij het runnen van netwerk- en IT-bronnen.

HTTP / 2-server push en cachepush

Dit is een mogelijkheid waarmee servers extra cachebare informatie naar klanten kunnen sturen . Die informatie wordt niet gevraagd, maar wordt verwacht voor toekomstige verzoeken. Als de cliënt een bron A aanvraagt ​​en het is bekend dat een andere bron B wordt verwezen met de gevraagde, kan de server B samen met A pushen in plaats van te wachten op een ander verzoek van de cliënt. Vervolgens slaat de client de gepushte bron B op in de cache voor toekomstig gebruik. Deze functie bespaart een heel proces van aanvraag-antwoord-retouren en vermindert de netwerklatentie. Google introduceerde oorspronkelijk Server Push in SPDY-protocol.

Een andere verbetering in HTTP / 2 is Cache Push. Hierdoor wordt de cache van de client proactief bijgewerkt of ongeldig gemaakt. Hierdoor kunnen servers mogelijke pushbare bronnen identificeren die klanten eigenlijk niet willen.

Voordelen:

  • Klanten kunnen gepushte bronnen weigeren om een ​​efficiënte opslagplaats van bronnen in de cache te onderhouden (of zelfs Server Push volledig uitschakelen).
  • Clients kunnen het aantal gepushte streams die gelijktijdig worden gemultiplexed, beperken.
  • Servers kunnen prioriteit geven aan gepushte bronnen. Dit is een sleutel in het prestatieverschil tussen HTTP / 2 en HTTP.
  • Servers kunnen gepushte bronnen multiplexen samen met de gevraagde informatie van de klant binnen dezelfde TCP-verbinding.
  • Clients kunnen de bronnen in de cache op verschillende pagina's gebruiken.
  • Clients slaan gepushte bronnen op in het cachegeheugen.

Binaire protocollen

HTTP / 2 heeft aanzienlijk verbeterde mogelijkheden bij het omzetten van tekstprotocol naar een binair protocol . Terwijl HTTP wordt gebruikt om tekstopdrachten te verwerken om verzoek-antwoordcycli uit te voeren, vertrouwt HTTP / 2 op binaire opdrachten. Dat verkort de tijd (tot 1s en 0s) voor het uitvoeren van dezelfde taken.

Browsers met HTTP / 2-ondersteuning zetten de tekstopdrachten om in binaire code voordat ze deze via het netwerk verzenden. De binaire framelaag is echter niet achterwaarts compatibel met HTTP-servers en clients.

Voordelen:

  • Voorkomen van beveiligingsproblemen die verband houden met de tekstuele aard van HTTP (bijv. Aanvallen op het splitsen van reacties).
  • Maakt HTTP / 2-mogelijkheden mogelijk, zoals compressie, prioriteitstelling, multiplexing, effectieve afhandeling van TLS en stroomregeling.
  • Compacte weergave van opdrachten die een eenvoudigere implementatie en verwerking mogelijk maken.
  • Robuuste en effectieve gegevensverwerking tussen clients en servers.
  • Verbeterde doorvoer en verminderde netwerklatentie.
  • Minder kans op fouten in vergelijking met HTTP.
  • Zeer efficiënt gebruik van netwerkbronnen.
  • Lage overhead bij het parseren van gegevens.
  • Lichtere netwerkvoetafdruk.

Prioritering van streams

Met HTTP / 2 kunnen clients voorkeuren voor bepaalde gegevensstromen opgeven. De servers zijn niet verplicht de instructies van deze clients op te volgen, maar met dit mechanisme kunnen servers de toewijzing van netwerkbronnen optimaliseren op basis van de gebruikersvereisten .

Streamprioritering werkt met gewicht en afhankelijkheden die aan elke stream zijn toegewezen. Ondanks het feit dat alle streams inherent van elkaar afhankelijk zijn, behalve dat ze een gewicht hebben tussen 1 en 256. Mechanismen voor het prioriteren van streams zijn nog steeds een onderwerp van discussie. Wanneer Stream Prioritization echter wordt gecombineerd met de HTTP / 2-mogelijkheid om meerdere gegevensstromen in één TCP-verbinding te verwerken, kan dit leiden tot een gelijktijdige aankomst van serververzoeken met verschillende prioriteit.

Voordelen:

  • Minder negatieve effecten van zorgen over netwerklatentie.
  • Verbeterde gebruikerservaring en laadsnelheid van pagina's.
  • Optimalisatie in datacommunicatie tussen servers en clients.
  • Zeer effectief gebruik van netwerkbronnen.
  • Kortere levertijd voor verzoeken om primaire inhoud.

Stateful Header-compressie

Wanneer gebruikers met behulp van HTTP door websites met media-rijke inhoud bladeren, pushen clients meerdere vrijwel identieke headerframes. Dit is het geval omdat elk clientverzoek zoveel informatie moet bevatten als de server nodig heeft om de gevraagde bewerking uit te voeren. Dit proces leidt tot latentie en onnodig verbruik van bronnen.

HTTP / 2 biedt de mogelijkheid om een ​​groot aantal redundante headerframes te comprimeren. Het vertrouwt op HPACK-specificatie als een veilige en eenvoudige benadering van headercompressie . Clients en servers houden een lijst bij met headers die zijn gebruikt in eerdere client-serververzoeken. Hiermee worden de problemen met overtollige headerframes direct aangepakt.

Voordelen:

  • Codeert veelgebruikte headers en grote headers. Dat elimineert de noodzaak om hele headerframes te verzenden. De individuele grootte van elke stroom krimpt aanzienlijk.
  • Voorkomen van beveiligingsaanvallen zoals CRIME door datastromen te verkennen met gecomprimeerde headers.
  • Efficiënt gebruik van multiplexmechanismen.
  • Efficiënte prioriteitstelling van streams.
  • Minder overheadkosten.

Real-world voordelen van HTTP / 2

HTTP / 2 is gericht op het maximaliseren van het potentieel van technologie , om aan toekomstige behoeften en verwachtingen te voldoen. Dit zijn de praktische voordelen van het gebruik van HTTP / 2.

Webprestaties en mobiele webprestaties - HTTP / 2 heeft de mogelijkheid om meer gegevens te verzenden en te ontvangen in één client-server-communicatiecyclus. Het werkt goed om de latentie te verminderen bij het verkrijgen van toegang tot internetdiensten op mobiele datanetwerken en netwerken met beperkte bandbreedte per gebruiker.

Goedkoper snel internet - HTTP / 2 verhoogt de effectiviteit van datacommunicatie. Dat stelt internetproviders in staat om de totale kosten te verlagen met behoud van de normen van supersnel internet.

Veiligheid - HTTP / 2 is niet kwetsbaar voor de bedreigingen die zijn gericht op op tekst gebaseerde protocollen voor toepassingslagen. Bovendien maakt het gebruik van de 'Security by Obscurity' -benadering om gevoelige gegevensoverdracht tussen clients en servers te beschermen.

Uitgebreid bereik - HTTP / 2-voordelen verminderen de internetresultaten voor providers. Dat zal wereldwijd leiden tot een bredere internetdekking.

Media-rijke webervaring - De technologiefuncties en voordelen die HTTP / 2 op het World Wide Web brengt, bieden een infrastructuur die media-rijke inhoud kan leveren met hogere laadsnelheden van pagina's.

Inpakken

HTTP / 2 is een relatief nieuw protocol, maar de ondersteuning ervoor groeit voortdurend. Tegenwoordig ondersteunen de meeste internetbrowsers HTTP / 2 (Microsoft Edge, Google Chrome, Safari, Firefox, Chrome voor Android). Veel webservers bevatten native HTTP / 2-ondersteuning (Apache HTTP Server, Tomcat, NGINX). HTTP / 2 is zonder twijfel het WWW-protocol van de toekomst.

5 minuten gelezen