Zgodnie z poprzednim ogłoszeniem obsługa push przez serwer HTTP/2 zostanie domyślnie wyłączona w Chrome 106 i innych przeglądarkach opartych na Chromium w kolejnych wersjach.
Dlaczego usuwacie?
Protokół HTTP/2 Server Push pozwala witrynom aktywnie wysyłać zasoby potrzebne strony, zamiast czekać na ich żądanie. Był to jednak problem, o czym pisze wcześniej Jake Archibald, a korzyści związane z wydajnością często były trudne do osiągnięcia. Dlatego nie była często wykorzystywana – tylko 1, 25% witryn HTTP/2 korzystało z tej funkcji.
Analiza wykorzystania wypchnięcia serwera HTTP/2 daje różne wyniki (Chrome, Akamai), bez wyraźnego wzrostu wydajności netto, a w wielu przypadkach obniżenia wydajności.
Funkcja push nie była zaimplementowana na wielu serwerach i klientach HTTP/3, mimo że została uwzględniona w specyfikacji. W większości stron internetowych, które korzystają z nowszego protokołu HTTP/3, funkcja push została już wycofana. Po ponownym uruchomieniu tej analizy zauważyliśmy, że 1,25% obsługi HTTP/2 w witrynach spadło do 0,7%.
Alternatywy dla push na serwerze HTTP/2
103 Wczesne wskazówki to znacznie mniej podatna na błędy alternatywa, która ma takie same wady jak pliki push, i znacznie mniej wad. Strategia „103 wczesne wskazówki” nie przekazuje do przeglądarki zasobów, tylko wysyła do przeglądarki tylko wskazówki dotyczące tych zasobów, których żądanie może natychmiast skorzystać. Dzięki temu przeglądarka może decydować, czy będzie potrzebować tych zasobów – na przykład czy ma je już w pamięci podręcznej HTTP.
Wstępne ładowanie zasobów krytycznych to kolejne rozwiązanie, które umożliwia stronie i przeglądarce współpracę w celu wyprzedzenia najważniejszych zasobów na wczesnym etapie ładowania. Chociaż wymaga to wysłania samej strony jako pierwszej, więc działanie to nie jest tak szybkie jak w przypadku push z serwera ani wczesnej podpowiedzi, ale dodatkową zaletą takiego rozwiązania jest to, że nie opóźnia on zasobu strony o znaczeniu krytycznym, co może się zdarzyć w przypadku obu tych rozwiązań.
Podsumowanie
Przeglądarka musi mieć możliwość wypróbowania różnych funkcji i ich odrzucania, gdy nie są używane. Choć potencjał funkcji push brzmiał wspaniale, w rzeczywistości korzystanie z niego było bardziej problematyczne, niż się spodziewaliśmy. Jednak dzięki Pushowi wiele się dowiedzieliśmy, gdy projektowaliśmy 103 wczesne wskazówki. Pora dokończyć postępy i zrezygnować z wypychania.
Powiązane artykuły
- Wszystkie wycofywania i usunięcia w Chromium
- Wpis ChromeStatus: Usuń push HTTP/2
- Intencja usunięcia: push z serwera HTTP/2 i gQUIC
- Problem w Chromium: domyślnie wyłącz powiadomienia push HTTP/2
Podziękowania
Baner powitalny autorstwa Scotta Rodgersona w Unsplash