Protokół HTTP/2 od A do Z
Czym jest protokół HTTP?
Protokół HTTP, z ang. Hypertext Transfer Protocol to ogólnie rzecz biorąc zbiór zasad i zależności, według których odbywa się komunikacja w sieci Web. To technologia polegająca na przesyłaniu dokumentów hipertekstowych. Klient przesyła żądanie, na które serwer http odpowiada.
Działanie protokołu charakteryzuje się przede wszystkim prostotą. Jest on do tego stopnia uniwersalny i ponadczasowy, że od lat 90 nie wprowadzano w nim istotnych modernizacji. Z czasem jednak trochę się zestarzał, co wpływało między innymi na wolniejsze wczytywanie się stron.
HTTP/2 – co to takiego?
Protokół HTTP/2 to unowocześniona wersja protokołu w wersji 1.1. Nowy protokół powstał w 2015 roku z inicjatywy Google, jednak nadal w ramach organizacji IETF (Internet Engineering Task Force). IETF zajmuje się szeroko pojętą standaryzacją internetu i sieci komputerowych. Dokładne dane na temat specyfikacji rozwiązania HTTP/2 zostały opracowane w dokumencie RFC7540.
HTTP/2 to przede wszystkim rozwiązanie skupiające się na komunikacji pomiędzy przeglądarką internetową a serwerem, który ją obsługuje. Zastosowanie nowszej wersji protokołu pozwala rozwiązać wiele problemów komunikacyjnych, wysyłać wiele zapytań jednocześnie oraz zwiększyć prędkość wczytywania się stron.
HTTP/2 – jak powstała aktualizacja?
Protokół HTTP do dziś uznawany jest za rozwiązanie uniwersalne i ponadczasowe, przede wszystkim dlatego, że jest bardzo proste. Nie da się jednak nie zauważyć, że przez kilkanaście lat technologia budowania i projektowania stron znacząco się zmieniła. W związku z tym rozwiązanie musiało zostać zaktualizowane, aby zwiększyć jego efektywność, skuteczność i bezpieczeństwo. Technologia HTTP/2 oparta jest na protokole SPDY, który służy do transmisji treści web i jest autorskim rozwiązaniem firmy Google.
HTTP/2 – podstawowe zalety i korzyści
Multipleksowanie (tzw. multiplexing)
Oznacza możliwość wysyłania wielokrotnych zapytań w tym samym czasie i zakresie. Jest to istotna korzyść względem poprzedniej wersji protokołu, gdzie przesyłanie danych było kolejkowane. W konsekwencji nawet mocno obciążona strona, która wykorzystuje HTTP/2, ładuje się bez problemów.
Wykorzystywanie jednego połączenia z serwerem
Podczas ładowania strony internetowej, wykorzystywane jest tylko jedno połączenie z serwerem. Połączenie to trwa tak długo, jak otwarta jest dana strona. Dzięki temu zmniejsza się liczba żądań potrzebnych do utworzenia wielu połączeń. Poprzednia wersja HTTP przesyłała co chwilę nowe zapytania, co powodowało znaczne obciążenie strony.
Powiadomienia „Push”
HTTP/2 umożliwia przesyłanie zasobów strony bezpośrednio do przeglądarki, zanim ta o nie zapyta. Dzięki temu do użytkownika odwiedzającego stronę internetową mogą być wysyłane dodatkowe komunikaty i informacje z poziomu serwera. Tego typu powiadomienia dobrze znane są użytkownikom smartfonów.
Priorytetyzacja zapytań
Przesyłane zapytania otrzymują priorytety, dzięki czemu są szybciej obsługiwane przez serwer. Kolejność nadawana jest zgodnie z kolejnością pobierania zasobów z serwera, przez co najważniejsze elementy pojawiają się szybciej, a treści ładują się w sposób komfortowy dla użytkownika.
Binarność
Do tej pory protokół HTTP/1.1 komunikował się z przeglądarką za pomocą poleceń w formie TEXT. W HTTP/2 polecenia przesyłane są w formie binarnej, a dodatkowo podzielone są na mniejsze wiadomości i ramki. Zarówno serwer, jak i użytkownik muszą korzystać z kodowania binarnego. Do minimum ogranicza to ryzyko wystąpienia błędów we wzajemnym zrozumieniu. Znacznie skraca się również czas tłumaczenia przesłanego polecenia przez serwer.
Kompresja nagłówków
Każdy przesyłany do serwera transfer zawiera zestaw nagłówków, które opisują zasoby i ich właściwości. Wersja 1.1 przesyła wszystkie te dane w formacie zwykłego tekstu. Zaktualizowany protokół HTTP/2 wykorzystuje kompresję HPACK. Proste oraz dobrze znane techniki, takie jak kod Huffmana, czy metoda słownikowa, pozwalają zmniejszyć obciążenie oraz ilość danych przesyłanych w sieci.
HTTP/2 – potencjalne wady rozwiązania
Wymuszanie szyfrowania SSL
Korzystanie z SSL generuje wiele korzyści, jednak wymuszanie go przez HTTP/2 jest jednocześnie jedną z wad nowej wersji protokołu. Jeśli do tej pory serwery nie wykorzystywały szyfrowania SSL, to wzrost wydajności może okazać się mniej zauważalny.
Dodatkowe zadania administracyjne
Aktualizacja może wymagać dodatkowej pracy od administratorów sieci. Konieczne może okazać się na przykład pobranie z nieoficjalnych repozytoriów nowszej wersji Apache.
Brak możliwości wykorzystania na tańszych hostingach
W przypadku najtańszych usług hostingowych, których dostawcy nie nadążają za nowoczesnymi technologiami, zastosowania technologii HTTP/2 może okazać się dużym problemem. Często jedynym rozwiązaniem w takiej sytuacji będzie zmiana dostawcy hostingu.
Jakie przeglądarki obsługują HTTP/2?
Najpopularniejsze na rynku przeglądarki internetowe umożliwiają obsługę protokołu HTTP/2. Jest jednak kilka wyjątków i warunków, sprawiających że niektóre z nich mogą mieć z tym kłopot. Przeglądarki takie jak Chrome, MS Edge, Firefox, Opera czy Safari są przystosowane do HTTP/2.
Wspomniane wcześniej wyjątki to Internet Explorer 11, który obsługuje go tylko w systemie Windows 10 lub Firefox, Opera i Chrome, które obsługują HTTP/2 tylko dla stron korzystających z protokołu HTTPS.
Czy HTTP/2 wymaga HTTPS?
HTTPS to nic innego jak szyfrowana wersja protokołu HTTP. Szyfrowanie za pomocą certyfikatu SSL to gwarancja, że połączenie jest bezpieczne. Jeśli połączenie jest szyfrowane, wówczas przed adresem strony znajduje się przedrostek https. To standard, przede wszystkim w przypadku sklepów internetowych, czy stron rządowych.
Co prawda, w oficjalnej specyfikacji protokołu nie ma informacji o tym, że HTTPS jest wymagane. Jednak aby móc w pełni korzystać z zalet HTTP/2, należy uruchomić certyfikat SSL.
Wpływ zastosowania HTTP/2 na SEO oraz pozycjonowanie
Każde rozwiązanie, które pozytywnie wpływa na wydajność oraz bezpieczeństwo sieci, jest promowane przez Google. Dodatkowo, HTTP/2 powstało właśnie z inicjatywy firmy Google, co warto brać pod uwagę. Czy zatem wykorzystanie HTTP/2 może mieć wpływ na pozycjonowanie? Jak najbardziej. Strony, które hostowane są na serwerach korzystających z tej aktualizacji protokołu, z pewnością są kilka kroków przed innymi. Na tej samej zasadzie funkcjonuje pozycjonowanie serwisów www, które stosują certyfikaty SSL, czy Responsive Web Design (RWD). Prędkość także jest jednym z bardziej istotnych czynników oceny Google. Wykorzystanie HTTP/2 może być więc skutecznym sposobem na podniesienie pozycji strony w rankingu.
Jak zainstalować i włączyć HTTP/2?
Instalacja HTTP/2, na znacznej większość serwerów http, ogranicza się do kilku kroków. Na przykładzie Apache 2, proces instalacji wygląda następująco:
- uruchomienie certyfikatu SSL (jeśli do tej pory nie był wykorzystywany),
- włączenie modułu HTTP/2 poprzez sudo a2enmod,
- zrestartowanie serwera,
- edycja pliku httpd.conf.
Edycja pliku polega na wyremowaniu wiersza „LoadModule http2_module modules/mod_http2.so” oraz dodaniu „Protocols h2 http/1.1” w pliku lub w tagach.
Jak sprawdzić, czy HTTP/2 działa poprawnie?
Istnieją dwa bardzo proste sposoby na sprawdzenie, czy uruchomiony przez nas HTTP/2 działa prawidłowo. Pierwszy z nich to wykorzystanie jednego z narzędzi, które zostały specjalnie w tym celu przygotowane. Są to między innymi:
- https://tools.keycdn.com/http2-test
- https://www.dareboost.com/en/website-speed-test-http2-vs-http1
- https://http2.pro
Aby z nich skorzystać, wystarczy wprowadzić URL strony i kliknąć przycisk „Test”. W kolejnym kroku pojawi się komunikat o poprawnym lub niepoprawnym działaniu HTTP/2.
Drugim sposobem jest wykorzystanie przeglądarki Google Chrome. Po jej uruchomieniu, należy nacisnąć przycisk „F12”, aby uruchomić konsolę, a następnie, w zakładce „Network”, sprawdzić wartość znajdującą się w kolumnie „Protocol”. O aktywnym i poprawnie działającym protokole HTTP/2 świadczy wartość „h2”.
A zatem, czy warto wdrażać HTTP/2?
Analizując korzyści wynikające z zastosowania nowego, zaktualizowanego protokołu odpowiedź nasuwa się sama – warto! Prawdą jest, że niewiele witryn na ten moment wykorzystuje ten standard i trudno jednoznacznie stwierdzić dlaczego tak jest. Nie ma jednak wątpliwości, że wykorzystanie protokołu HTTP/2 może przynieść kilka istotnych, praktycznych korzyści.
To przede wszystkim znaczne skrócenie czasu ładowania strony i duża szansa pod kątem SEO. Niewiele stron wykorzystuje nową wersję protokołu, jest to więc element, dzięki któremu można zyskać przewagę i podnieść pozycję witryny w rankingach wyszukiwania. Zastosowanie HTTP/2 podnosi również komfort użytkowników odwiedzających stronę. Zwiększona wydajność pozwoli na szybkie i sprawne funkcjonowanie witryny, a dodatkowa prędkość będzie miała znaczący wpływ na pozycjonowanie.