Bliższe spojrzenie na HTTP/2: jak to działa i co oznacza dla sieci

Opublikowany: 2023-02-09

W 2015 roku została zatwierdzona nowa wersja protokołu sieciowego HTTP — HTTP/2. Teraz staje się coraz bardziej popularny: protokół obsługuje już serwery WWW Apache i Nginx, przeglądarki Chrome, Firefox, Opera, Edge i Safari, a także urządzenia mobilne.

Liczba usług i witryn HTTP/2 stale rośnie. W niedalekiej przyszłości Internet czeka na przejście na nowy protokół, który przyspieszy pobieranie stron.

Dowiedzmy się, jak wpłynie to na budowanie witryny, SEO i inne aspekty.

Spis treści
Co to jest HTTP/2?
Różnica między HTTP a HTTP 2
Plusy i minusy HTTP/2
Dlaczego świat potrzebował HTTP/2?
Czy protokół HTTP/2 jest naprawdę szybszy?
Dlaczego HTTP/2 działa szybciej?
Dlaczego ważne jest, aby przyspieszyć ładowanie strony internetowej?
Jak wdrożyć HTTP 2?
Wniosek
Często Zadawane Pytania

Co to jest HTTP/2?

http 2
HTTP 2

Protokół HTTP/1.1 jest używany od 1999 roku iz czasem nabył jeden istotny problem. Nowoczesne strony, w przeciwieństwie do tego, co było popularne w 1999 roku, wykorzystują wiele różnych elementów: skrypty JavaScript, style CSS, a czasem także animację flash. Podczas przesyłania ich wszystkich przeglądarka i serwer tworzą kilka połączeń.

Protokół HTTP/2 znacznie przyspiesza działanie stron internetowych dzięki następującym cechom:

  • Połączenia: wiele żądań może być wysyłanych za pośrednictwem jednego połączenia TCP, a odpowiedzi mogą być odbierane w dowolnej kolejności. Nie ma potrzeby utrzymywania wielu połączeń TCP.
  • Priorytety wątków: klient może ustawić priorytety serwera — jakie zasoby są dla niego ważniejsze niż inne.
  • Kompresja nagłówka: można zmniejszyć rozmiar nagłówka HTTP.
  • Push-wysyłanie danych od strony serwera: serwer może wysłać klientowi dane, o które jeszcze nie poprosił, na przykład na podstawie danych o następnej stronie, którą użytkownicy zamierzają otworzyć.

Rozwój protokołu HTTP 2 został oparty na protokole SPDY, opracowanym przez Google. Ale Google już ogłosił, że odmówi dalszego wsparcia SPDY dla bardziej obiecującego HTTP/2.

Przeczytaj: Dlaczego Twoja witryna WordPress działa wolno i jak ją przyspieszyć?

Kluczowe cechy protokołu HTTP/2

  • Multipleksowanie
  • Push serwera
  • Kompresja nagłówka
  • Priorytetyzacja strumienia
  • Kontrola przepływu

Różnica między HTTP a HTTP 2

Zmiany jakie zostały wprowadzone w pierwszym protokole nie wymagają wielu zmian w sposobie działania aplikacji. Chociaż istnieje zaleta dla nowych aplikacji, które będą działać ze zwiększoną szybkością. Poniżej porównano kluczowe różnice między tymi dwoma protokołami:

Funkcja HTTP HTTP2
Składnia Składnia wysokiego poziomu jest taka sama Składnia wysokiego poziomu jest taka sama
Ramki danych Zmodyfikowane kadrowanie danych Ulepszone kadrowanie danych
Zapytania Ograniczone zapytania Więcej zapytań
Responsywność serwera Ograniczona responsywność Zwiększona responsywność
Wydajne strony internetowe Zminimalizowane żądania Zwiększona wydajność
Blokowanie na czele linii Obecny w HTTP Przezwyciężyć w HTTP2
Multipleksowanie Nieobecny Obecny
Kompresja nagłówka Nieobecny Obecny
Poproś o priorytetyzację Nieobecny Obecny
Różnica między HTTP a HTTP/2

Poniżej znajduje się dobra wizualna reprezentacja podstawowej różnicy między HTTP/1 a HTTP/2 (dzięki uprzejmości: http:// ruzhekov.com )

nginx http/2
nginx http/2

Plusy i minusy HTTP/2

Zalety

  • Poprawiona szybkość ładowania strony
  • Lepsze wykorzystanie zasobów sieciowych
  • Zwiększone doświadczenie użytkownika
  • Lepsza kompatybilność z nowoczesnymi technologiami internetowymi

Cons

  • Mówi się, że protokół jest niespójny i złożony
  • Narusza zasadę warstw protokołów
  • Pochodzi z dużym kosztem szyfrowania
  • Brak zgodności z niektórymi urządzeniami, takimi jak routery
  • Brakuje szyfrowania oportunistycznego

Dlaczego świat potrzebował HTTP/2?

  • Protokół HTTP został po raz pierwszy opisany w 1991 r., a jego najnowsza wersja, HTTP/1.1, została zatwierdzona w 1999 r. i jest używana do dziś.
  • Rozmiary stron internetowych znacznie wzrosły na przestrzeni lat, co prowadzi do powolnego ładowania i ograniczeń liczby jednoczesnych połączeń przy użyciu protokołu HTTP/1.1.
  • Wdrożono tymczasowe rozwiązania, takie jak optymalizacja obciążenia strony internetowej, ale oferują one tylko rozwiązanie krótkoterminowe.
  • Inżynierowie Google rozpoczęli prace nad ulepszeniem protokołu w 2009 roku, co doprowadziło do stworzenia protokołu SPDY, który jest szybszy i obsługiwany przez większość przeglądarek, ale wymaga wsparcia po stronie serwera.
  • HTTP/2 jest oparty na SPDY i jest wstecznie kompatybilny z HTTP/1.1. Nie ma natychmiastowej potrzeby aktualizacji, ale ostatecznie witryny mogą ładować się wolniej na starszym protokole.

Czy protokół HTTP/2 jest naprawdę szybszy?

Eksperci HttpWatch przeprowadzili kilka testów i stwierdzili poważne przyspieszenie z HTTP 2.

Poniższy zrzut ekranu pokazuje prędkość pobierania strony przy użyciu protokołu HTTP / 1.1:

http 2 ss1
HTTP 2 SS1

A na tym zrzucie ekranu — wynik użycia HTTP 2:

http 2 ss2
HTTP 2 ss2

Szybkość pobierania wzrosła o 23%. Eksperci HttpWatch zauważają też, że technologia nie jest jeszcze w pełni zoptymalizowana i spodziewają się realnego przyspieszenia nawet o 30%.

Dlaczego HTTP/2 działa szybciej?

  • Wielokrotne żądania wysyłane w ramach tego samego połączenia w HTTP/2 (multipleksowanie) prowadzą do szybszego ładowania elementów statycznych
  • Kompresja nagłówków HTTP w protokole HTTP/2 zmniejsza ilość danych między serwerem a przeglądarką, zwalniając zasoby
  • Większe bezpieczeństwo dzięki szyfrowanym połączeniom obsługującym protokół HTTP/2 przez wyznaczające trendy przeglądarki (Google Chrome, Mozilla Firefox)
  • Kolejność ustalania priorytetów zmienia się w protokole HTTP/2, przy czym ustalanie priorytetów jest pożądaną metodą prawidłowego funkcjonowania multipleksowania
  • Brak konfiguracji priorytetów w HTTP/2 może prowadzić do zmniejszenia prędkości, ponieważ zasoby, które można załadować później, zajmą osobny pasek i część mocy.

Dlaczego ważne jest, aby przyspieszyć ładowanie strony internetowej?

  • Obsługa HTTP 2 nie jest bezpośrednim czynnikiem rankingowym dla Google
  • Szybkość pobierania jest istotnym czynnikiem rankingowym dla Google
  • HTTP/2 może pozytywnie wpłynąć na szybkość witryny i pozytywnie wpłynąć na ranking ze względu na czynniki behawioralne
  • Szybsze strony mają niższy wskaźnik awaryjności i mogą skutkować większym zaangażowaniem użytkowników
  • Google Bot wkrótce będzie obsługiwał protokół HTTP/2
  • HTTP 2 może stać się czynnikiem rankingowym w przyszłości, ponieważ wyszukiwarki zmieniają algorytmy.

Korzyści dla twórców stron internetowych

HTTP 2 pozwala pozbyć się starych sztuczek, mających na celu przyspieszenie ładowania strony bez HTTP/2. Wymieniamy:

  • Dzielenie domeny na fragmenty lub używanie wielu powiązanych domen do pobierania plików w celu umożliwienia nawiązywania większej liczby połączeń TCP.
  • Sprites of pictures — łączenie obrazów w jednym pliku w celu zmniejszenia liczby żądań. Jednak taki plik musi być najpierw całkowicie załadowany, aby został wyświetlony. Ponadto przetwarzanie dużych plików zużywa więcej pamięci.
  • Połącz pliki CSS i JavaScript, co również ma na celu zmniejszenie liczby żądań, a także zwiększenie wykorzystania pamięci.
  • Inkluzja lub umieszczenie CSS i JavaScript, a czasem nawet obrazów wewnątrz pliku HTML, aby zmniejszyć liczbę połączeń. Jednocześnie strona nie jest wyświetlana, dopóki cały plik nie zostanie załadowany.
  • Domeny bez plików cookie: Pobierz obrazy, CSS i JavaScript z innej domeny, w której pliki cookie nie są używane.

Jak zaimplementować HTTP 2?

Aby zaimplementować HTTP 2, musisz wykonać następujące kroki:

  1. Sprawdź obsługę serwera: Upewnij się, że oprogramowanie serwera obsługuje protokół HTTP 2. Popularne oprogramowanie serwera, takie jak Apache, Nginx i IIS, ma wbudowaną obsługę protokołu HTTP 2.
  2. Włącz HTTP 2: Po potwierdzeniu, że Twój serwer obsługuje HTTP 2, musisz go włączyć. Metoda włączania protokołu HTTP 2 różni się w zależności od używanego oprogramowania serwera.
  3. Użyj HTTPS: HTTP 2 wymaga bezpiecznego połączenia za pomocą HTTPS, więc musisz mieć zainstalowany certyfikat SSL na swoim serwerze.
  4. Zaktualizuj swój kod: jeśli używasz biblioteki lub frameworka obsługującego połączenia HTTP, upewnij się, że obsługuje on HTTP 2. Niektóre biblioteki mogą wymagać aktualizacji, aby działały z HTTP 2.
  5. Przetestuj swoją witrynę: po wprowadzeniu niezbędnych zmian przetestuj swoją witrynę, aby upewnić się, że działa z HTTP 2. Sprawdź konsolę przeglądarki pod kątem błędów lub ostrzeżeń.
  6. Monitoruj wydajność: Regularnie monitoruj wydajność swojej witryny, aby upewnić się, że działa ona płynnie z HTTP 2.
  7. Rozważ optymalizację wydajności: Wdrożenie HTTP 2 poprawi wydajność Twojej witryny, ale nadal mogą istnieć możliwości dalszej optymalizacji. Na przykład łączenie obrazów w duszki, kompresowanie obrazów i zmniejszanie liczby żądań HTTP może jeszcze bardziej poprawić wydajność.

Wniosek

HTTP 2 jest wstecznie kompatybilny z HTTP 1.1 i nie wymaga migracji. Ponieważ jednak serwery sieciowe i przeglądarki przyjmują protokół HTTP 2, może zaistnieć potrzeba aktualizacji technik optymalizacji witryny, aby uniknąć jej spowolnienia.

Przeczytaj: Kompletny przewodnik po migracji HTTP na HTTPS w WordPress

Scalanie obrazów w sprite'y poprawia kompresję i ogranicza pobieranie danych, unikając używania URI danych do osadzania obrazów, co może poprawić buforowanie. Fragmentowanie domeny nie jest już konieczne w HTTP 2, ponieważ umożliwia bezpośrednie żądania zasobów i może zmniejszyć wydajność poprzez tworzenie dodatkowych połączeń.

Często Zadawane Pytania

Do czego służy protokół HTTP2?

HTTP2 to protokół używany do przesyłania danych przez Internet, poprawiający szybkość i bezpieczeństwo dostarczania treści internetowych, takich jak strony, obrazy i filmy, z serwera do przeglądarki. Oferuje szybsze ładowanie strony i zwiększoną wydajność w porównaniu do swojego poprzednika, HTTP 1.1, umożliwiając jednoczesne wysyłanie i odbieranie wielu żądań.

Jaka jest różnica między HTTP a HTTP2?

HTTP2 to zaktualizowana wersja protokołu HTTP, która jest szybsza i bardziej wydajna niż jego poprzednik. Wykorzystuje jedno połączenie do ładowania wielu zasobów, podczas gdy w HTTP wymagane było wiele połączeń. HTTP2 zapewnia również kompresję danych i ustalanie priorytetów, co prowadzi do szybszego ładowania stron dla użytkowników.

Dlaczego protokół http2 nie jest powszechnie używany?

HTTP2 nie jest szeroko stosowany ze względu na problemy z kompatybilnością i implementacją. Niektóre stare urządzenia i oprogramowanie nie obsługują HTTP2 i wymaga to dedykowanego serwera oraz certyfikatu SSL do wdrożenia.