Nadeszła era HTTP/3. Co wnosi nowy standard komunikacji?
HTTP/3 ma ciągle status szkicu. Prawda jest jednak taka, że wielu dostawców usług hostingowych już chwali się wdrożeniem obsługi tego protokołu na swoich serwerach.
Warto się nim zainteresować - technologie wykorzystywane w tego typu połączeniach stawiają doświadczenie użytkownika na pierwszym miejscu - dzięki temu może być szybciej, bezpieczniej i wydajniej.
Protokół HTTP
HTTP to podstawa Internetu. Hypertext Transfer Protocol czyli protokół przesyłania hipertekstu jest niezbędny do wyświetlania się strony w przeglądarce użytkownika.
Protokół jest wykorzystywany do komunikacji pomiędzy komputerami w Internecie. W ramach protokołu HTTP klient wysyła do serwera żądanie wyświetlenia strony. Serwer przetwarza to żądanie, a następnie przesyła zasoby do przeglądarki użytkownika - umożliwiając wyświetlenie witryny.
HTTP jest internetowym standardem, który zmienia się przez lata. Jego początków należy upatrywać wraz z początkiem sieci internetowej. Jedna z najpopularniejszych odsłon tego standardu to HTTP/1.1. Jest ona w użyciu już od 1997 roku.
Kolejna ważna zmiana miała miejsce w 2015 roku. Wówczas to - w oparciu o rozwiązania dostarczone bezpośrednio przez Google (protokół SPDY) - rozpoczęto wdrażanie standardu HTTP/2. Celem było przede wszystkim zwiększenie prędkości i wydajności połączeń. Jednak obecnie to właśnie HTTP/3 wzbudza największe zainteresowanie.
Co nowego w HTTP/3?
Najnowsza generacja protokołu - HTTP/3 - przynosi kolejne usprawnienia, w szczególności w zakresie szybkości i bezpieczeństwa. Także w przypadku tej generacji dużą rolę odegrały rozwiązania od Google - a konkretniej protokół QUIC (HTTP/3 roboczo nazywany był właśnie HTTP-over-QUIC). Bardzo istotne okazało się także odejście od protokołu TCP.
TCP a UDP
HTTP jest protokołem najwyższego szczebla. Jest on wykorzystywany w warstwie aplikacyjnej. Do bezpośredniej komunikacji pomiędzy przeglądarką a serwerem stosuje się protokoły komunikacyjne.
W dotychczasowych generacjach HTTP komunikacja opierała się na TCP (Transmission Control Protocol). W tym protokole jakiekolwiek zagubienie danych (wysyłanych pakietami) wymaga ponownego nawiązania połączenia i rozpoczęcie procesu od nowa. W konsekwencji pozostałe pakiety mogą zostać utracone, a czas konieczny na przesłanie zasobów zwiększa się.
HTTP/3 odchodzi TCP na rzecz UDP (User Data Protocol). W tym protokole pakiety danych przesyłane są strumieniami - niezależnie od siebie. W konsekwencji - zagubienie pakietu danych nie prowadzi do konieczności retransmisji połączenia. Eliminuje to ryzyko tzw. blokowania nagłówków, czyli zatorów, które wytwarzają się podczas połączenia między serwerem a przeglądarką.
Wiele kanałów komunikacji oznacza mniejszą szansę na zator - slidetodoc.com
Redukcja handshake’ów w QUIC
UDP jako protokół też ma już swoje lata. Jego początki sięgają lat 80-tych poprzedniego wieku. W HTTP/3 wykorzystywany jest protokół QUIC UDP. Czym się charakteryzuje?
QUIC to protokół oparty na UDP opracowany przez Google w ostatniej dekadzie. Wcześniej wspomniana przewaga nad protokołem TCP, to tylko jeden z atutów tego protokołu.
Jeżeli do wyświetlania strony wykorzystywane są protokoły TCP oraz TLS, to każdy z nich potrzebuje odrębnej konfiguracji. W praktyce każdy z nich wymaga dodatkowych
“podróży” zasobów pomiędzy przeglądarką a serwerem - mówiąc prostym językiem: z rozpoczęciem każdego procesu trzeba czekać na zakończenie poprzedniego. A czas leci.
W HTTP/3 wygląda to nieco inaczej. Redukcja handshake’ów (czyli wymiany informacji pomiędzy dwoma urządzeniami) koniecznych do nawiązania i skonfigurowania połączenia prowadzi do tego, że proces ten przebiega znacznie szybciej.
W prostych słowach - jeden handshake wystarczy do przekazania kilku razy więcej informacji (niż w przypadku poprzedniej generacji HTTP), a brak konieczności jego powtarzania oznacza sporą oszczędność czasu. W konsekwencji - strona wyświetla się znacznie szybciej.
Szybsze nawiązywanie połączenia w HTTP/3 w praktyce.
Możliwość przeniesienia połączenia
Każda nowa generacja HTTP ma w coraz większym stopniu odpowiadać na zapotrzebowania internautów. Jednym z tego efektów jest możliwość migracji połączenia - np. pomiędzy komórkową transmisją danych a WiFi.
Bez HTTP/3 zmiana z LTE na WiFi w telefonie prowadzi do zerwania połączenia i konieczności nawiązania nowego. Dzięki technologii używanej przez HTTP/3, nawet zmiana adresu IP podczas połączenia nie musi prowadzić do jego zerwania. Czyli znowu oznacza to szybsze i bardziej wydajne połączenie.
Bezpieczeństwo w pakiecie
QUIC ma wbudowany protokół TLS (Transport Layer Security). To kolejny atut generacji HTTP/3. Dzięki TLS możliwe jest nawiązywanie bezpiecznych, zabezpieczonych kryptograficznie połączeń. To rozwinięcie szyfrowania SSL, które zapewnia integralność przesyłanych informacji.
Dzięki temu już sam HTTP ma wbudowane odpowiednie zabezpieczenia - w tej generacji nie ma już możliwości nawiązywania niezabezpieczonego połączenia (czyli takiego bez HTTPS). Korzysta z tego przede wszystkim użytkownik - który przesyłając dane może liczyć na ich odpowiednie zabezpieczenie i integralność.
Czy mamy już erę HTTP/3?
Podsumowując - HTTP/3 to kolejne udogodnienie pozwalające na szybsze korzystanie z Internetu. Dzięki tej generacji połączenie może być bardziej wydajne i bezpieczne. Skorzystać mogą na tym przede wszystkim:
- użytkownicy mobilny - dzięki możliwości migracji połączenia pomiędzy sieciami;
- użytkownicy mediów streamingowych - bo HTTP/3 redukuje nawet o 30% buforowań w YouTube;
- każdy internauta - bo z nowym protokołem strona będzie ładować się szybciej.
Nie zmienia to faktu, że HTTP/3 dalej jest w fazie szkicu. W połowie 2022 r. nadal jesteśmy świadkami jego wdrażania. Choć QUIC jest już od lat używany w Google - to jednak jego wdrożenie w “ogólnodostępnym” Internecie może potrwać jeszcze latami. Według danych Cloudflare obecnie:
- HTTP/1.x pokrywa 7% Internetu;
- HTTP/2 pokrywa 64% Internetu;
- HTTP/3 pokrywa 29% Internetu.
Na szczęście stale słychać o tym, że przeglądarki internetowe uruchamiają swoje wsparcie dla HTTP/3. Także oprogramowanie takie jak LiteSpeed czy Nginx chwali się tego typu wdrożeniami.
Ty też możesz przyczynić się do szybszego wdrożenia HTTP/3. W jaki sposób? Zadbaj o to, aby obsługa tego protokołu była włączona po stronie Twojego serwera. Pamiętaj, że aby możliwe było nawiązanie połączenia z wykorzystaniem HTTP/3 konieczna jest bowiem obsługa tego protokołu zarówno po stronie klienta (przeglądarki), jak i na hostingu.
Przeczytaj też: 7 rzeczy, o których nie mówi Ci Twój dostawca hostingu
Autorem tekstu jest Mateusz Mazurek. Przedsiębiorca internetowy. Solopreneur. Twórca stron internetowych i wydawca blogów. Klient dziesiątek różnych firm hostingowych w Polsce i za granicą. Autor bezpłatnego poradnika Jak Wybrać Hosting? oraz rankingu hostingów JakWybraćHosting.pl.