Najlepsze pytania
Chronologia
Czat
Perspektywa

HTTP/2 Server Push

Z Wikipedii, wolnej encyklopedii

Remove ads

HTTP/2 Server Push – opcjonalny mechanizm protokołu HTTP/2 pozwalający jego serwerowi na wysyłanie zasobów do klienta, zanim ten zażąda wysyłanych treści[1]. Założeniem mechanizmu było zmniejszenie latencji dostarczania danych niezbędnych do ładowania stron internetowych.

Opis działania

Podsumowanie
Perspektywa

W tradycyjnym dialogu HTTP klient ładujący stronę internetową składającą się z trzech zasobów: index.html, styles.css i script.js, najpierw wyśle żądanie o zasób HTML. W trakcie jego przetwarzania wykryje odniesienia do arkusza styli oraz skryptu. Dopiero w tym momencie przeglądarka może wysłać zapytania o brakujące zasoby.

W powyższym dialogu serwer posiadający implementację push może przejąć inicjatywę, o ile posiada reguły, które pozwolą mu zdecydować, że po wysłaniu pliku HTML powinien wysłać do klienta arkusz styli oraz plik skryptu. Dzięki temu, gdy przeglądarka zakończy przetwarzanie index.html, arkusz styli oraz skrypt będą już dostępne lub w trakcie odbierania. Mechanizm może zmniejszyć narzut czasu spowodowany kolejkowaniem żądań o poszczególne elementy strony[1]. Do poprawnego działania wymaga on jednak, aby serwer znał zależności pomiędzy poszczególnymi składowymi stron.

Jednocześnie wypychane zasoby mogą być z różnych względów zbędne klientom, powodując niepotrzebne obciążenie połączenia czy rachunku za ilość danych. Z racji, że serwery nie znają zawartości cache przeglądarek, mogą wypychać zasoby już posiadane przez klienta, czy wręcz mu zbędne jak arkusze styli, ilustracje czy skrypty np. w przypadku przeglądarek trybu tekstowego lub takich, w których użytkownik wyłączył te funkcje[2].

Remove ads

Stan implementacji

Mechanizm pojawił się oryginalnie w zaprezentowanym w 2009 roku przez firmę Google eksperymentalnym protokole SPDY[3][4], który w 2012 stał się podstawą pierwszych wersji HTTP/2[5].

Wydawcy najpopularniejszych przeglądarek wdrożyli push razem z implementacją protokołu HTTP/2 jeszcze w 2015[6]. W najpopularniejszych serwerach www pojawiał się sukcesywnie (Apache 2.4.17 z października 2015 wraz z modułem mod_http2[7], IIS w wersji 2016 TP[8], nginx od wersji 1.13.9 z lutego 2018[9]).

Jednak w listopadzie 2020, motywując to znikomym wykorzystaniem w monitorowanym przez siebie ruchu sieciowym (poprawnie przepchnięte zasoby pojawiły się jedynie w 0,03% połączeń), Google ogłosił zamiar usunięcia standardowego mechanizmu z implementacji protokołu HTTP/2 przeglądarki Chromium, na której bazuje własna przeglądarka Google oraz szereg innych wydawców[10]. Push został wyłączony w wydanej w sierpniu 2022 wersji 106 Google Chrome[11].

Remove ads

Przypisy

Linki zewnętrzne

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads