Wprowadzenie do HTTP / 2 dla WordPress

HTTP / 2 jest jednym z najważniejszych kamieni milowych, które należy wprowadzić we współczesnej sieci. W tym artykule podkreślono aktualny stan protokołu HTTP i przedstawiono podstawowe zalety (oraz niektóre nietechniczne koncepcje) protokołu HTTP / 2. Dowiemy się również, jak zaimplementować HTTP / 2 dla WordPress w 2018 roku.


Krótka historia HTTP

HTTP oznacza Hypertext Transfer Protocol, który został stworzony przez Tima Bernersa Lee w 1991 roku. Tim to człowiek, któremu musimy podziękować za World Wide Web. HTTP jest jednym z najbardziej wszechobecnych i powszechnie przyjętych protokoły aplikacyjne w Internecie. Ale to nie jedyny.

Poczekaj chwilę. Podkreśliłem to zdanie protokoły aplikacyjne. Dlaczego? Widzisz, Internet to tak naprawdę kompozycja czterech hierarchicznych warstw protokołów. Każda warstwa składa się z kilku protokołów i odpowiada za podstawowa funkcja.

Poszukując trochę, w pakiecie protokołu internetowego (IP) są cztery warstwy:

  1. Warstwa aplikacji
  2. Warstwa transportowa
  3. Warstwa internetowa
  4. Warstwa łącza
Protokoły warstwy aplikacji internetowych

Warstwy protokołu internetowego. Źródło: Wikipedia

Bez wchodzenia w szczegóły, ostatnie trzy warstwy (tj. Warstwy transportu, Internetu i łącza) są odpowiedzialne za ustanowienie niezawodnego połączenia do wymiany danych.

Najwyższa warstwa nazywa się Warstwa aplikacji, który służy wszystkim Aplikacje w Internecie.

  • Przeglądanie stron internetowych to aplikacja w Internecie – która jest możliwa dzięki protokołowi HTTP.
  • E-mail to kolejna aplikacja w Internecie – możliwa dzięki protokołowi POP lub IMAP.

Tam są wiele protokołów w warstwie aplikacji w Internecie, który tworzy takie rzeczy jak YouTube Live Video i Starcie klanów możliwy.

Narodziny HTTP / 2

HTTP / 2 dla WordPress Beginnings

HTTP jest wspólnym językiem między klientami i serwerami, umożliwiając nowoczesną sieć. Od samego początku jako pojedyncze słowo kluczowe i ścieżka dokumentu, stał się protokołem wyboru nie tylko dla przeglądarek, ale dla praktycznie każdego oprogramowania i aplikacji sprzętowej podłączonej do Internetu.

To nasuwa pytanie – jak często aktualizujemy to kluczowe oprogramowanie? Jak się okazuje – niezbyt często

W rzeczywistości ostatni raz protokół HTTP został zaktualizowany w 1997 r. – dziesięć lat przed uruchomieniem pierwszego iPhone’a! To była wersja HTTP 1.1 i 20 lat później, nadal jest ona obecnie najczęściej używaną wersją HTTP!

Wszystko, co dzieje się w Internecie – od strumieniowego przesyłania filmów dla kotów, do czatów wideo na żywo dostarczanych z Międzynarodowej Stacji Kosmicznej i trylionów transakcji online – odbywa się za pośrednictwem technologii, której nie zaktualizowano ponad dwie dekady. Przez lata poczyniliśmy ogromny postęp w tworzeniu nowych aplikacji dla Internetu. Jednak zrobiliśmy to wszystko, tworząc obejścia z ograniczeń HTTP / 1.1

Nie chcę powiedzieć, że HTTP / 1.1 jest zły. Ale może na pewno skorzystaj z aktualizacji. I dlatego w 2015 roku Grupa zadaniowa ds. Inżynierii internetowej podwoił się przy tworzeniu lepszego protokołu dla HTTP.

W rezultacie powstał nowy protokół, który płynnie działał ze wszystkimi rzeczami działającymi na HTTP / 1.1, jednocześnie wprowadzając poważne ulepszenia w technologii bazowej. Ten nowy protokół nazywał się HTTP / 2.

Co zmieniło się w HTTP / 2?

Właściwie wiele rzeczy. Ale nie będziemy tutaj omawiać ich wszystkich. Jestem pewien, że do tego czasu będziesz się nudzić, a jeszcze bardziej pewne, że nie będę w stanie wytłumaczyć tego w sposób bez geeków. Ale jeśli chodzi o HTTP / 2 dla WordPress, oto kilka kluczowych punktów.

Multipleksowanie

W HTTP / 1.1 serwer i klient musieli nawiązywać indywidualne połączenia w celu żądania zasobów. Pozwól mi wyjaśnić tą piękną ilustracją z UpWork:

HTTP / 2 dla WordPress: Multipleksowanie

Ilustracja multipleksowania przez UpWork

Witryna składa się z HTML, CSS, JavaScript, obrazów i innych plików. Te pliki nazywane są zbiorczo zasobami. W tym przykładzie witryna składa się z trzech zasobów – pliku JavaScript, pliku CSS i pliku obrazu.

Widzimy, że w HTTP / 1.1 przeglądarka wymaga trzech połączeń TCP z serwerem, aby zażądać tych zasobów. Dlaczego? Ponieważ w HTTP / 1.1 każde połączenie może żądać tylko jednego żądania. Większa liczba połączeń zwykle skutkuje czymś, co można najlepiej określić jako „korki” zasobów – co ostatecznie prowadzi do spowolnienia działania witryny.

HTTP / 2 obsługuje multipleksowanie

Multipleksowanie to technologia, która umożliwia serwerom wysyłanie wielu plików za pomocą jednego połączenia. W rezultacie, gdy ta sama strona korzysta z HTTP / 2, wszystkie trzy zasoby mogą być wysyłane za pośrednictwem jednego połączenia. W rezultacie czasy ładowania i zużycie zasobów sieciowych znacznie by się zmniejszyły. Mówiąc prościej, możesz zrobić więcej za mniej. Tak więc HTTP / 2 dla WordPress to świetny sposób (potencjalnie) na przyspieszenie witryny WordPress.

Podział domen i inne ulepszenia

Pamiętasz, jak nowsze aplikacje wymagają „obejść”, aby pokonać pewne ograniczenia HTTP / 1.1? Podział domen jest jednym z takich obejść. Zobaczmy, dlaczego shardowanie domen jest wymagane.

Zazwyczaj HTTP / 1.1 ogranicza maksymalną liczbę otwartych połączeń między serwerem (domeną) a klientem. Większość stron internetowych ma wiele zasobów do równoległego ładowania. Aby przyspieszyć ładowanie witryn, witryny zaczęły obsługiwać swoje zasoby z wielu subdomen. Nazywa się to dzieleniem domen.

HTTP / 2 dla WordPress: Sharding domen

Ilustracja dzielenia domen przez UpWork

Teraz dzięki HTTP / 2 nie ma potrzeby udostępniania domeny. Nie dlatego, że HTTP / 2 nie nakłada limitu maksymalnej liczby otwartych połączeń. Ale ponieważ HTTP / 2 obsługuje multipleksowanie. Wszystkie zasoby można wysłać bezpośrednio w jednym połączeniu!

Dzięki multipleksowaniu w HTTP / 2 wiele z tych „obejść” nie jest już wymaganych. Obejmują one Duszki CSS, obrazy inline w CSS przy użyciu URI danych, oraz łączenie CSS i JavaScript. Aby to włożyć Smashing MagazineSłowa:

Żądania HTTP są tanie w świecie HTTP / 2. Porządkowanie zasobów podczas opracowywania według stron, na których będą one używane, będzie znacznie lepsze. Następnie możesz podać tylko kod, którego potrzebuje użytkownik. Pobranie wielu małych arkuszy stylów nie będzie miało znaczenia. Możesz także organizować na podstawie częstotliwości zmian; aktywa o długowieczności mogłyby być dłużej utrzymywane.

Obsługa protokołów binarnych

Wiemy, że komputery mówią za 0 i 1, prawda? Cóż, tak nie mówił HTTP / 1.x. HTTP1.x służy do przetwarzania poleceń tekstowych w celu wykonania cykli żądanie-odpowiedź.

HTTP / 2 obsługuje konwersję z protokołu tekstowego na protokół binarny. Umożliwia to serwerowi i klientowi rozmowę w zerach i jedynek zamiast rzeczywistego tekstu – tym samym znacznie zmniejszając czas i energię potrzebną do wykonania tych samych cykli żądanie-odpowiedź.

Serwer HTTP / 2 Push

Wyjaśnienie tej funkcji może być nieco skomplikowane, ale postaram się to uprościć. W klasycznym scenariuszu HTTP / 1.1 serwer (lub witryna internetowa) wyśle ​​zasoby do klienta (przeglądarki) tylko wtedy, gdy klient zażąda zasobu. Jest to typowy scenariusz żądanie-odpowiedź.

Jednak HTTP / 2 wprowadza koncepcję wypychania serwera, w której po raz pierwszy serwer może wysyłać zasoby (lub informacje) do klienta, bez wyraźnego żądania przez klienta tego zasobu. Ten mechanizm oszczędza podróż w obie strony i zmniejsza opóźnienie sieci.

Deweloperzy sieci Web mogą tworzyć aplikacje wykorzystujące funkcję Push serwera i wysyłać dodatkowe zasoby / informacje do klienta, przewidując żądania. Wynik końcowy? Szybsze, płynniejsze aplikacje.

Kompresja nagłówka

HTTP / 2 używa czegoś zwanego kompresją nagłówka HPACK podczas wymiany danych między klientem a serwerem. Zanim zrozumiemy, dlaczego jest to ważne, czas dowiedzieć się nieco więcej o protokołach.

Jednostka danych w dowolnym protokole (w tym HTTP) składa się z trzech podstawowych elementów – nagłówka, ładunku i stopki.

  1. Nagłówek: Nagłówek zawiera informacje o jednostce danych
  2. Ładunek: są to rzeczywiste dane, które są transportowane z serwera do klienta
  3. Stopka: Jest to rodzaj listy kontrolnej, która zapewnia, że ​​jednostka danych została dostarczona pomyślnie bez żadnych błędów.

Kompresja nagłówka działa dość prosto – serwer kompresuje informacje nagłówka przed przesłanie go do klienta. Po otrzymaniu jednostki danych (lub pakietu) klient dekompresuje nagłówek i wyświetla go (lub używa) użytkownikowi (lub dla).

Ponieważ witryny bogate w media (takie jak Netflix lub New York Times) stają się dzisiaj normą, kompresja nagłówka HPACK HTTP / 2 może zaoszczędzić dużo przepustowości podczas przesyłania danych z serwera do klienta.

Ulepszony TLS

TLS to skrót od Transport Layer Security, czyli technologii szyfrującej połączenia między serwerem a klientem. Wiemy, że ma HTTPS. Jest to technologia, która pomaga zapobiegać kradzieży przez hakerów informacji o karcie kredytowej i innych danych osobowych podczas transakcji online.

HTTP / 2 działa bezbłędnie z istniejącą technologią TLS i wprowadza masę zaawansowanych funkcji, takich jak mniej uzgadniania TLS, niskie zużycie zasobów zarówno po stronie klienta, jak i serwera oraz ulepszone możliwości ponownego wykorzystywania istniejących sesji internetowych, przy jednoczesnym wyeliminowaniu niektórych luk w zabezpieczeniach związanych z HTTP / 1 .x.

Czy świat jest gotowy na HTTP / 2?

To zależy. Większość współczesnych przeglądarek, w tym Chrome i Firefox, obsługuje protokół HTTP / 2. Jeśli masz zasoby do implementacji protokołu HTTP / 2 – powinieneś to zrobić.

Sprawdzanie zgodności dla HTTP / 2 wśród głównych przeglądarek internetowych.

CanIUse.com zapewnia aktualną kontrolę zgodności HTTP / 2 między głównymi przeglądarkami internetowymi

Jak zacząć korzystać z HTTP / 2 dla WordPress?

HTTP / 2 dla WordPress

Implementacja HTTP / 2 na hoście WordPress wymaga dużej wiedzy technicznej. Jeśli jesteś programistą lub sieci i zarządzanie serwerami to Twoja sprawa – idź.

Dobrą wiadomością jest to, że wdrożenie HTTP / 2 dla WordPress jest łatwe dzięki dobrym dostawcom hostingu WordPress. Na przykład, zarówno WPEngine, jak i Kinsta obsługują HTTP / 2 i mają wszystkie niezbędne awarie wymagane, aby zapewnić odwiedzającym witrynę, którzy nie obsługują nowego protokołu, uzyskanie niezawodnej, w pełni zoptymalizowanej wersji HTTP / 1.1.

Z punktu widzenia internauty nie będziesz musiał robić nic innego niż pobierać najnowszą wersję swojej przeglądarki. Jeśli witryna jest zgodna z HTTP / 2, przeglądarka automatycznie się z nią komunikuje przy użyciu nowego protokołu. Jednak HTTP / 2 jest w pełni kompatybilny wstecznie, więc nie będzie to miało wpływu na strony nadal używające starego HTTP. Oznacza to, że możesz po prostu usiąść i cieszyć się szybszym ładowaniem stron internetowych.

Podsumowanie HTTP / 2 dla WordPress

HTTP / 2 dla WordPress jest bardzo potrzebną, rewolucyjną aktualizacją jednej z najważniejszych technologii na świecie. Jednak zajmie to los czasu, zanim HTTP / 2 wejdzie do głównego nurtu – podobnie jak strony HTTPS. Biorąc to pod uwagę, celem tego artykułu jest zapoznanie naszych czytelników z tą cudowną technologią, która może potencjalnie zmienić oblicze sieci.

Myśli o HTTP / 2 dla WordPress? Pytania? Daj nam znać w sekcji komentarzy poniżej!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me