HTTP, czyli Hypertext Transfer Protocol, to główny protokół używany w przeglądarkach do komunikacji, który określa jej format między klientem a serwerem. Takim klientem jest właśnie wspomniana przeglądarka kierująca zapytanie do serwera (hostingu), od którego uzyskuje odpowiednie dane. Dzięki temu docelowo wyświetla Ci się strona WWW. Istnieją różne wersje tego protokołu i w zależności od wykorzystywanej inna może być szybkość ładowania witryny. Czym się różnią?
Wersje HTTP a różnice między nimi
Sam fakt istnienia danej wersji protokołu to nie wszystko. Aby korzystać z jej zalet, serwer musi ją najpierw obsługiwać. Obecnie najnowszą wersją jest HTTP/3, ale w dalszym ciągu możesz trafić na hostingi, które obsługują wyłącznie HTTP/1.1.
Źródło: https://junedang.com/evolving-the-web-discovering-the-history-of-http-versions/
Czy w ogóle powinno Cię interesować, jaką wersję protokołu HTTP obsługuje hosting? Zdecydowanie tak, gdyż kolejne wersje rozwiązywały problemy poprzednich, a także przyczyniały się do przyspieszenia działania serwisów. Przyjrzymy się zatem, co wnosiły poszczególne.
HTTP/1.1
Pierwszą wersją protokołu było HTTP/0.9, które pojawiło się w 1991 roku. Opracował go zespół Tima Bernersa-Lee w latach 1989-1991. W 1996 roku opublikowano dokument, który definiował HTTP/1.0. W 1999 roku oddano do użytku wersję 1.1. Zasadę jej działania prezentuje poniższa grafika.
Źródło: http://szuflandia.pjwstk.edu.pl/~wpawlowski/TIN/czesc_03.pdf
Wersja HTTP/1.1 wprowadziła wiele zmian, ale daleko jej było do doskonałej. Pojawiły się problemy z wydajnością aplikacji. Komplikacje, które występowały, były następujące:
- konieczność korzystania z wielu połączeń, aby zmniejszyć opóźnienia w działaniu stron;
- zbędny ruch sieciowy wynikający z braku kompresji nagłówków żądań i odpowiedzi;
- brak możliwości efektywnego ustalania priorytetów zasobów, przez co słabo wykorzystane jest podstawowe połączenie TCP.
Wszystko to powodowało nadmierne obciążenie serwerów. Aplikacje stawały się coraz bardziej wymagające, a to skutkowało coraz większym obciążeniem tych maszyn. Po wielu latach pojawił się jednak protokół HTTP/2.
HTTP/1.1 vs HTTP/2
Nowa wersja została wprowadzona dopiero w 2015 roku. Celem było oczywiście poprawienie wydajności poprzez usprawnienia techniczne. Główną innowacją okazało się wprowadzenie równoczesnego przesyłania wielu żądań i odpowiedzi w ramach jednego połączenia. To pozwoliło zdecydowanie przyspieszyć działanie stron. Kolejne zmiany obejmowały wprowadzenie kompresji nagłówków, dzięki czemu zmniejszył się rozmiar przesyłanych danych. Następna istotna modyfikacja to priorytetyzacja żądań. Te wszystkie rozwiązania spowodowały, że witryny mogły przyspieszyć. Zasadę działania protokołu HTTP/2 dobrze obrazuje poniższa grafika. HTTP/2 może przesłać różne pliki w czasie jednego połączenia, a HTTP/1.1 potrzebuje do tego wielu takich połączeń.
Źródło: https://www.reddit.com/r/node/comments/18l1nac/differences_between_http_11_vs_http_2/
A jak ta zmiana przełożyła się na szybkość? W sieci znajdziesz mnóstwo rezultatów testów porównujących te dwa protokoły. Z tego, którego wynik widzisz poniżej, wynika, że HTTP/2 jest o 14% szybsze.
Źródło: https://www.thewebmaster.com/what-is-http2-and-how-does-it-compare-to-http1-1/
Jaką popularnością cieszy się ten protokół? Korzysta z niego około 35% serwisów.
Źródło: https://w3techs.com/technologies/details/ce-http2
HTTP/2 vs HTTP/3
Najnowsza wersja 3 miała być kolejnym krokiem w stronę poprawy wydajności. Oto, co dała ta zmiana:
- Protokół TCP zastąpiono protokołem QUIC, który zapewnia szybkie i niezawodne połączenia sieciowe.
- Zmniejszyły się opóźnienia w połączeniach między serwerem a przeglądarką.
- Nagłówek HTTP nie jest blokowany podczas multipleksowania.
- Szyfrowanie i uwierzytelnianie są bardziej efektywne.
- Transmisja danych jest dokładniejsza.
Jak najnowsza wersja protokołu przekłada się na szybkość działania stron? Prezentuje to poniższa grafika. W sieci znajdziesz wiele innych dowodów większej wydajności tego rozwiązania.
Źródło: https://kiwee.eu/blog/http-3-how-it-performs-compared-to-http-2/
Jakim zainteresowaniem się cieszy? Aktualnie korzysta z niego blisko 30% witryn.
Źródło: https://w3techs.com/technologies/details/ce-http3
Który protokół jest najlepszy?
Jeśli wybierasz hosting, zdecydowanie weź pod uwagę ten, który zapewnia HTTP/3. Oczywiście, zazwyczaj nie powinien to być czynnik decydujący, lecz jeden z argumentów, które przemawiają za taką decyzją.