Prywatny serwer proxy pobierania z wyprzedzeniem w Chrome dla administratorów sieci

Aby skrócić czas wczytywania stron, z którego korzystają nasi użytkownicy, Chrome czasami pobiera z wyprzedzeniem linki ze strony wyników wyszukiwania Google oraz innych stron biorących udział w programie, zanim użytkownik je kliknie. Ta funkcja została szczegółowo omówiona w tym artykule z punktu widzenia kwestii technicznych.

Ta funkcja korzysta z serwera proxy CONNECT, który ukrywa adres IP użytkownika przed witryną, która ma być wstępnie pobrana. To z kolei powoduje usunięcie połączenia z widoku administratorów sieci.

Jednocześnie zdajemy sobie sprawę, że administratorzy sieci muszą filtrować treści. Dlatego opracowaliśmy mechanizm, dzięki któremu administratorzy sieci mogą to robić, gdy użytkownik kliknie pobrany z wyprzedzeniem link.

Filtrowanie treści

Aby chronić prywatność użytkownika, podczas pobierania linków z wyprzedzeniem Chrome nie przeprowadza żadnych dostępnych do obserwacji wyszukiwań DNS. Jeśli użytkownik przejdzie do pobranego z wyprzedzeniem linku, zasoby strony zostaną pobrane z lokalnej pamięci podręcznej bez wykonania obserwowalnego wyszukiwania DNS. Efektem ubocznym jest to, że filtrowanie treści może nie działać zgodnie z oczekiwaniami, gdy użytkownik przejdzie do wstępnie pobranego linku.

Aby umożliwić administratorom sieci filtrowanie treści na podstawie wstępnie pobranych elementów nawigacyjnych, zaprojektowaliśmy mechanizm sygnalizujący, który informuje Chrome, że ma przeprowadzić wyszukiwanie DNS, gdy użytkownik kliknie wcześniej pobrany link. Wyszukiwanie DNS odbędzie się w tym samym czasie i w taki sam sposób, jak gdyby pobieranie z wyprzedzeniem się nie odbyło, dając administratorom taką samą możliwość filtrowania treści. Chrome wstrzyma wczytywanie zasobów pobranych z wyprzedzeniem z pamięci podręcznej do czasu drugiego wyszukiwania DNS. Jeśli to nie pomoże, Chrome nie użyje wstępnie pobranych zasobów i zamiast tego wczyta stronę w zwykły sposób. Pamiętaj, że wiąże się to z ograniczeniem wydajności, ponieważ Chrome musi czekać na zakończenie wyszukiwania DNS.

Szczegóły mechanizmu sygnalizowania

W przypadku użytkowników, którzy nie wyłączyli wstępnego wczytywania stron, Chrome asynchronicznie sprawdzi DNS dns-tunnel-check.googlezip.net po uruchomieniu Chrome lub po zmianie interfejsu sieci.

Oto możliwe wyniki kontroli dns-tunnel-check.googlezip.net:

  • Jeśli odpowiedź to NXDOMAIN lub SERVFAIL albo zostanie zwrócony kod odpowiedzi NOERROR, ale nie zawiera rekordów A ani AAAA, Chrome zrozumie, że administratorzy sieci potrzebują wglądu w elementy nawigacyjne prowadzące do stron pobranych z wyprzedzeniem (zobacz Tryb procesu wstępnego).
  • Jeśli odpowiedź zawiera jakiekolwiek inne wartości, Chrome użyje bezpośrednio pobranych z wyprzedzeniem zasobów i nie będzie wykonywać żadnych dodatkowych wyszukiwań DNS, gdy użytkownik przejdzie na stronę z wyprzedzeniem.

Wynik tej kontroli będzie możliwy do momentu ponownego uruchomienia Chrome lub do zmiany interfejsu sieci. Spowoduje to uruchomienie nowego wyszukiwania DNS dla domeny dns-tunnel-check.googlezip.net o potencjalnie innym wyniku.

Tryb procesu wstępnego

W tym trybie przed przejściem na stronę pobraną z wyprzedzeniem przez prywatny serwer proxy pobierania z wyprzedzeniem Chrome przeprowadzi wyszukiwanie DNS odpowiedniej domeny i zaczeka na odpowiedź:

  • Jeśli odpowiedź zawiera niepusty zestaw adresów IP, Chrome będzie kontynuować nawigację, korzystając z zasobów pobranych z wyprzedzeniem.
  • Jeśli odpowiedź to REFUSED (preferowana) lub NXDOMAIN, Chrome nie kontynuuje nawigacji i zamiast tego wyświetli odpowiednią stronę błędu DNS.