HTTP/3.0 fick föreslagen standardstatus

IETF (Internet Engineering Task Force), som ansvarar för utvecklingen av Internetprotokoll och arkitektur, har slutfört bildandet av en RFC för HTTP/3.0-protokollet och publicerat relaterade specifikationer under identifierarna RFC 9114 (protokoll) och RFC 9204 ( QPACK header komprimeringsteknik för HTTP/3) . HTTP/3.0-specifikationen har fått status som ”Proposed Standard”, varefter arbetet påbörjas för att ge RFC status som ett utkast till standard (Draft Standard), vilket egentligen innebär en fullständig stabilisering av protokollet och med hänsyn till alla kommentarerna. Samtidigt publicerades uppdaterade versioner av specifikationerna för HTTP/1.1 (RFC 9112) och HTTP/2.0 (RFC 9113) protokollen, liksom dokument som definierar semantiken för HTTP-förfrågningar (RFC 9110) och HTTP-cachekontrollhuvuden (RFC 9111).

HTTP/3-protokollet definierar användningen av QUIC-protokollet (Quick UDP Internet Connections) som en transport för HTTP/2. QUIC är en förlängning av UDP-protokollet som stöder multiplexering av flera anslutningar och tillhandahåller krypteringsmetoder motsvarande TLS/SSL. Protokollet skapades 2013 av Google som ett alternativ till TCP+TLS-kombinationen för webben, vilket löser problem med långa anslutningsinställningar och förhandlingstider i TCP och eliminerar förseningar när paket går förlorade under dataöverföring.

HTTP/3.0 fick föreslagen standardstatus

För närvarande är QUIC och HTTP/3.0-stöd redan implementerat i alla populära webbläsare (i Chrome, Firefox och Edge är HTTP/3-stöd aktiverat som standard, och i Safari kräver det inställningen "Avancerade > Experimentella funktioner > HTTP/3" ska aktiveras). På serversidan finns HTTP/3-implementationer tillgängliga för nginx (i en separat gren och i form av en separat modul), Caddy, IIS och LiteSpeed. HTTP/3-stöd tillhandahålls också av Cloudflares innehållsleveransnätverk.

Nyckelfunktioner hos QUIC:

  • Hög säkerhet liknande TLS (QUIC ger i huvudsak möjlighet att använda TLS över UDP);
  • Flödesintegritetskontroll, förhindrar paketförlust;
  • Möjligheten att omedelbart upprätta en anslutning (0-RTT, i cirka 75 % av fallen kan data överföras omedelbart efter att anslutningspaketet har skickats) och ger minimala förseningar mellan att skicka en förfrågan och ta emot ett svar (RTT, Round Trip Time);
    HTTP/3.0 fick föreslagen standardstatus
  • Användning av ett annat sekvensnummer vid återsändning av ett paket, vilket undviker tvetydighet vid identifiering av mottagna paket och tar bort timeouts;
  • Förlust av ett paket påverkar endast leveransen av strömmen som är associerad med den och stoppar inte leveransen av data i parallella strömmar som överförs genom den aktuella anslutningen;
  • Felkorrigeringsfunktioner som minimerar förseningar på grund av återsändning av förlorade paket. Användning av speciella felkorrigeringskoder på paketnivå för att minska situationer som kräver återsändning av förlorad paketdata.
  • Kryptografiska blockgränser är anpassade till QUIC-paketgränser, vilket minskar effekten av paketförluster på avkodning av innehållet i efterföljande paket;
  • Inga problem med TCP-köblockering;
  • Stöd för anslutningsidentifierare, vilket minskar tiden det tar att upprätta en återanslutning för mobila klienter;
  • Möjlighet att ansluta avancerade mekanismer för kontroll av överbelastning av anslutningar;
  • Använder tekniker för prognostisering av genomströmning per riktning för att säkerställa att paket skickas med optimala hastigheter, vilket förhindrar att de blir överbelastade och orsakar paketförlust;
  • Betydande ökning av prestanda och genomströmning jämfört med TCP. För videotjänster som YouTube har QUIC visat sig minska återlagringsoperationer när du tittar på videor med 30 %.

Bland ändringarna i HTTP/1.1-specifikationen kan man notera förbudet mot isolerad användning av vagnreturtecknet (CR) utanför kroppen med innehåll, d.v.s. I protokollelement kan CR-tecknet endast användas tillsammans med line feed-tecknet (CRLF). Algoritmen för chunked request layout har förbättrats för att förenkla separationen av bifogade fält och sektioner med rubriker. Lade till rekommendationer för hantering av tvetydigt innehåll för att blockera "HTTP Request Smuggling"-attacker, vilket gör att vi kan kila in oss i innehållet i andra användares förfrågningar i flödet mellan frontend och backend.

Uppdateringen av HTTP/2.0-specifikationen definierar uttryckligen stöd för TLS 1.3. Utfasade prioriteringsschemat och tillhörande rubrikfält. Den oanvända mekanismen för att uppdatera anslutningen med HTTP/1.1 har förklarats föråldrad. Minskade krav på kontroll av fältnamn och värden. Vissa tidigare reserverade ramtyper och parametrar föreslås användas. De förbjudna rubrikfälten relaterade till anslutningen är mer exakt definierade.

Källa: opennet.ru

Lägg en kommentar