HTTP / 2 to nowy sposób sprawia, że ​​twoja strona ładuje się znacznie szybciej eliminując wiele nieefektywności związanych z aktualną wersją HTTP. Najlepsze w tym wszystkim? Nie musisz dużo wysiłku, aby go uruchomić.

A może ty?

Co to jest HTTP / 2?

Kiedy początkowo opracowywano HTTP1 i HTTP1.1, sieć była bardzo odmienna od obecnej. Strony internetowe miały mniej zasobów (pliki JavaScript, pliki CSS, obrazy) niż dziś. Połączenia z internetem nie były bardzo szybkie, a użytkownicy nie byli zbyt wrażliwi na szybkość wczytywania strony.

Użytkownicy zaczynają dostawać swędzących palców, gdy witryna potrzebuje więcej niż 3 sekund, aby wyświetlić odpowiedź.

Cieszyłeś się, że witryna załadowana jest na pełnym ekranie. Mogłeś potajemnie narzekać, że ładowanie było powolne. Ale tak naprawdę nie można wiele z tym zrobić. Wynika to z faktu, że czas ładowania był zwykle zależny od czynników niezależnych od serwera internetowego i technologii, z której korzystałeś. Przeważnie było to rzeczywiste połączenie internetowe, które było głównym czynnikiem ograniczającym.

Szybko do przodu do dziś. Świetne czasy ładowania witryny są mierzone w milisekundach zamiast sekund. Użytkownicy zaczynają dostawać swędzących palców, gdy witryna potrzebuje więcej niż 3 sekund, aby wyświetlić odpowiedź. W takiej sytuacji, nieefektywności liczone w milisekundach związanych z oryginalnymi wersjami HTTP zaczynają robić prawdziwą różnicę. To dlatego tak wiele artykułów dyskutuje jak sprawić, by Twoja witryna była szybsza . Ponieważ milisekundy mają znaczenie.

Nowa wersja protokołu HTTP, znana jako HTTP / 2 rozwiązuje konkretne znane problemy z HTTP. Jego celem jest zajęcie się szeregiem problemów, które stały się bardziej wyraźne, ponieważ Internet ewoluował w stronę większych i większych stron internetowych z dużo większą liczbą plików CSS, JS i obrazów, niż początkowo przewidywano.

Ale co jest nie tak z HTTP1.x i dlaczego poświęcamy tyle wysiłku, aby przyspieszyć?

Problemy z HTTP1.x

HTTP1.x ma wiele nieodłącznych problemów. Właściwie powstrzymajmy się od nazywania ich problemami. HTTP1.x ma wiele sposobów, dzięki którym może być bardziej wydajny.

  1. HTTP 1.x jest oparty na tekście: pierwotnie pomysł polegał na tym, że HTTP1.x powinien być czytelny dla ludzi, więc był w pełni oparty na tekście. Z definicji wszystkie protokoły tekstowe mają związane z nimi nieefektywności, takie jak białe spacje, przerwy w łączach, wielkie litery itp.
  2. Tylko jeden plik jest przesyłany w tym samym czasie: jest to jeden z największych problemów z 1.x wersjami HTTP. Wyobraź sobie, że jesteś dostawcą, który jest w stanie dostarczyć tylko jedną paczkę na raz. Muszą wrócić do bazy za każdym razem, gdy muszą dostarczyć następny pakiet.
  3. Na dzisiejsze witryny wymagane są setki żądań: bardziej wyrafinowane tematy oznaczają, że rozmiar stron internetowych i liczba zasobów rośnie. Podobnie czas ładowania każdego zasobu. Pamiętaj, że nasz "dostarczyciel" musi za każdym razem wracać do bazy, nie jest w stanie przesłać więcej niż jednego pliku na raz.
  4. Każde połączenie jest ciężką operacją techniczną: ponieważ wymagane są setki połączeń, zaczyna gromadzić poważne koszty ogólne. Ponieważ czas ładowania mierzony jest w milisekundach, łączny czas wymagany do utworzenia połączenia dla setek zasobów zaczyna być bardzo znaczący.

Wielokrotnie projektanci stron internetowych musieli wdrażać konkretne środki w celu ograniczenia tych nieefektywności. Rozwiązania takie jak sprite'y CSS, minimalizowanie i łączenie plików mają na celu przezwyciężenie problemów z ładowaniem stron internetowych.

Są to - w zasadzie - rozwiązania, a nie poprawki.

Jak HTTP / 2 rozwiązuje problemy HTTP1.x

HTTP / 2 jest zaprojektowany i ewoluował od SPDY , protokół zaprojektowany dla Google mające na celu zwiększenie szybkości działania sieci 2x. Rozwiązuje problemy HTTP w następujący sposób

  1. HTTP / 2 jest przeznaczony do użytku przez komputery (twoja przeglądarka internetowa i serwer WWW twojej witryny), a nie ludzi. Jest binarny, a nie oparty na tekście, co czyni go bardziej efektywnym. Przesyłanie i parsowanie danych odbywa się szybciej przy użyciu protokołów binarnych.
  2. Wiele plików może być przesyłanych jednocześnie w tym samym połączeniu . Poprawki zostały zaimplementowane w taki sposób, że możesz potokować zasoby w tym samym połączeniu. Zamiast otwierać nowe połączenie za każdym razem (nasz dostawca powraca do bazy), wszystkie zasoby mogą być przenoszone na tym samym połączeniu (nasz dostawca rzuca wszystko w furgonetkę i zabiera wszystko w jedną podróż).
  3. Serwer push do wysyłania plików, które będą wymagane przez przeglądarkę. W HTTP1.x jest to przeglądarka, która prosi serwer o zasoby, których potrzebuje. Serwer HTTP Push (zaimplementowany jako część HTTP / 2) pozwala serwerowi na wysyłanie zasobów, które będą mu potrzebne. Na przykład możesz poinstruować serwer, aby nie czekał, aż przeglądarka zapyta o pliki CSS, JS i inne pliki zasobów, których przeglądarka i tak będzie potrzebować.
  4. Nagłówek pakietów HTTP i inne optymalizacje - są to ulepszenia techniczne, które mają na celu poprawę rzeczywistej wydajności transferów

Co jest wymagane, aby włączyć HTTP2?

Nie obsługując protokołu HTTP / 2 przez niezaszyfrowane połączenia, właściciele witryn są silnie uzbrojeni we wdrażanie HTTPs dla swojej witryny.

Już na samym początku artykułu powiedzieliśmy, że nie wymaga to od was dużego wysiłku, aby włączyć HTTP / 2. Włączenie HTTP / 2 jest czymś, co należy zrobić na poziomie serwera WWW. Większość serwerów internetowych, takich jak Apache, Nginx, IIS i inne główne serwery internetowe, ma już obsługę HTTP / 2.

Jeśli uruchamiasz własny serwer sieciowy, wystarczy zainstalować i włączyć biblioteki HTTP / 2. Jeśli Twoja witryna jest hostowana przez firmę hostingową, sprawdź w firmie, czy serwer WWW jest już włączony dla HTTP / 2.

Połów? Bezpieczne certyfikaty

Może rzeczy były zbyt piękne, aby mogły być prawdziwe. Właśnie przedyskutowaliśmy, w jaki sposób serwery internetowe w pełni obsługują protokół HTTP / 2.

Większość dużych przeglądarek internetowych również w pełni obsługuje protokół HTTP / 2. Jednak również zdecydowali się na obsługę tylko protokołu HTTP / 2 w trybie szyfrowania. Powodem jest to, że nastąpił silny ruch, aby włączyć HTTPS (szyfrowanie) w całym Internecie. Takie inicjatywy, jak HTTPS wszędzie mocno naciskać na potrzebę HTTPS na wszystkich stronach internetowych.

Nie obsługując protokołu HTTP / 2 przez niezaszyfrowane połączenia, właściciele witryn są silnie uzbrojeni we wdrażanie HTTPs dla swojej witryny.

Oczywiście nie musi to być złe. Wdrożenie HTTPS ma znaczące zalety związane z bezpieczeństwem i prywatnością. Łączą się firmy, które wspólnie tworzą Urząd Certyfikacji Zakodujmy aby umożliwić bezpłatne bezpieczne certyfikaty, całkowity koszt faktycznego uzyskania certyfikatu i wdrożenia protokołu HTTPS staje się znacznie tańszy. Było to stosunkowo kosztowne do niedawna.

Wdrożenie protokołu HTTPS nie jest czymś, co powinieneś zrobić bez należytej staranności. Być może zechcesz porozmawiać o tym ze swoim zaufanym twórcą strony lub osobą o dostatecznej wiedzy technicznej. Najczęściej Twoja firma hostingowa powinna być w stanie poprowadzić Cię przez to.

Oczywiście zdecydowanie zaleca się wdrożenie HTTPS. Poza dodatkowymi zabezpieczeniami, uzyskasz możliwość włączenia HTTP / 2 i przyspieszenia działania witryny. To właśnie nazywamy sytuacją, w której wszyscy wygrywają.

Czy nadal potrzebne są inne techniki optymalizacji?

Tak i nie.

Niektóre optymalizacje mające na celu zmniejszenie liczby żądań internetowych stają się zbędne. Jeśli twoja witryna wymaga czasu obliczeniowego, aby "połączyć" JS, CSS i inne pliki, faktycznie stanie się to kosztem ogólnym. Za każdym razem "zmarnowany", odnoszący się do wyżej wymienionych nieefektywności, nie jest już konieczny.

Z drugiej strony, takie optymalizacje, takie jak buforowanie, zmniejszenie zasobów, dostarczanie treści przez CDN, wybór doskonałego serwera hostingowego i inne optymalizacje, które rozwiązują różne rodzaje nieefektywności, powinny pozostać na miejscu.

Wielką zaletą protokołu HTTP / 2 jest to, że nie tylko powoduje to, że witryna ładuje się szybciej, ale także zwiększa bezpieczeństwo witryny. Nie ma argumentów, że obie te korzyści są korzystne. HTTP / 2 to kolejny krok do przyspieszenia działania całej sieci. Bądźmy częścią tego i spraw, aby to się stało.