przyspieszanie największego wyrenderowania treści (LCP) dzięki wstępnemu wczytywaniu na wielu stronach;
Począwszy od wersji 103 Chrome na Androida, będziemy stopniowo wdrażać prywatną funkcję predykcji za pomocą serwera proxy, aby przyspieszyć nawigację z wyszukiwarki Google i innych uczestniczących witryn o średnio 30%. Ta funkcja prywatnego pobierania z wyprzedzeniem umożliwia pobieranie z wyprzedzeniem treści z różnych źródeł bez ujawniania informacji o użytkowniku stronie docelowej, dopóki użytkownik nie przejdzie do tej strony.
Czytaj dalej, aby dowiedzieć się, jak działa ta funkcja, jak może ona znacznie poprawić największy czas wyrenderowania treści (LCP) Twoich witryn oraz jak witryny odsyłające mogą pomagać użytkownikom w realizacji ich celów poprzez przyspieszanie nawigacji między witrynami.
Jak działa prywatny serwer proxy do pobierania w tle
Bezpieczny kanał komunikacji
Ta funkcja korzysta z serwera proxy CONNECT
, aby nawiązać bezpieczny kanał komunikacji między Chrome a serwerem, na którym znajdują się treści do pobrania z wyprzedzeniem. Ten bezpieczny kanał komunikacji uniemożliwia serwerowi proxy sprawdzanie przesyłanych danych. Pamiętaj, że chociaż prywatny serwer proxy do pobierania wstępnego musi widzieć nazwę hosta, aby ustanowić bezpieczny kanał komunikacji, nie widzi pełnych adresów URL ani samych zasobów.

CONNECT
zapobiega wyciekowi informacji o użytkownikach.Dodatkowo, ponieważ bezpieczny kanał komunikacji jest szyfrowany w pełni, pośrednicy nie mogą obserwować nazw hostów ani treści wstępnie wczytanych witryn. W tym przypadku serwer docelowy nie widzi adresu IP użytkownika.
Zapobieganie identyfikacji użytkowników
Poza aspektami sieciowymi, o których wspomnieliśmy wcześniej, musimy też uniemożliwić serwerom identyfikowanie użytkownika w czasie pobierania w poprzednim planie za pomocą informacji wcześniej zapisanych na jego urządzeniu. W tym celu Chrome ogranicza obecnie korzystanie z prywatnego serwera wyprzedzającego do witryn, w których użytkownik nie ma plików cookie ani innego stanu lokalnego. Oto ograniczenia dotyczące żądań wstępnego pobierania za pomocą prywatnego serwera proxy:
- Pliki cookie: żądania pobierania w tle nie mogą zawierać plików cookie.
- Jeśli istnieje plik cookie dla danego zasobu, Chrome wykona pobieranie bez uwierzytelniania, ale nie użyje odpowiedzi (patrz sekcja Pamięć podręczna).
- Odpowiedzi na żądanie wstępne mogą zawierać pliki cookie, ale zostaną one zapisane tylko wtedy, gdy użytkownik przejdzie na wstępnie wczytaną stronę.
- Odcisk palca: dostosowano również inne powierzchnie, które mogłyby służyć do pobierania odcisków palców. Na przykład nagłówek
User-Agent
wysyłany przez serwer proxy do pobierania w poprzednim planie zawiera tylko ograniczoną ilość informacji.
Mamy nadzieję, że w przyszłości będziemy mogli rozszerzyć prywatne przekierowywanie predykcyjne na linki z plikami cookie lub stanem lokalnym, zachowując te same cechy dotyczące prywatności. Więcej informacji znajdziesz w sekcji Co dalej.
Pamięć podręczna
Chrome będzie pobierać zasoby w ramach wstępnego pobierania nawet wtedy, gdy są one już w pamięci podręcznej, ale nie będą zawierać nagłówków warunkowych, takich jak ETag
czy If-Modified-Since
(zawierają one wartości ustawione przez serwer, które można wykorzystać do śledzenia nawet bez plików cookie). Ta operacja jest wykonywana, aby zapobiec wyciekowi stanu pamięci podręcznej klienta do witryny z zaciągniętymi wcześniej zasobami. Ponadto Chrome zapisuje w pamięci podręcznej zasob załadowany z zapasem tylko wtedy, gdy użytkownik przejdzie do witryny, która została załadowana z zapasem.
Pierwsze kroki z prywatnym serwerem proxy do pobierania wstępującego
Właściciele witryn
Właściciele witryn nie muszą nic robić, aby zacząć korzystać z prywatnego serwera proxy pobierania z wyprzedzeniem w przypadku linków, w których przypadku użytkownik nie ma plików cookie ani stanu lokalnego. Z naszych eksperymentów wynika, że jest to ważna możliwość dla większości witryn. Poza tym zawsze warto zaimponować nowym użytkownikom lub tym, którzy rzadko odwiedzają Twoją witrynę, błyskawicznym wczytywaniem. Z dotychczasowych eksperymentów wynika, że w przypadku wcześniej pobieranych nawigacji udało nam się przyspieszyć Largest Contentful Paint o 20–30%.
Mamy nadzieję, że w przyszłości udostępnimy tę funkcję w przypadku linków z plikami cookie lub stanem lokalnym, zachowując przy tym jej cechy związane z prywatnością. Problem z plikami cookie polega na tym, że mogą one być wykorzystywane do zmiany wrażeń użytkowników w trudny do przewidzenia sposób. Właściciele witryn będą musieli włączyć tę funkcję lub dostosować swoje witryny, aby korzystać z prywatnego prefetch proxy w przypadku linków z plikami cookie.
W konkretnym przypadku, gdy żądania wstępnego pobierania pozostaną bez danych uwierzytelniających, strona internetowa uzyska dostęp do plików cookie i innych danych lokalnych, gdy użytkownik na nią wejdzie. Deweloperzy mogliby wykorzystać tę funkcję, aby przywrócić personalizację i zmiany na podstawie plików cookie lub stanu lokalnego. Deweloperzy mogą też chcieć zadeklarować, że niektóre zasoby są w pełni odpowiednie do wstępnego pobierania i używania bez plików cookie (czyli są to zasoby, które nie zależą od żadnych plików cookie). Aby dowiedzieć się więcej i poinformować nas o swoich planach, zapoznaj się z sekcją Co dalej.
Treści lub usługi zależne od lokalizacji
Jeśli Twoja witryna zachowuje się inaczej (np. wyświetla inne treści lub ogranicza dostęp) na różnych rynkach w zależności od adresu IP użytkownika, możesz się zastanawiać, jak obsługiwać żądania wstępnego pobierania w przypadku prywatnego serwera proxy. Pamiętaj, że prywatny serwer proxy do pobierania w poprzedniości korzysta z kilku serwerów rozmieszczonych na całym świecie, a adres IP tego serwera proxy będzie wskazywać na kraj, z którego użytkownik zainicjował pobieranie w poprzedniości.
Mając to na uwadze, zalecamy:
- Identyfikowanie żądań wstępnego pobierania z Private Prefetch Proxy na podstawie obecności nagłówka HTTP
Sec-Purpose: Prefetch; anonymous-client-ip
. - Wyszukaj lokalizację geograficzną prywatnego serwera proxy pobierania z wyprzedzeniem, który wysłał żądanie za pomocą adresu IP. Aktualną listę obsługiwanych regionów i odpowiednich adresów IP znajdziesz w tym artykule.
- wyświetlać zasoby zgodnie z rynkiem powiązanym z tą konkretną lokalizacją geograficzną.
Sterowanie ruchem
Z dotychczasowych eksperymentów wiemy, że ta funkcja zwykle powoduje mniej niż 2% dodatkowych żądań dotyczących głównych zasobów (np. dokumentów HTML). Jeśli jednak jesteś osobą ostrożną, możesz użyć pola ułamka w sekcji „Porada dotycząca ruchu”, aby kontrolować, ile ruchu prywatny serwer proxy do pobierania w tle powinien przepuścić. Możesz zacząć od małej wartości, np. 0,3 (czyli 30%), i stopniowo zwiększać ją do 1,0 (czyli 100%), dodając do pliku /.well-known/traffic-advice
następujący ciąg JSON, który musi być wyświetlany z typem MIME application/trafficadvice+json
:
[{
"user_agent": "prefetch-proxy",
"fraction": 0.3
}]
Pole fraction
to liczba zmiennoprzecinkowa z zakresu od 0,0 (brak wstępnego pobierania) do 1,0 (100% żądań wstępnego pobierania jest realizowanych).
Możesz też całkowicie wyłączyć tę funkcję za pomocą tej konfiguracji:
[{
"user_agent": "prefetch-proxy",
"disallow": true
}]
Plik /.well-known/traffic-advice
jest pobierany przez serwer proxy, a nie przez klienta, i zapisuje się w pamięci podręcznej na serwerze proxy zgodnie ze zwykłą semantyką pamięci podręcznej HTTP. Aby zwiększyć elastyczność (np. w przypadku nagłego wzrostu liczby połączeń), możesz tymczasowo odrzucać żądania wstępnego pobierania (Sec-Purpose: prefetch;anonymous-client-ip
) za pomocą kodu stanu 503 i ustawienia nagłówka Cache-Control: no-store
w odpowiedzi. Możesz też dodać nagłówek Retry-After
, aby określić Chrome, jak długo ma czekać przed ponownym wysłaniem żądań w ramach wstępnego pobierania.
Właściciele witryn odsyłających
Jeśli prowadzisz witrynę z dużą liczbą linków do innych witryn, możesz skorzystać z funkcji prywatnego serwera proxy do pobierania wstępnego, aby przyspieszyć nawigację między domenami. Aby Chrome wiedział, które strony powinny być pobierane z poziomu pamięci podręcznej za pomocą prywatnego serwera pobierania z poziomu pamięci podręcznej, musisz dodać do stron reguły spekulacji. Oto prosty przykład:
<script type="speculationrules">
{
"prefetch": [
"source": "list",
"urls": ["https://example.com/index.html"],
"requires": ["anonymous-client-ip-when-cross-origin"]
]
}
</script>
Co dalej?
To dopiero pierwszy krok. Mamy nadzieję, że uda nam się rozwinąć i ulepszyć tę funkcję na podstawie zainteresowania społeczności i opinii. Chętnie poznamy Twoją opinię na temat tego, jak rozszerzyć tę funkcję o linki z plikami cookie i stanem lokalnym w sposób, który zminimalizuje problemy deweloperów, lub jak sprawić, aby ta funkcja była bardziej przydatna dla witryn odsyłających.
Więcej informacji
- Pobieranie z wyprzedzeniem dla administratorów sieci.
- Informacje o korkach
- Interesujące pomysły dotyczące wskazówek dotyczących ruchu
- Repozytorium github WICG dotyczące spekulacji nawigacyjnych
- Blog Chromium, w którym po raz pierwszy przedstawiono koncepcję prywatnego serwera proxy wstępnie wczytującego.