Co to jest HTTP / 2 i jak wpływa na przyszłość Internetu?

  • Harry James
  • 0
  • 2067
  • 92
Reklama

Być może jeszcze nie słyszałeś o HTTP / 2, ale jest to najnowsza aktualizacja HTTP. Nowy standard protokołu wprowadza kilka nowych koncepcji i sprawia, że ​​komunikacja między serwerami i aplikacjami jest szybsza i bardziej wydajna.

Co to jest HTTP / 2?

HyperText Transfer Protocol Version 2 lub HTTP / 2 to pierwsza poważna aktualizacja HTTP od 15 lat.

Poprzedni standard protokołu, HTTP / 1.1, jest używany od 1997 roku i wykorzystuje mieszankę nieporęcznych obejść, aby poprawić ograniczenia HTTP.

Opiera się na SPDY (“szybki”), otwarty eksperyment Google rozpoczęty w celu rozwiązania niektórych problemów i ograniczeń HTTP / 1.1

Zespół ds. Inżynierii internetowej (IETF) określa takie zmiany w Hypertext Transfer Protocol w wersji 2, wersja robocza 17:

“HTTP / 2 umożliwia bardziej wydajne wykorzystanie zasobów sieciowych i zmniejszenie percepcji opóźnień poprzez wprowadzenie kompresji pola nagłówka i umożliwienie wielu jednoczesnych wymian w tym samym połączeniu […]

“Umożliwia także ustalanie priorytetów żądań, umożliwiając szybsze wypełnianie ważniejszych żądań, co dodatkowo poprawia wydajność.”

“HTTP / 2 umożliwia także bardziej wydajne przetwarzanie wiadomości dzięki wykorzystaniu binarnego ramkowania wiadomości.”

“Ta specyfikacja jest alternatywą dla składni komunikatu HTTP / 1.1, ale nie jest przestarzała. Istniejąca semantyka HTTP pozostaje niezmieniona.”

HTTP / 2 jest oparty na SPDY

Do 2012 r. Większość nowoczesnych przeglądarek i wielu popularnych witryn (Google, Twitter, Facebook itp.) Już obsługiwała SPDY. Wraz ze wzrostem popularności SPDY, Grupa Robocza HTTP (HTTP-WG) rozpoczęła prace nad aktualizacją standardu HTTP.

Od tego momentu SPDY stał się podstawą i eksperymentalną gałęzią nowych funkcji w HTTP / 2. W tym czasie sprawdziliśmy, jak SPDY może usprawnić przeglądanie Co to jest SPDY i jak może zmaksymalizować Twoje wrażenia z przeglądania? Co to jest SPDY i jak może zmaksymalizować komfort przeglądania? . Od tego czasu standard wersji 2 został opracowany, zatwierdzony i opublikowany.

Wiele funkcji SPDY zostało włączonych do HTTP / 2, a Google ostatecznie przestał obsługiwać ten protokół na początku 2016 roku.

Większość przeglądarek ostatecznie przestała obsługiwać SPDY, a ponieważ nie ma alternatywy, HTTP / 2 staje się de facto standardem.

Chociaż standard protokołu HTTP / 2 nie jest ściśle kompatybilny wstecz z HTTP / 1, zgodność można osiągnąć poprzez tłumaczenie. Klient tylko HTTP / 1.1 nie zrozumie serwera tylko HTTP / 2 i odwrotnie, dlatego nowa wersja protokołu to HTTP / 2, a nie HTTP / 1.2.

To powiedziawszy, ważną częścią pracy dostarczanej przez HTTP-WG jest upewnienie się, że HTTP / 1 i HTTP / 2 mogą być tłumaczone tam iz powrotem bez utraty informacji.

Wszelkie nowe mechanizmy lub funkcje będą również niezależne od wersji i kompatybilne wstecz z istniejącą siecią.

HTTP / 2 nie jest tak naprawdę czymś, co użytkownik może wdrożyć, ale są rzeczy, które możemy zrobić, aby wpłynąć na naszą szybkość przeglądania. Czy wierzysz, że któryś z tych powszechnych mitów przyspiesza prędkość Internetu? 5 mitów na temat zwiększania prędkości Internetu i dlaczego nie działają 5 mitów na temat zwiększania prędkości Internetu i dlaczego nie działają Szybkość Internetu jest krytycznym pomiarem w XXI wieku. Istnieje jednak wiele dezinformacji w Internecie na temat tego, jak przyspieszyć połączenie. Oto pięć mitów, w które nie powinieneś wierzyć.

Korzyści i cechy HTTP / 2

HTTP / 2 zawiera kilka świetnych aktualizacji standardu HTTP. Niektóre z ważniejszych to: binarne ramkowanie, multipleksowanie, priorytetyzacja strumienia, kontrola przepływu i wypychanie serwera.

Ramowanie binarne

Wiadomości HTTP od mfuji09 są licencjonowane na licencji CC-BY-SA 2.5.

Po aktualizacji do HTTP2 / komunikacja protokołu HTTP zostaje podzielona na wymianę ramek kodowanych binarnie. Te ramki są mapowane na wiadomości należące do określonego strumienia. Strumienie są następnie multipleksowane (w pewnym sensie splecione) w jednym połączeniu TCP.

Nowa binarna warstwa kadrowania wprowadza nową terminologię; Strumienie, wiadomości i ramki.

  • Strumienie są dwukierunkowymi przepływami bajtów, które niosą jeden lub więcej komunikatów.
  • Każdy z tych strumieni ma unikalny identyfikator i może przenosić komunikaty dwukierunkowe przy użyciu opcjonalnych informacji o priorytecie.
  • Ramki są najmniejszą jednostką komunikacji w HTTP / 2, która zawiera określone zestawy danych (nagłówki HTTP, ładunki wiadomości itp.). Nagłówek przynajmniej rozpozna strumień, do którego należy ramka.
  • Wiadomości to kompletny zestaw ramek odwzorowanych na logiczne żądanie lub odpowiedź.
  • Każda wiadomość jest logiczną wiadomością HTTP, taką jak żądanie lub odpowiedź, złożoną z jednej lub więcej ramek.

To pozwala nam korzystać z pojedynczego połączenia TCP, co w przeszłości wymagało wielu.

Multipleksowanie

HTTP / 1.1 zapewnia, że ​​tylko jedna odpowiedź może być dostarczona jednocześnie na połączenie. A przeglądarka otworzy dodatkowe połączenia TCP, jeśli klient chce wysyłać wiele równoległych żądań.

HTTP / 2 usuwa to ograniczenie HTTP / 1.1 i umożliwia pełne multipleksowanie żądań i odpowiedzi. Oznacza to, że klient i serwer mogą podzielić wiadomość HTTP na niezależne ramki, które są następnie przeplatane i ponownie składane na drugim końcu.

Ogólnie rzecz biorąc, jest to najważniejsze ulepszenie protokołu HTTP / 2, ponieważ częściowo wyeliminuje potrzebę wielu połączeń. To z kolei wprowadzi wiele korzyści w zakresie wydajności we wszystkich technologiach sieciowych.

Zmniejszona liczba połączeń oznacza mniej uzgadniania Transport Layer Security (TLS), lepsze ponowne wykorzystanie sesji i ogólne zmniejszenie wymagań dotyczących zasobów klienta i serwera. Dzięki temu aplikacje są szybsze, prostsze i tańsze we wdrożeniu.

Strony internetowe z wieloma zewnętrznymi zasobami (obrazami lub skryptami) odnotują największy wzrost wydajności dzięki multipleksowaniu HTTP / 2.

Priorytetyzacja strumieniowa i zależność

Dalsze udoskonalenia multipleksowanych strumieni są dokonywane przy użyciu zależności wagi i strumienia. HTTP / 2 pozwala nam nadać każdemu strumieniowi wagę (wartość od 1 do 256) i wyraźnie uzależnić go od innego strumienia.

Ta kombinacja zależności i wagi prowadzi do utworzenia drzewa priorytetów, które informuje serwer, w jaki sposób klient wolałby otrzymywać odpowiedzi.

Serwer wykorzysta informacje z drzewa priorytetów do kontrolowania alokacji procesora, pamięci i innych zasobów, a także alokacji przepustowości, aby zapewnić, że klient otrzyma optymalne dostarczenie odpowiedzi o wysokim priorytecie.

Kontrola przepływu

Problemy z kontrolą przepływu w HTTP / 2 są podobne do HTTP / 1.1. Ponieważ jednak strumienie HTTP / 2 są multipleksowane w ramach jednego połączenia TCP, sposób działania kontroli przepływu w HTTP / 1.1 nie jest już wydajny.

Krótko mówiąc, potrzebna jest kontrola przepływu, aby zatrzymać strumienie zakłócające się wzajemnie i powodujące blokadę. Umożliwia to multipleksowanie. HTTP / 2 pozwala na stosowanie różnych algorytmów kontroli przepływu, bez konieczności zmiany protokołu.

W HTTP / 2 nie określono algorytmu kontroli przepływu. Zamiast tego dostarczono zestaw bloków konstrukcyjnych, aby pomóc klientom i serwerom w stosowaniu własnej kontroli przepływu.

Specyfikę tych elementów można znaleźć w “Kontrola przepływu” sekcja projektu Internetu HTTP / 2.

Push serwera

Twoja przeglądarka zwykle żąda i odbiera dokument HTML z serwera podczas pierwszej wizyty na stronie. Serwer musi następnie poczekać, aż przeglądarka przeanalizuje dokument HTML i wyśle ​​żądanie dotyczące osadzonych zasobów (CSS, JavaScript, obrazy itp.).

W HTTP / 1.1 serwer nie może wysłać tych zasobów, dopóki przeglądarka ich nie zażąda, a każdy zasób wymaga osobnego żądania (tj. Wielu uzgadniania i połączeń).

Wypychanie serwera zmniejszy opóźnienia, umożliwiając serwerowi wysyłanie tych zasobów bez pytania, ponieważ już wie, że klient będzie ich potrzebował. Tak więc w powyższym przykładzie serwer będzie wypychał CSS, JavaScript (wspólny język skryptowy Co to jest JavaScript i jak to działa? Co to jest JavaScript i jak to działa? Co to jest Javascript? Jest to język programowania używany do ulepszania stron internetowych. Obejmuje dynamicznie aktualizowane strony internetowe, interfejsy użytkownika itp. Zanurzmy się w tym, o co chodzi w Javascript. Na stronach internetowych) oraz obrazy w przeglądarce, aby szybciej wyświetlić stronę.

Zasadniczo wypychanie serwera pozwala serwerowi wysyłać wiele odpowiedzi na jedno żądanie klienta.

Chociaż ręcznie, jest to efekt, który obecnie uzyskujemy poprzez wstawienie CSS lub JS do naszych dokumentów HTML - wypychamy wbudowany zasób do klienta, nie czekając na żądanie klienta.

Jest to duży krok od obecnego standardu HTTP ścisłego przepływu pracy typu „jeden do jednego”.

Ograniczenia HTTP / 2

SPDY miał nieco bardziej rygorystyczne zasady bezpieczeństwa i wymagał szyfrowania SSL dla wszystkich połączeń. HTTPS / 2 nie wymaga szyfrowania, ale wiele usług nie obsługuje HTTP / 2 bez SSL.

Wszystkie główne przeglądarki obsługują protokół HTTP / 2, ale żadna z nich nie obsługuje go bez szyfrowania. Witryna CanIUs ma świetny przegląd tabel na temat bieżącej obsługi przeglądarki HTTP / 2, jak pokazano powyżej.

Wsteczna kompatybilność i tłumaczenia między HTTP / 1.1 i HTTP / 2 spowolnią szybkość ładowania strony.

Nie ma prawdziwego powodu, dla którego szyfrowanie nie powinno być domyślną ani obowiązkową konfiguracją. Jeśli masz już certyfikat SSL w swojej witrynie, możesz poprawić bezpieczeństwo swojej witryny HTTPS, włączając HSTS.

HTTP / 2 to kolejna wielka rzecz?

Protokół HTTP / 2 został zaproponowany jako standard w połowie 2015 r., A większość przeglądarek dodała do niego obsługę do końca tego roku. HTTP / 2 już wpływa na sposób działania Internetu oraz na to, jak aplikacje i serwery komunikują się ze sobą.

Nie ma wymagań, aby wymusić użycie HTTP / 2, ale do tej pory ma on tylko zalety i nie ma wad. Jest to również dość niewielka zmiana z perspektywy użytkownika, której ludzie tak naprawdę nie zauważą.

Według W3Tech 31,7% z 10 milionów najlepszych stron internetowych obsługuje obecnie HTTP / 2. Najszybszym sposobem dla większości z was, aby włączyć HTTP / 2 na swojej stronie, jest skorzystanie z CDN Cloudflare.

Kolejny proponowany standard (HTTP / 3) jest już w toku i jest oparty na QUIC, innym eksperymentalnym projekcie Google. W październiku tego roku IETF'S HTTP-WG i grupa robocza QUIC oficjalnie poprosiły QUIC, aby stał się nowym światowym standardem i zmienił jego nazwę na HTTP / 3.

? .




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.