Widzialni cares about Your privacy
In order to offer access to a secure, functional and attractive service, we use identifiers sent by your device and may store or read small text files (e.g. cookies) contained on your device. Based on your consent, we will process personal data, such as unique identifiers, information sent by end devices for personalization of advertisements and content, statistical demographic information for traffic measurement, we will also analyze the usefulness of certain solutions of the service, their performance in order to improve user satisfaction - hereinafter: your Data. By clicking "Accept all" you consent to the processing of your data in a broad way, including sharing it with third parties - a list of which can be found in the Privacy Policy. By clicking "Personalize" you can make your choice of settings. By clicking "Necessary only," you refuse to consent to the use of optional settings and the transfer of additional data. You can make changes to your choices at any time by clicking the padlock button in the corner of the page. Regardless of your preference settings on our site, you can also manage your browser`s privacy settings. For more information about data processing, see our Privacy Policy.
Manage preferences
Select the consents of your choice
Necessary
Necessary scripts and data stored on the end device contribute to the security and usability of the website by enabling secure access to basic functions such as site navigation and access to specific areas of the website. The website cannot be properly displayed without this group.
Functionality
This is data used to personalize your use of our website and to remember choices you make while using our website. For example, we may use functional cookies to remember your language preferences or to remember your login information, making it easier for you to use the site.
Analytics
Scripts and data used to collect information to analyze site traffic and how users use the site, how they came to the site, and to create aggregate demographic statistics about users. Analytical cookies and similar technologies allow us to measure the effectiveness of actions taken and content presented.
Marketing
Scope responsible for displaying personalized ads that may be of interest to the user based on browsing history and habits and demographic criteria. Also, third-party files that, in conjunction with files installed while browsing other websites, profile the user, providing him or her with the marketing, advertising and retargeting content deemed most appropriate.
Personalize
Accept choices
Accept all
Kilka słów o HTTP/2

Kilka słów o HTTP/2

Standardy sieciowe zmieniają się bardzo często. Jedne technologie powstają, a inne kończą swój żywot bardzo szybko. Podczas przeglądania internetu nie zdajemy sobie sprawy z istnienia wielu mechanizmów i technologii. Jedną z takich technologii jest HTTP/2.

HTTP jest klasyfikowany jako protokół sieciowy. Oznacza to, że jest zbiorem procedur i reguł, które ustalają zasady komunikacji pomiędzy co najmniej dwoma urządzeniami sieciowymi. W celu poprawnego działania oba urządzenia muszą w tym samym momencie używać tego samego protokołu sieciowego, w tej samej wersji. Przed rozpoczęciem połączenia sieciowego odbywa się faza „negocjacji” w których urządzenia „dogadują się” odnośnie używanych w czasie transmisji technologii.

Najważniejsze protokoły sieciowe to

  • TCP/IP,
  • FTP,
  • DNS,
  • DHCP,
  • HTTP.

Protokół HTTP

HTTP to podstawowy protokół sieciowy używany do obsługi stron www. Jest on używany do przesyłania dokumentów hipertekstowych, umożliwia także przesyłanie żądania udostępnienia dokumentów www. Jest bezstanowym protokołem w warstwie aplikacji wykorzystywanym od lat 90. XX wieku.

Komunikacja pomiędzy klientem a serwerem wygląda w uproszczony sposób następująco:

  1. Przeglądarka (klient) wysyła prośbę do serwera o udostępnienie zasobów np. zawartości strony głównej.
  2. Serwer odpowiada na żądanie poprzez wysłanie danych stanowiących zawartość strony.

Protokół ten przyjmuje i wysyła odpowiedzi składające się z nagłówka żądania oraz treści dokumentu. Używa on różnych metod np. GET i POST.
Więcej o protokole HTTP można przeczytać w naszym wpisie: Protokół HTTP i HTTPS – podstawowe różnice.

Protokół HTTP/2

HTTP/2 (zapisywane także jako HTTP2 lub HTTP.2) jest rozwinięciem protokołu HTTP. Idea protokołu opiera się na założeniach do protokołu SPDY, którego twórcami są inżynierowie Google. Pierwsze wzmianki o następcy HTTP 1.1 pojawiły się w 2014 roku. Po roku prac specyfikacja protokołu była już gotowa.

HTTP vs HTTP/2

Różnice pomiędzy dwoma wersjami protokołu są dość znaczne. Technologiczna przepaść, która dzieli oba rozwiązania to ponad 18 lat. W tym czasie wiele zmieniło się w technologiach tworzenia stron. Aplikacje www są złożone, mają dużo zasobów, co wydłuża ich czas ładowania poprzez HTTP.

Podstawowe różnice pomiędzy HTTP a HTTP/2:

  • Protokół HTTP w wersji 2.0 jest binarny, co sprawia, że zarówno klient (przeglądarka), jak i serwer muszą korzystać z tej samej technologii i „rozumieć” komunikaty zawarte w binarnie zakodowanych ramkach. Dzięki temu same wiadomości w tym kanale komunikacji są mniejsze. Niesie to za sobą dodatkowe korzyści w postaci szybkości odpowiedzi, gdyż oprogramowanie serwerowe nie musi dekodować tekstowych nagłówków. Takie rozwiązanie poprawia też w znaczny sposób bezpieczeństwo komunikacji oraz jej niezawodność.
  • W trakcie wizyty użytkownika na stronie nawiązywane jest tylko jedno połączenie. W przeciwieństwie do HTTP 1.x, nowa wersja tego protokołu korzysta tylko z jednego połączenia pomiędzy klientem i serwerem, co sprawia, że nie trzeba co chwilę zestawiać kolejnych połączeń dla przesyłania plików. Zmniejsza to obciążenie serwera oraz czas wyświetlenia (dostępności) poszczególnych zasobów dla użytkownika.
  • Serwer może nadawać poszczególnym zasobom priorytety, co poprawia dostępność do kluczowych zasobów, które mogą być serwowane do przeglądarki użytkownika w pierwszej kolejności. Każdy ze strumieni danych może mieć przypisaną swoją wagę (1-256) oraz zależność od innych strumieni definiowaną jako kolejność wysyłania ramek z daną zawartością.
  • Zastosowanie kompresji HPACK znacznie skraca rozmiary nagłówków żądania i odpowiedzi. Dzięki użyciu algorytmów metody słownikowej i statycznego kodu Huffmana znacznie kompresuje się rozmiary tych nagłówków, co dość mocno poprawia wydajność. W przeciwieństwie do HTTP 1.x dane nagłówków żądań i odpowiedzi nie są wysyłane w „zwykłym tekście” a binarnie, co, jak wspomniano wyżej, pozwala na oszczędność transferu.

Warto też wspomnieć o tym, że zadbano o pełną kompatybilność pomiędzy HTTP 1.x a HTTP/2. Oznacza to, że w przypadku użycia starszych urządzeń negocjowane jest użycie starszej wersji tego protokołu.

Multipleksowanie HTTP/2

Najważniejszą różnicą pomiędzy HTTP 1.x a HTTP/2 jest multipleksowanie, czyli możliwość jednoczesnego pobierania wielu zasobów. Dotychczas połączenie było zestawione w ten sposób, że w ramach niego następowała wymiana wielu żądań, co powodowało tzw. kolejkowanie żądań. Zgodnie z zasadą „pierwszy żądany – pierwszy wysłany” dopiero, gdy zostało obsłużone jedno żądanie można było zająć się kolejnym. HTTP/2 wprowadza możliwość obsługi wielu żądań w ramach jednego połączenia TCP.

Żądania są rozbijane na niezależne od siebie ramki, które po dotarciu do celu są składane. Przeplatanie ramek pozwala na wykonywanie wielu żądań jednocześnie bez ich blokowania i oczekiwania na zakończenie poprzedniego żądania. Użycie jednego połączenia sprawia, że zwiększa się wydajność a serwer jest mniej obciążony. Pozwala to też na osiągniecie mniejszych czasów ładowania się strony www poprzez wyeliminowywanie niepotrzebnych opóźnień.

HTTP/2 push

Dzięki mechanizmowi HTTP Push serwer może sam dosyłać do klienta zasoby (np. pliki), które są niezbędne do poprawnej obsługi żądania związanego z aktualnie przetwarzanym plikiem. Oznacza to, że w przypadku wysłania żądania do serwera z prośbą o udostępnienie zawartości pliku, serwer może też od razu wysłać inne pliki, które są niezbędne do poprawnego wyświetlenia strony – np. pliki skryptów JS, arkuszy stylów CSS czy obrazków. Oprogramowanie serwera robi to bez inicjowania zapytania o żądanie tych plików.

Opcja ta jest jednak nie wspierana i nie będzie dalej rozwijana.

HTTP/2 a certyfikat SSL

Użycie HTTP/2 wymusza na użytkownikach korzystanie z połączenia szyfrowanego, a na właścicielach stron www posiadanie certyfikatu SSL. Stoi za tym decyzja twórców przeglądarek internetowych, które obsługują HTTP/2 tylko poprzez połączenia szyfrowane. Sam standard HTTP/2 nie nakłada takiego obowiązku, ale bez implementacji certyfikatu SSL (który sam w sobie jest czynnikiem rankingowym) nie będzie możliwości skorzystania z zalet HTTP/2.

Typ i rodzaj użytego certyfikatu nie mają wpływu na funkcjonowanie protokołu HTTP/2. Sprawdzą się tutaj zarówno drogie certyfikaty komercyjne, jak i certyfikaty Wildcard albo bezpłatny certyfikat SSL Let’s Encrypt.

Zalety HTTP/2

HTTP/2, w porównaniu z poprzednią wersją protokołu, wprowadza szereg nowych rozwiązań oraz mechanizmów, które sprawiają, że jest on szybszy i wydajniejszy. Najważniejsze z nich to:

  • mniejsza podatność na błędy,
  • priorytetyzacja dla zasobów,
  • bezpieczeństwo,
  • szybkość,
  • skalowalność,
  • równoległe wykonywanie wielu żądań bez konieczności oczekiwania na wykonanie jednego z nich,
  • zdjęcie części prac z serwera, co powoduje mniejsze jego obciążenie,
  • kompresja nagłówków, która oszczędza mnóstwo transferu.

Wpływ HTTP/2 na SEO

Implementacja nowego protokołu jest krokiem naprzód także jeśli chodzi o SEO. Z uwagi na różnice w działaniu pomiędzy HTTP a HTTP/2 strony ładują się znacznie szybciej, gdyż jednocześnie otrzymują więcej zasobów. Ma to oczywiście wpływ na użytkownika, który dostaje szybciej treść podstrony.

Google może traktować obecność HTTP/2 jako jeden z sygnałów rankingowych. We wrześniu 2020, za pośrednictwem swojego bloga, Google poinformowało, że Googlebot będzie odwiedzał i indeksował niektóre strony internetowe z pomocą HTTP/2.

Sama idea protokołu pozwala na znaczne przyspieszenie ładowania się zasobów, co skraca czas oczekiwania użytkownika na dotarcie do interesujących go treści. Już samo to stwierdzenie sprawia, że HTTP/2 jest jedną ze składowych, o które należy zadbać wykonując techniczne prace w zakresie SEO.

Implementacja HTTP/2 wymusza też konieczność stosowania certyfikatu SSL, którego użycie jest traktowane przez Google jako czynnik biorący udział w ustalaniu rankingu. Wymuszenie tej dobrej praktyki przez twórców przeglądarek sprawia, że używając HTTP/2 stosujemy też inne, potwierdzone przez Google, mechanizmy mające wpływ na ranking wyników wyszukiwania.

Które przeglądarki obsługują HTTP/2?

W chwili obecnej wszystkie przeglądarki internetowe wspierają HTTP/2. Jak podaje serwis caniuse.com, zapewnione jest wsparcie dla tego protokołu zarówno przez Chrome, Operę, Firefoxa czy Edge, jak i przez przeglądarki mobilne na systemie Android oraz IOS.

wsparcie przeglądarek dla http/2

Wsparcie ze strony przeglądarki to tylko jedna strona medalu. Aby HTTP/2 zadziałało musi go wspierać także serwer, na którym jest umieszczona strona. Jeśli tak się nie dzieje, przeglądarki negocjują użycie protokołu HTTP 1.1.

Według dostępnych danych, użycie HTTP/2 w lutym 2021 wyniosło już ponad 50%. Jest to wzrost w porównaniu z analogicznym okresem poprzedniego roku o prawie 10%.

Jak sprawdzić, czy moja strona obsługuje HTTP 2.0?

Takie pytanie zostało zadane celowo, gdyż będzie ono nurtować czytających ten wpis właścicieli witryn. Należy jednak nadmienić, że za obsługę HTTP/2 odpowiada serwer, więc na to pytanie powinien odpowiedzieć nasz hostingodawca. Nie da się włączyć obsługi HTTP/2 z poziomu CMS np. WordPress czy Presta Shop. Można za to sprawdzić, czy serwer udostępnia możliwość zestawienia połączenia z wykorzystaniem HTTP/2. Niektóre serwery (jak np. Lite Speed) mają domyślnie skonfigurowaną obsługę HTTP/2, na innych (np. nginx) konieczne jest jej włączenie.

Wynik testu http/2

Na powyższym zrzucie ekranu widoczny jest wynik testu dla domeny widzialni.pl, który pokazuje, że na serwerze, gdzie znajduje się strona, jest włączona obsługa HTTP/2. Za pomocą testera KeyCDN można w łatwy sposób sprawdzić to, czy nasz serwer posiada obsługę takiego protokołu.

HTTP/2 na nginx

Włączenie obsługi HTTP/2 na serwerze nginx jest możliwe. Wystarczy wykonać 4 kroki i wydać kilka komend do swojego systemu operacyjnego znajdującego się na serwerze z nginx, aby włączyć obsługę HTTP/2. Serwer musi przekierowywać ruch z portu 80 na bezpieczny port 443 oraz posiadać obsługę 2048 bitowego klucza DHE.

  1. Włączamy obsługę HTTP/2 zmieniając parametry konfiguracyjne w gałęzi /sites-available/
    listen [::]:443 ssl http2 ipv6only=on;
    listen 443 ssl http2;
  2. Usuwamy stare i niebezpieczne zestawy kluczy kryptograficznych, by nie zostały one zablokowane przez czarną listę HTTP/2
  3. Weryfikujemy, czy HTTP/2 jest włączony, można to zrobić wydając polecenie:
    curl -I -L https://widzialni.pl
  4. Włączamy mechanizm HSTS

Wnioski

Użycie HTTP/2 będzie krokiem naprzód jeśli chodzi o szybkość i bezpieczeństwo w sieci. Poprawi też wrażenia o odczucia użytkowników sieci www. Wymuszenie konieczności korzystania z SSL oraz zastosowane w HTTP/2 mechanizmy mają też wpływ na pozycjonowanie, dając kilka dodatkowych punktów przewagi nad konkurencją…

Powiązane wpisy

Kursy z marketingu internetowego online!

Zarejestruj się do bezpłatnej platformy.

Dołącz do newslettera i otrzymuj regularną dawkę wiedzy oraz ciekawostek ze świata digital marketingu!

Z naszą pomocą zawsze będziesz na bieżąco – bez spamu!

Poznaj historie, które odmienią Twój biznes

Oglądaj na YouTube!

O blogu

Blog powstał w celu przybliżenia marketingu internetowego w wyszukiwarkach wszystkim zainteresowanym tą tematyką. Będziemy dzielić się tutaj naszą wiedzą oraz nowościami z branży. Życzymy miłej lektury.

Szukaj