HTTP/2 i HTTP/3: co to jest? Jak działa? Jak przyspiesza działanie stron WWW?

Protokół HTTP jest wykorzystywany do nawiązywania połączenia, umożliwiającego wyświetlanie strony internetowej. Jego najnowsza wersja ma umożliwić jeszcze szybsze przesyłanie danych. Czym cechuje się HTTP/3 i co dokładnie zmienia w stosunku do swojego poprzednika?

HTTP/3 to najnowsza generacja protokołu służącego do obsługi stron internetowych. Wprawdzie nie jest ona jeszcze powszechnie obowiązującym standardem, jednak wszystkie znaki wskazują na to, że jest to wyłącznie kwestia czasu.

Niektórzy dostawcy usług hostingowych już chwalą się wprowadzeniem tej technologii na swoich serwerach. Poza tym przeglądarki takie jak Chrome, Safari, Edge oraz Firefox udostępniają opcję korzystania z nowego protokołu. 

Na pewno szykuje się duża zmiana, jednak warto przyjrzeć się dokładnie, na czym będzie ona polegać. Gdzie leży przewaga tego standardu i co jego wdrożenie zmieni dla internautów?

Co to jest HTTP?

HTTP to Hypertext Transfer Protocol – to protokół przesyłania hipertekstu. Umożliwia i standaryzuje on komunikację pomiędzy komputerami w sieci internetowej. W skrócie – za pośrednictwem protokołu HTTP, klient wysyła żądanie dotyczące wyświetlenia strony. Serwer – w odpowiedzi na to żądanie – przesyła zasoby do klienta (mogą to być np. pliki graficzne czy kod HTML). 

W skrócie – po wpisaniu adresu URL w przeglądarkę, protokół HTTP umożliwia nawiązanie połączenia z serwerem. Oprogramowanie serwera przetwarza żądanie klienta (przeglądarki) i w odpowiedzi przesyła konkretną zawartość. 

Protokół HTTP należy do warstwy aplikacyjnej. Dlatego też nazywa się go protokołem najwyższego szczebla. Do prawidłowego działania wykorzystuje on protokół transportowy – który odpowiada za samą wymianę danych pomiędzy przeglądarką a serwerem. 

Protokoły transportowe to TCP lub UDP. Istotna różnica pomiędzy nimi odnosi się do ich szybkości. Protokół TCP (Transmission Control Protocol) jest wolniejszy, ponieważ po każdym transferze danych, musi nastąpić potwierdzenie jego wysłania. Dopiero potem dochodzi do kolejnego przesyłu informacji.

Jak działa TCP?
W protokole TCP potwierdzenie jest niezbędne do rozpoczęcia kolejnego transferu danych. (źródło)

Protokół UDP (User Datagram Protocol) nie wykorzystuje takiego potwierdzenia, a zatem nie musi oczekiwać na kolejny krok i w konsekwencji nie blokuje się i jest bardziej wydajny. Dane są wysyłane strumieniowo. 

Jak działa UDP?
Protokół UDP nie wymaga potwierdzeń, co usprawnia transfer danych. (źródło)

Modyfikacje HTTP

Pierwsza wersja protokołu HTTP została opublikowana na początku lat 90-tych. Oczywiście przez te ponad 30 lat sporo się zmieniło, więc pierwsza wersja (HTTP 0.9) zupełnie nie odpowiada specyfice Internetu i zapotrzebowaniom internautów. Dlatego też przez lata protokół ten doczekał się kilku modyfikacji.

Wersja HTTP/2 została wprowadzona w 2015 r. – czyli stosunkowo niedawno. Jej głównym założeniem było usprawnienie komunikacji pomiędzy klientem a serwerem – a konkretniej zwiększenie przepustowości i szybkości. 

HTTP 1.1 – czyli poprzednik standardu HTTP/2 – wykorzystuje protokół TCP. Wiąże się to z pewnymi ograniczeniami. Oczekiwanie na potwierdzenie każdego żądania w protokole TCP prowadzi do tzw. blokowania nagłówka. Oznacza to, że procesy są wstrzymywane, dopóki dane żądanie nie zostanie potwierdzone. Prowadzi to do opóźnień w komunikacji, ponieważ transfery nie odbywają się równolegle, tylko czekają w kolejce.

HTTP/2 umożliwiło zniwelowanie tego typu opóźnień – m.in. poprzez zastosowanie multipleksowania. Dzięki wykorzystaniu protokołu SPDY (wariacji TCP) wprowadzono możliwość procesowania wielu zapytań jednocześnie. Nastąpiło pewne przyspieszenie, jednak problem nie został rozwiązany do końca. 

Wprawdzie HTTP/2 wyeliminował samo blokowanie nagłówka, czyli wstrzymywanie procesów w odpowiedzi na potwierdzenie pierwszego z nich – jednak w dalszym ciągu połączenie wymagało retransmisji w przypadku zgubienia (lub błędu), chociażby jednego pakietu danych. 

HTTP 1.1 kontra HTTP/2
HTTP/2 przyśpiesza połączenie dzięki możliwości przeprowadzenia kilku transferów jednocześnie. (źródło)

Nim HTTP/2 zdołał stać się dominującym standardem, a już rozpoczęły się prace nad jego następcą. Obecnie ma miejsce implementacja najnowszej odsłony, czyli HTTP/3. Jednak w przypadku najnowszej odsłony bardzo często możesz spotkać się z określeniem QUIC. 

QUIC – co to takiego?

QUIC (Quick UDP Internet Connections) to protokół opracowany przez Google w 2012 r. Choć wykorzystuje on protokół HTTP, to wyróżnia go bardzo istotna kwestia. Różnica ta odnosi się do zastosowanego protokołu transmisyjnego. Zarówno HTTP 1.1, jak i HTTP/2 są oparte na protokole TCP (w przypadku HTTP/2 jest to formalnie SPDY – jednak w dalszym ciągu jest to odmiana TCP). QUIC odchodzi od tej technologii, na rzecz znacznie szybszego protokołu UDP. 

A zatem jest to ulepszona wersja protokołu HTTP. QUIC jest:

  • uniwersalny – ponieważ jest zgodny z protokołem HTTP/2;
  • bezpieczny – bo domyślnie wykorzystuje TLS do szyfrowania danych (protokół wykorzystywany w bezpiecznych połączeniach SSL);
  • szybki – ponieważ wykorzystuje UDP zamiast TCP.

Protokół QUIC to wynalazek Google’a. Jednak jego wydajność doprowadziła do tego, że IETF (Internet Engineering Task Force) rozpoczęła pracę nad jego standaryzacją i rozpowszechnieniem. W ten właśnie sposób rozpoczęto pracę nad protokołem HTTP-over-QUIC, który w późniejszym czasie przejął nazwę HTTP/3.

HTTP/3 – co go wyróżnia?

Najnowsza odsłona protokołu HTTP stawia przede wszystkim na szybkość. To odpowiedź na obecną charakterystykę korzystania z Internetu, która opiera się w ogromnej mierze na streamingu. Można nawet spotkać się z informacjami, że HTTP/3 przyspiesza buforowanie o ok. 30%.

Jak już wspomniałem, podczas korzystania ze standardu HTTP/2 w przypadku utracenia jakiegokolwiek pakietu danych pomiędzy klientem a serwerem, wszystkie transfery zostają automatycznie wstrzymane. Oznacza to, że całe połączenie musi czekać na odświeżenie. 

HTTP/3 oparty na protokole QUIC (który z kolei oparty jest na UDP) całkowicie eliminuje blokowanie nagłówków. Protokół HTTP/3 umożliwia jeszcze lepsze multipleksowanie. Zgubienie jakiegokolwiek pakietu danych nie wiąże się z koniecznością odświeżenia połączenia

W związku z tym, dzięki HTTP/3 połączenie:

  • nie blokuje się – wszystkie pakiety danych są transportowane osobnym kanałem równolegle;
  • jest szybciej nawiązywane – dzięki mniejszej liczbie kroków i braku konieczności oczekiwania na potwierdzenie;
  • jest bezpieczne – dzięki protokołowi TLS używanemu w QUIC;
  • jest elastyczne – budowa protokołu QUIC umożliwia przeniesienie połączenia do innej sieci bez konieczności jego odświeżania.
HTTP/3
HTTP/3 oparty na QUIC jest zdecydowanie szybszy od protokołu opartego na TCP

Wdrażanie protokołu HTTP/3

Nawet pobieżnie patrząc na zalety najnowszej odsłony protokołu HTTP widać, że jest to rozwiązanie znacznie szybsze i bezpieczniejsze. Korzystają z niego giganci tacy jak Google czy Facebook, dlaczego więc nie zacząć używać go od razu?

Jednak w przypadku ogłaszania tego typu standardów, konieczna jest jeszcze ich implementacja. Może ona trwać nawet przez kilka lat. Na pewno zaskoczy Cię fakt, że mimo upływu wielu lat od ogłoszenia HTTP/2, HTTP 1.1 jest ciągle w użyciu.

Musisz wiedzieć, że aby możliwe było nawiązanie połączenia w standardzie HTTP/3, zarówno klient, jak i serwer muszą go obsługiwać – czyli taką opcję musi udostępniać przeglądarka i hosting.

Nawet jeżeli przeglądarki włączą domyślną obsługę nowego protokołu w swoich najnowszych wersjach, trzeba będzie czekać na włączenie tego protokołu bezpośrednio na hostingu. 

W związku z tym w interesie każdego właściciela strony internetowej powinno być to, aby była ona umieszczona na hostingu obsługującym wersję HTTP/3. Dzięki temu będzie ona wyświetlać się szybciej, przy zabezpieczonym połączeniu pomiędzy przeglądarką a serwerem. Jako klient hostingu masz w pewnym sensie wpływ na prędkość implementacji tego protokołu – po prostu wybierz hosting, który go udostępnia. 

HTTP/3 rozwiązuje wiele problemów znanych standardowi HTTP/2. Jednak zanim zacznie on powszechnie obowiązywać, musi minąć jeszcze kilka miesięcy czy nawet lat. Internetowi giganci korzystają z HTTP/3 (oraz QUIC) już od wielu lat. Jak najszybsze upowszechnienie standardu jest w interesie zarówno wydawców, jak i odbiorców treści.

Źródła / materiały: