Zgodnie z poprzednim ogłoszeniem w Chrome 106 i innych przeglądarkach opartych na Chromium obsługa przesyłania danych przez serwer HTTP/2 będzie domyślnie wyłączona w kolejnych wersjach.
Dlaczego to zostało usunięte?
Protokół HTTP/2 Server Push umożliwiał witrynom proaktywne wysyłanie zasobów potrzebnych przez stronę zamiast czekania na żądanie. Było to jednak problematyczne, jak opisuje Jake Archibald w poprzednim artykule, a korzyści w zakresie wydajności były często trudne do osiągnięcia. W rezultacie nie była ona używana zbyt często w przypadku zaledwie 1, 25% witryn HTTP/2 korzystających z tej funkcji.
Analiza korzystania z komunikatów push z serwera HTTP/2 przynosi mieszane wyniki (Chrome, Akamai). Nie ma wyraźnego wzrostu wydajności, a w wielu przypadkach następuje jej spadek.
Komunikaty push nie zostały zaimplementowane na wielu serwerach i klientach HTTP/3, mimo że były uwzględnione w specyfikacji. W przypadku większości stron internetowych korzystających z nowszego protokołu HTTP/3 technologia push została już wycofana. Gdy ponownie przeprowadziliśmy tę analizę, okazało się, że odsetek witryn obsługujących HTTP/2 zmniejszył się z 1,25% do 0,7%.
Alternatywy dla komunikatów push z serwera HTTP/2
103 Early Hints to znacznie mniej podatna na błędy alternatywa, która ma wiele zalet pusha, a mniej wad. Zamiast przesyłać zasoby, serwer 103 Early Hints wysyła do przeglądarki tylko wskazówki dotyczące zasobów, które warto od razu poprosić. To pozwala przeglądarce decydować, czy potrzebuje tych zasobów, czy nie – na przykład jeśli są one już dostępne w pamięci podręcznej HTTP.
Wstępne wczytywanie kluczowych zasobów to inna alternatywa, która umożliwia stronie i przeglądarce współpracę, aby z wyprzedzeniem wczytywać kluczowe zasoby na wczesnym etapie wczytywania. Wymaga to jednak wysłania najpierw samej strony, więc nie jest to tak szybkie jak w przypadku metody Server Push czy wczesnych wskazówek. Ma to jednak dodatkową zaletę, ponieważ nie powoduje opóźnienia tego ważnego zasobu strony, co może się zdarzyć w przypadku obu tych rozwiązań.
Podsumowanie
Internet musi umożliwiać wypróbowanie różnych rzeczy i odrzucanie ich, gdy nie są używane. Chociaż potencjał powiadomień push wydawał się świetny, w praktyce jego używanie było bardziej problematyczne, niż zakładano. Wiele się jednak nauczyliśmy z Push, co wykorzystaliśmy w przypadku projektu 103 Early Hints. Nadszedł czas, aby dokończyć postępy i odejść od trybu push.
Zasoby
- Wszystkie wycofane i usunięte funkcje w Chromium
- Wpis ChromeStatus: Usuwanie push HTTP/2
- Intencja usunięcia: HTTP/2 i gQUIC server push
- Problem z Chromium: Domyślnie wyłącz przekazywanie HTTP/2