Co to jest HTTP/3

Co to jest HTTP-3
HTTP/3 jest następcą HTTP/2. Biorąc pod uwagę, że przejście z HTTP/1.1 na HTTP/2 zajęło 16 lat, czy zająć się tematem HTTP/3?
Domyślasz się pewnie, że tak. Nie pisałabym o tym, jeśli nie uważałbym inaczej. Warto być na bieżąco w tym wątku. Tak jak HTTP/2 dokonał znaczących zmian w stosunku do HTTP/1.1, przełączając się z ASCII na binarny sposób przesyłania danych, tak HTTP/3 ponownie wprowadza znaczące zmiany, tym razem przełączając bazowy transport z TCP na UDP. Ta zmiana jest kluczową zmianą, jaka następuje w tej iteracji zmian.
Chociaż HTTP/3 jest wciąż na etapie projektowania. Oficjalna specyfikacja jest szkicem. Powoli jest wdrażany. Niestety do tego czasu trzeba się liczyć z niestabilnym działaniem tej wersji HTTP/3.
Istnieje jednak wiele niewiadomych i pytań związanych z działaniem HTTP/3. Jakie są korzyści? A co powinni wiedzieć inżynierowie sieci, administratorzy systemów i programiści?
Porównanie HTTP/2 a HTTP/3
- HTTP/2 zapewnia duży wzrost wydajności, ponieważ rozwiązuje problem blokowania nagłówka wiersza HTTP (HOL). Wprowadza multipleksowanie żądania/odpowiedzi, binarne ramkowanie, kompresję nagłówków, priorytetyzację strumienia i push serwera.
- Protokół HTTP/3 jest jeszcze szybszy, ponieważ zawiera cały protokół HTTP/2 i rozwiązuje problem blokowania protokołu TCP HOL. HTTP/3 wciąż jest tylko wersją roboczą. Jest bardziej wydajny, zużywa mniej zasobów (systemowych i sieciowych), wymaga szyfrowania (certyfikaty SSL są obowiązkowe) i wykorzystuje UDP.
- Przeglądarki internetowe prawdopodobnie będą przez jakiś czas nadal obsługiwać starsze wersje protokołu HTTP. Korzyści związane z wydajnością i oraz rankowanie przez wyszukiwarki witryn obsługujących protokół HTTP/3 spowodują przyspieszenie implementacji na szeroką skalę.
- W niedalekiej przyszłości właściciele witryn prawdopodobnie będą również chcieli wspierać HTTP/3. Jest jednak bardziej kontrowersyjny niż HTTP/2 i może mieć naturalnych oponentów w postaci wielkich sieci.
Prerformance
A 100-millisekund opóźnienia w czasie ładowania strony WWW, może obniżyć o 7% współczynnik konwersji!
Źródło: Akamai Online Retail Performance Report: Milliseconds Are Critical
Czy protokół HTTP/3 jest już dostępny?
Podczas gdy standard jest wciąż w fazie rozwoju, właściciele witryn i odwiedzający mogą zacząć otrzymywać wsparcie dla HTTP/3 za pośrednictwem przeglądarek, systemów operacyjnych i innych aplikacji klienckich. Oczywiście czeka nas prawdopodobnie więcej zmian w standardzie, który przeszedł już kilka implementacji.
Po wydaniu HTTP/3 cała sieć nie przełączy się od razu. Wiele witryn nie korzysta jeszcze z HTTP/2.
Jedną z potencjalnych przeszkód dla nowego protokołu jest to, że wymaga on zwiększonego wykorzystania procesora zarówno przez serwer, jak i klienta. Z czasem wpływ ten prawdopodobnie zmniejszy się wraz z rozwojem technologii.
Problem blokowania TCP HOL
Kontrola przeciążenia TCP jest obsługiwana przez zaimplementowane mechanizmy wycofywania i retransmisji pakietów. Dzieje się tak poprzez używanych w przypadku wykrycia utraty spójności danych. Retransmisja zapewnia, że dane zostaną ostatecznie dostarczone w spójnej formie i w całości.

Rozwiązanie problemu TCP HOL
Rozwiązanie problemu blokowania TCP HOL wymagało czegoś więcej niż tylko przejścia na UDP, ponieważ nadal konieczne jest zagwarantowanie prawidłowego i pełnego przesyłu danych przy zagwarantowaniu niskich obciążeń serwera. Protokół QUIC został zaprojektowany w celu poprawy działania tego obszaru. Zapewnia zoptymalizowaną komunikację HTTP przez UDP.
Ponieważ QUIC przejmuje kontrolę nad zarządzaniem strumieniami, ramkami binarnymi itp., niewiele pozostaje do zrobienia dla HTTP/2. Defacto QUIC + HTTP to już HTTP/3.

Model QUIC OSI opiera się na tym, że adres IP jest podstawą łącząca, dwa stosy. Lewy stos protokołów HTTP dodaje TCP, TLS i HTTP/2 do adresu IP. Stos protokołu HTTP po prawej stronie dodaje UDP, specjalny blok i „HTTP przez QUIC”. Specjalny blok zawiera kontrolę przeciążenia QUIC i podobnnie do TCP i możliwość odzyskiwania utraconych danych i dodatkowo blok kodowania/kryptografii QUIC.
Istnieje wiele wersji QUIC, ponieważ protokół był rozwijany i wdrażany w środowiskach produkcyjnych od lat. Istnieje nawet wersja specyficzna dla Google o nazwie GQUIC. W związku z tym ważne jest, aby odróżnić stare protokoły QUIC od nowego standardu HTTP/3.
Co to jest UDP?
Protokół datagramów użytkownika (UDP) jest alternatywą dla TCP. Nie zapewnia wirtualizacji strumienia ani tych samych gwarancji, które oferuje TCP. Zamiast tego zapewnia łatwy sposób umieszczania danych w pakiecie, adresowania go do innego komputera i wysyłania. Jest zawodny, nieuporządkowany i nie jest wyposażony w żadną formę kontroli zatorów i strat.
Jego celem jest lekkość działania i zapewnienie minimum działających funkcji niezbędnych do umożliwienia komunikacji. W ten sposób aplikacja może realizować własne gwarancje. Jest to często bardzo przydatne w aplikacjach czasu rzeczywistego. Na przykład w rozmowach telefonicznych użytkownicy zazwyczaj wolą otrzymywać 90% danych natychmiast, a nie ostatecznie 100% danych.
Czy HTTP/3 jest zawsze szyfrowane?
HTTP/3 zawiera szyfrowanie Jednym z głównych wyzwań implementacyjnych dla HTTP/3 jest konieczność modyfikacji bibliotek TLS/SSL w celu dodania nowej wymaganej funkcjonalności.

Ta zmiana jest spowodowana tym, że HTTP/3 różni się od HTTPS pod względem sposobu szyfrowania. W przypadku starszego protokołu HTTPS tylko same dane są chronione przez TLS, pozostawiając odkodowane pozostałe dane. W HTTP/3 chronione są zarówno dane, jak i protokół transportowy. Protokół optymalizuje nadmiarowe działania obecne w HTTP/2. W związku z tym szyfrowanie protokołu transportowego, a także danych, w rzeczywistości zwiększa wydajność protokołu.
Podsumowanie
Nowy protokół jest szybszy i rozbudowuje obecnie stosowany. Niemniej, nie sądzę, by był szybko rozpropagowany i dostępny jako ten główny. Ciekawy jestem, kiedy hostingi dla WordPress będą wyposażone w HTTP/3 jako standard.
Artykuł uaktualniony 2 lata
2 Comments
Czy rzeczywiście tego typu rozwiązania są już dostępne? czy warto korzystać z niedokońca sprawdzonych rozwiązań
Z mojej wiedzy wynika, że jeśli hosting oferuje rozwiązanie HTTP/3 to jest ono w pełnej wersji działającej. Oznacza to, że zastosowane funkcje są w pełni sprawne.