IETF (Internet Engineering Task Force), som arbetar med utvecklingen av internetprotokoll och arkitektur, har slutfört utarbetandet av RFC för protokollet HTTP/3.0 och publicerat relaterade specifikationer med identifierarna RFC 9114 (protokoll) och RFC 9204 (teknologin för komprimering av rubriker QPACK för HTTP/3). Specifikationen för HTTP/3.0 har fÄtt status "Föreslagen standard", efter vilken arbetet med att ge RFC status som utkaststandard (Draft Standard) kommer att inledas, vilket i praktiken betyder full stabilisering av protokollet och beaktande av alla framförda kommentarer. Samtidigt publicerades uppdaterade versioner av specifikationerna för protokollen HTTP/1.1 (RFC 9112) och HTTP/2.0 (RFC 9113), samt dokument som definierar semantik för HTTP-förfrÄgningar (RFC 9110) och HTTP-rubriker för cachekontroll (RFC 9111).
Protokollet HTTP/3 definierar anvÀndningen av protokollet QUIC (Quick UDP Internet Connections) som transport för HTTP/2. QUIC Àr en överbyggnad pÄ UDP-protokollet som stöder multiplexering av flera anslutningar och tillhandahÄller krypteringsmetoder som motsvarar TLS/SSL. Protokollet skapades Är 2013 av Google som ett alternativ till kombinationen TCP+TLS för webben, vilket löser problem med lÄng tid för att etablera och samordna anslutningar i TCP och minskar latens vid paketförlust under datatransmission.

För nÀrvarande har stöd för QUIC och HTTP/3.0 redan implementerats i alla populÀra webblÀsare (i Chrome, Firefox och Edge Àr stöd för HTTP/3 aktiverat som standard, medan det i Safari krÀver aktivering av instÀllningen "Advanced > Experimental Features > HTTP/3"). PÄ serversidan finns implementeringar av HTTP/3 tillgÀngliga för nginx (i en separat gren och som en separat modul), Caddy, IIS och LiteSpeed. Stöd för HTTP/3 erbjuds ocksÄ av innehÄllsleveransnÀtverket Cloudflare.
Huvudfunktioner i QUIC:
- Hög sÀkerhet, liknande TLS (i praktiken ger QUIC möjlighet till anvÀndning av TLS över UDP);
- Kontroll av strömmens integritet, vilket förhindrar pak förlust;
- Möjlighet att omedelbart etablera anslutning (0-RTT, i cirka 75% av fallen kan data överföras omedelbart efter att installationspaketet har skickats) och sÀkerstÀlla minimi-latens mellan begÀran och svar (RTT, Round Trip Time);

- AnvÀndning av ett annat sekvensnummer vid omöverföring av paket, vilket undviker tvetydighet vid identifiering av mottagna paket och eliminerar tidsavbrott;
- Paketsförlust pÄverkar endast leveransen av den relaterade strömmen och stoppar inte dataöverföringen i parallella strömmar som sÀnds via den aktuella anslutningen;
- Felkorrekteringsmedel som minimerar förseningar pÄ grund av Äteröverföring av förlorade paket. AnvÀndning av speciella felkorrekteringskoder pÄ paketnivÄ för att minska situationer dÀr Äteröverföring av förlorad data krÀvs.
- GrÀnserna för kryptografiska block överensstÀmmer med grÀnserna för QUIC-paketen, vilket minskar pÄverkan av paketförluster pÄ avkodningen av innehÄllet i efterföljande paket;
- Ingen köblockering som uppstÄr i TCP;
- Stöd för anslutningsidentifierare som gör att tiden för att Äteransluta till mobila kunder minskar;
- Möjlighet att ansluta avancerade mekanismer för överbelastningskontroll;
- AnvÀndning av tekniker för kapacitetsprognoser i varje riktning för att sÀkerstÀlla optimal paketöverföringstakt och förhindra att man hamnar i en överbelastad status dÀr paketförluster observeras;
- En mÀrkbar ökning av prestanda och bandbredd jÀmfört med TCP. För videotjÀnster som YouTube har anvÀndningen av QUIC visat en minskning av buffring under videovisning med 30%.
Bland förÀndringarna i specifikationen för HTTP/1.1 kan nÀmnas förbudet mot anvÀndning av ÄtergÄngssymbolen (CR) utanför innehÄllskroppen, det vill sÀga i protokollens element kan CR endast anvÀndas tillsammans med radmatningssymbolen (CRLF). Algoritmen för chunked-förfrÄgningar har reviderats för att förenkla separationen av bifogade fÀlt och rubriksektionen. Riktlinjer har lagts till för att hantera tvetydigt innehÄll för att blockera attacker av typen 'HTTP Request Smuggling', vilket möjliggör inbrytning i andra anvÀndares förfrÄgningar i flödet mellan frontend och backend.
I uppdateringen av specifikationen för HTTP/2.0 definieras stöd för TLS 1.3 tydligt. Schemat för prioritering och relaterade fÀlt i rubrikerna har klassificerats som förÄldrat. Den underutvecklade mekanismen för uppdatering av anslutning frÄn HTTP/1.1 har förklarats som förÄldrad. Kraven pÄ fÀlt- och vÀrdeförteckningar har minskats. Vissa tidigare reserverade ramtyper och parametrar har föreslagits för anvÀndning. Förbjudna rubrikfÀlt relaterade till anslutningen har definierats mer noggrant.
KĂ€lla: opennet.ru

