Co to jest HTTP/2

HTTP/2 to pierwsza aktualizacja protokołu Hypertext Transfer Protocol od 1999 roku. Jego celem jest poprawa wydajności witryny internetowej poprzez optymalizację sposobu wyrażania HTTP „w sieci”. Nie zmienia semantyki HTTP, co oznacza, że ​​pola nagłówka, kody stanu i pliki cookie działają dokładnie tak samo, jak w HTTP/1.1.

Protokół HTTP/2 rozpoczął swoje życie jako protokół SPDY firmy Google, który zaprojektowano w celu rozwiązania wielu problemów z wydajnością związanych z protokołem HTTP/1.1. Podstawowe zalety SPDY zostały wprowadzone do protokołu HTTP/2, ulepszone przez globalną społeczność internetową i sformalizowane w standard internetowy.

https

https

Zalety protokołu HTTP/2

Protokół HTTP/2 wprowadza kilka nowych funkcji i wszystkie mają na celu skrócenie czasu ładowania strony dla odwiedzających Twoją witrynę.

Multipleksowanie

Multipleksowanie jest prawdopodobnie najważniejszą zaletą protokołu HTTP/2. Protokół HTTP/1.1 wymaga, aby każde żądanie korzystało z własnego połączenia TCP. Z kolei multipleksowanie pozwala przeglądarce na uwzględnienie wielu żądań w jednym połączeniu TCP.

Problem polega na tym, że przeglądarka może mieć w danym momencie tylko ograniczoną liczbę otwartych połączeń TCP. W przypadku protokołu HTTP/1.1 oznacza to, że przeglądarka może załadować tylko jeden zasób na raz – każdy zasób na stronie internetowej jest przesyłany z powrotem do przeglądarki sekwencyjnie. Multipleksowanie umożliwia przeglądarce równoległe żądanie wszystkich tych zasobów. Powoduje to dramatyczny wzrost wydajności.

HTTP/1.1 przypomina kupowanie pojedynczego produktu w sklepie spożywczym, zabranie go do domu, powrót do sklepu po następny potrzebny produkt i powtarzanie, aż spiżarnia będzie w pełni zaopatrzona. Multipleksowanie zapewnia koszyk na zakupy, dzięki czemu możesz odebrać wszystko, czego potrzebujesz podczas jednej podróży.

Kompresja nagłówka

Nowoczesne witryny internetowe opierają się na wielu zasobach zewnętrznych: obrazach, CSS, JavaScript i czcionkach, żeby wymienić tylko kilka. Za każdym razem, gdy przeglądarka żąda jednego z tych zasobów, zawiera nagłówek HTTP z żądaniem. Gdy serwer odsyła zasób z powrotem do przeglądarki, zawiera również nagłówek odpowiedzi HTTP. To dużo narzutów w przypadku typowej strony internetowej.

HTTP/2 wymusza wysyłanie wszystkich nagłówków HTTP w formacie skompresowanym, co zmniejsza ilość informacji, które muszą być wymieniane między przeglądarką a serwerem. HTTP/1.1 nie zapewnia żadnej formy kompresji nagłówków.

Porównanie HTTP/1.1 oraz HTTP/2

Porównanie HTTP/1.1 oraz HTTP/2

Serwer Push

HTTP/2 Server Push umożliwia naszej sieci brzegowej wysyłanie zasobów internetowych z powrotem do Twojej przeglądarki, zanim nawet zorientuje się, że ich potrzebuje. Przyspiesza to czas ładowania strony, eliminując niepotrzebne obiegi. Na przykład, gdy przeglądarka żąda strony HTML, możesz „wypchnąć” wszystkie arkusze stylów CSS, zasoby obrazów i inne zasoby znajdujące się na tej stronie internetowej. Gdy przeglądarka przeanalizuje kod HTML i znajdzie wszystkie te zasoby, zostaną one już załadowane do lokalnej pamięci podręcznej przeglądarki. Pozwala to uniknąć dodatkowych żądań z powrotem do serwera.

Priorytet transmisji

Priorytet strumienia to mechanizm umożliwiający przeglądarkom określenie, które zasoby chcą otrzymać w pierwszej kolejności. Na przykład przeglądarka obsługująca protokół HTTP/2 może użyć priorytetu strumienia, aby najpierw załadować kod HTML strony, następnie CSS, potem JavaScript, a na końcu zasoby graficzne. Ta kolejność umożliwia przeglądarce jak najszybsze renderowanie strony.

Możesz myśleć o priorytecie strumienia jako optymalizacji oprócz multipleksowania. Multipleksowanie umożliwia wysyłanie kilku żądań w ramach jednego połączenia TCP, a priorytet strumienia pozwala określić kolejność odpowiedzi. Chociaż multipleksowanie eliminuje znaczną część narzutu TCP, nie robi nic, aby zoptymalizować czas przesyłania z serwera do przeglądarki. Do tego służy priorytet strumienia.

Jakie korzyści przyniesie Tobie korzystanie z hostingu, który posiada HTTP/2

Optymalizacja treści internetowych i HTTP/2

Znaczna część optymalizacji witryny pod kątem HTTP/1.1 polega na zminimalizowaniu liczby połączeń TCP z serwerem. Skutkuje to praktykami, takimi jak łączenie wielu plików CSS lub JavaScript w jeden plik, łączenie wielu plików graficznych w jeden arkusz tzw. sprites i rozmieszczanie zasobów witryny w wielu domenach (sharding). Wiele z tych technik nie jest już potrzebnych w HTTP/2, a niektóre z nich mogą w rzeczywistości pogorszyć wydajność.

Łączenie plików nie jest już dobrą praktyką w HTTP/2. Chociaż konkatenacja może nadal poprawiać współczynniki kompresji, wymusza kosztowne unieważnienie pamięci podręcznej. Nawet jeśli zmieni się tylko jeden wiersz CSS, przeglądarki będą zmuszone przeładować wszystkie zasoby. W HTTP/2 lepiej jest wysyłać szczegółowe zasoby i optymalizować sposób ich buforowania.

W HTTP/2 należy unikać fragmentowania domeny. Celem shardingu jest maksymalizacja liczby aktywnych połączeń TCP. Jednak każde z tych połączeń wiąże się z niepotrzebnym narzutem i konkuruje ze sobą o przepustowość. Wyeliminowanie fragmentacji domeny upraszcza również procesy kompilacji i wdrażania, ponieważ wszystkie zasoby mogą teraz znajdować się na jednym serwerze.

Szyfrowanie i HTTP/2

Protokół HTTP/2 technicznie nie wymaga szyfrowanego połączenia, ale większość implementacji obsługuje protokół HTTP/2 tylko wtedy, gdy jest używany w połączeniu z SSL/TLS. Żadna przeglądarka obecnie nie obsługuje protokołu HTTP/2 przez niezaszyfrowane połączenie. Ze względów praktycznych oznacza to, że Twoja witryna musi być obsługiwana przez HTTPS, aby korzystać z protokołu HTTP/2.

Masz pytania?

tel. Office: +48 59 300 32 03
tel. Technical Support: +48 603-344-390
tel. Customer Support: +48 59 300 32 01
fax: +48 59 300 32 04
email: biuro(at)technet-media.pl
Poniedziałek-Piątek 09:00-17:00