Bliższe spojrzenie na HTTP/2: jak to działa i co oznacza dla sieci
Opublikowany: 2023-02-09W 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.
Co to jest 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 |
Poniżej znajduje się dobra wizualna reprezentacja podstawowej różnicy między HTTP/1 a HTTP/2 (dzięki uprzejmości: http:// ruzhekov.com )
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:
A na tym zrzucie ekranu — wynik użycia HTTP 2:
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:
- 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.
- 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.
- Użyj HTTPS: HTTP 2 wymaga bezpiecznego połączenia za pomocą HTTPS, więc musisz mieć zainstalowany certyfikat SSL na swoim serwerze.
- 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.
- 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ń.
- Monitoruj wydajność: Regularnie monitoruj wydajność swojej witryny, aby upewnić się, że działa ona płynnie z HTTP 2.
- 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.