Protokół HTTP/3 od A do Z
Czym jest protokół HTTP?
HTTP, czyli Hypertext Transfer Protocol to protokół służący do przesyłania dokumentów hipertekstowych, czyli protokół dla sieci WWW. Za jego pomocą przesyłane są zapytania do serwera strony oraz informacje z formularzy.
Istnieje kilka wersji protokołu HTTP. Najbardziej znana i standardowa wersja to HTTP/1.1 utworzona w 1997 roku. Jej następcą jest protokół HTTP/2 zaprojektowany z inicjatywy Google w 2015 roku, który wykorzystuje protokół SPDY, a jego działanie ukierunkowane jest przede wszystkim na wzrost prędkości i wydajności komunikacji między stroną a serwerem. Najnowszą aktualizacją protokołu HTTP jest HTTP/3, oparty o QUIC i UPD.
HTTP/3 jako najnowsza wersja protokołu HTTP
W 2018 roku, również z inicjatywy Google, powstała najnowsza aktualizacja protokołu w wersji 3.0. To przełomowa wersja HTTP, która wykorzystuje protokół QUIC. Przełomowa, przede wszystkim dlatego, że odbiega znacznie od tradycyjnego HTTP. Ta wersja wykorzystuje protokół transportowy UPD, podczas gdy poprzednie wersje opierały się na standardzie TCP. Najnowsza wersja powstała głownie po to, aby wyeliminować wszystkie błędy i nieprawidłowości swoich poprzedników. Dodatkowo pozwala osiągnąć korzyści w postaci większej elastyczności, szybkości i wydajności połączeń.
Na czym polega różnica pomiędzy UPD a TCP?
Do tej pory uważano, że wykorzystywanie TCP zapewnia poprawność przesyłanych danych. Dlaczego więc zamieniono go na UPD, który wcale nie weryfikuje poprawności danych?
Standardowo TCP w momencie, kiedy podczas przesyłania żądania zgubi jeden z pakietów, nie obsłuży zapytania do momentu, kiedy nie nastąpi jego retransmisja. Dopóki to nie nastąpi, dane są zablokowane lub nawet usuwane. I właśnie na tym polega różnica. W przypadku wykorzystania protokołu UPD zgubienie jednego z pakietów nie powoduje przerwania żądania i blokady innych pakietów. Każdy z nich posiada bowiem swój indywidualny, niezależny strumień. Pozwala to znacznie poprawić wydajność, zwłaszcza w przypadku łączy podatnych na różnego rodzaju błędy.
HTTP/3 - czym tak naprawdę się wyróżnia?
Opisane powyżej różnice pomiędzy UPD (QUIC), a TCP (SPDY) to nie jedyne elementy, wyróżniające protokół HTTP/3 na tle poprzednich wersji. Ważną i zdecydowanie widoczną zmianą jest również ograniczona do minimum konieczność konfiguracji niezbędnej do uzyskania połączenia. QUICK sprawia, że wymiana potrzebnych kluczy oraz protokołów jest natychmiastowa. Właściwie już w momencie, kiedy użytkownik wysyła żądanie do serwera strony, pakiet odpowiedzi zawiera wszystkie niezbędne informacje potrzebne do szyfrowania.
Jakie są korzyści stosowania protokołu HTTP/3?
- Brak blokady nagłówka podczas multipleksowania
Blokada nagłówka to jeden z problemów, jakie występowały w poprzednich wersjach protokołu. Kiedy nagłówek jest zablokowany, wówczas żądanie skutecznie blokuje całe połączenie, czekając na wymaganą odpowiedź. Prace nad tym problemem zostały podjęte już na etapie HTTP/2, jednak nie były one dość skuteczne.
Kiedy jeden pakiet zostaje zablokowany, wszystkie inne również są wstrzymywane. Aplikacja musi czekać na retransmisję danych wraz z zagubionym pakietem, a przecież mogłaby w tym czasie obsłużyć pozostałe. Doskonałym rozwiązaniem tego problemu jest właśnie QUIC i UPD. Dzięki przeniesieniu warstwy strumienia HTTP na transport ogólny, utracenie jednego pakietu nie powoduje blokady pozostałych. - Krótszy czas nawiązywania połączenia
Celem każdej kolejnej aktualizacji jest oczywiście poprawa wydajności i szybkości połączenia. Tak jest również i tym razem. HTTP/3 wyróżnia się większą prędkością połączenia w porównaniu z poprzednimi wersjami – szczególnie podczas pobierania wielu obiektów jednocześnie. - Obsługa 0-RTT
HTTP/3 oferuje obsługę 0-RTT, co oznacza, że kolejne połączenia mogą być uruchamiane znacznie szybciej, dzięki wyeliminowaniu potwierdzenia TLS z serwera podczas konfigurowania połączenia. Oznacza to, że klient może zażądać danych znacznie szybciej niż w przypadku pełnej negocjacji TLS, dzięki czemu witryna zaczyna ładować się wcześniej. Ulepszenia w uruchamianiu sesji oznaczają, że „połączenia” z serwerami rozpoczynają się znacznie szybciej, a przeglądarka zaczyna szybciej wyświetlać dane. - Uwzględnienie migracji połączeń
Jedną z ważniejszych funkcji, które umożliwia QUIC, jest płynna i przejrzysta migracja połączeń między różnymi sieciami – bez konieczności tworzenia nowego połączenia. - Lepsze szyfrowanie i uwierzytelnianie
Najnowsza wersja protokołu TLS jest wbudowana bezpośrednio w protokół QUIC. Dzięki temu skuteczniej zabezpiecza on nagłówki i inne dane przed osobami trzecimi. Zapewnia bardziej prywatne i bezpieczne połączenia niż jego poprzednicy. - Dokładniejsza transmisja danych
Dzięki zastosowaniu najnowszej wersji protokołu transmisja danych pomiędzy witryną użytkownika a serwerem jest znacznie bardziej efektywna. Wykorzystana technologia sprawia, że przepływ danych jest nie tylko bardzo szybki, ale również dokładny.
Kto najbardziej skorzysta na wdrożeniu HTTP/3?
Wydaje się, że chociażby z punktu widzenia wydajności, największe korzyści z wdrożenia odniosą użytkownicy mobilni. Zwłaszcza ci, którzy korzystają z sieci o większych opóźnieniach. Wykorzystywanie QUIC jako podstawy HTTP/3 ma na celu przede wszystkim zapewnienie szybszych połączeń i płynniejszych przejść między sieciami. Korzyści będą więc widoczne również dla pozostałych użytkowników. Natomiast, ulepszenia związane ze zwiększeniem wydajności są najbardziej odczuwalne wśród firm z branży gier, VoIP, wideokonferencji czy mediów streamingowych.
Dostępność HTTP/3 - czy jest dostępny dla każdego?
Tak samo jak wdrożenie na rynek każdej poprzedniej wersji protokołu, wdrożenie HTTP/3 wymaga czasu. Rozwiązanie na ten moment na pewno nie jest dostępne dla każdego. Większość witryn korzysta jeszcze ze starszych wersji. To, na jaką skalę rozwiązanie jest dostępne, zależy przede wszystkim od takich podmiotów, jak firmy hostingowe i przeglądarki internetowe.
Nie wszystkie przeglądarki są gotowe na wsparcie HTTP/3, najbardziej popularne z nich, takie jak Chrome czy Edge już wspierają obsługę HTTP/3. Inne z pewnością intensywnie nad tym pracują. Obsługa najnowszych rozwiązań jest bowiem kluczem do utrzymania pozycji i zdobycia przewagi konkurencyjnej.
Znacznie gorzej sprawa wygląda z firmami hostingowymi. Niektóre z nich dopiero niedawno szczyciły się możliwością obsługi protokołu w wersji HTTP/2. Prace nad umożliwieniem tego trwały dość długo, dlatego niestety podobnie jest z obsługą HTTP/3.
Podsumowując, z korzyści jakie daje nowa wersja protokołu, mogą skorzystać nieliczni użytkownicy. Rozwiązanie choć z pewnością korzystne i efektywne, nie jest jeszcze rozwiązaniem dobrze funkcjonującym w praktyce.
Jakie są najczęściej występujące problemy związane z HTTP/3?
Oprócz wielu korzyści, specjaliści w najnowszej wersji HTTP upatrują się również pewnych wad lub zagrożeń wynikających z jego odmiennej struktury i sposobu działania. Niektórzy uważają też, że trzecia wersja protokołu pojawiła się zbyt wcześnie po protokole HTTP/2 oraz, że UDP jest traktowany dosyć pesymistycznie jako protokół sieciowy. Nowy protokół HTTP3 jest szczególnie korzystny dla użytkowników, ale z drugiej strony dostawcy napotykają szereg problemów i wyzwań przenosząc się z TCP i TLS na UDP i QUIC.
Kontrola bezpieczeństwa i szyfrowanie nie odbywają się już przez TLS, ale bezpośrednio przez protokół UDP. Protokół ten ma dostarczać jak najwięcej pakietów tak szybko, jak to tylko możliwe. Dostawcy obawiają się więc, że ruch danych nie będzie już badany równie dokładnie. Wszystko z powodu braku uwierzytelniania TLS. Dlatego też, bezpieczeństwo aplikacji i danych jest głównym punktem krytykowanym przez dostawców Internetu. Już jakiś czas temu TCP został uznany za niezawodny i zorientowany na połączenie protokół. Dodatkowo istnieją obawy, że opcje kontroli dostawców będą ograniczone i że do strumienia danych może zostać wprowadzone więcej złośliwego oprogramowania.
Jaki wpływ na pozycjonowanie i SEO ma stosowanie HTTP/3?
Ponieważ najnowsza wersja protokołu nie jest jeszcze szeroko wykorzystywana, na ten moment brakuje jakichkolwiek oficjalnych informacji na temat wpływu protokołu HTTP/3 na SEO. Niemniej jednak można się domyślać, że wzrost szybkości połączeń będzie korzystanie wpływał na pozycję serwisu w wynikach wyszukiwania.
HTTP/3 wciąż protokołem przyszłości?
Podsumowując, HTTP/3 jako najnowsza wersja protokołu jest przełomowy, ponieważ rozwiązuje wszystkie problemy zidentyfikowane w przypadku jego poprzedników. Minie jeszcze chwila czasu, zanim możliwość wykorzystania HTTP/3 będzie powszechna dla użytkowników, a branża dostosuje się do jego obsługi, z pewnością jest to jednak przyszłość protokołu HTTP, która znacznie poprawi wydajność połączeń. Biorąc pod uwagę, że obsługa najnowszych rozwiązań leży w gestii każdego wiarygodnego dostawcy hostingu i jest podstawą do dalszego funkcjonowania przeglądarek internetowych, można przypuszczać, że przystosowanie do powszechnej obsługi HTTP/3 i QUIC jest jedynie kwestią czasu.