Pour améliorer les temps de chargement des pages pour nos utilisateurs, Chrome peut prérécupérer les liens sur la page de résultats de recherche Google et sur d'autres sites Web participants avant que l'utilisateur ne clique dessus.
Cette fonctionnalité repose sur un proxy CONNECT
qui masque l'adresse IP de l'utilisateur au site Web qui doit être préchargé. Cela permet de masquer l'établissement de la connexion aux administrateurs réseau.
En même temps, nous reconnaissons que les administrateurs réseau peuvent avoir besoin de filtrer du contenu. Nous avons donc conçu un mécanisme permettant aux administrateurs réseau de continuer à le faire si l'utilisateur clique sur un lien préchargé.
Filtrage du contenu
Pour préserver la confidentialité de l'utilisateur, Chrome n'effectue aucune résolution DNS visible lors de la prélecture des liens. Si l'utilisateur accède à un lien préchargé, les ressources de la page sont récupérées à partir du cache local sans effectuer de recherche DNS visible. Un effet secondaire est que le filtrage de contenu peut ne pas fonctionner comme prévu lorsque l'utilisateur accède à un lien préchargé.
Pour permettre aux administrateurs réseau de filtrer le contenu de ces navigations préchargées, nous avons conçu un mécanisme de signalisation qui indique à Chrome d'effectuer une résolution DNS lorsque l'utilisateur clique sur un lien préchargé. Cette recherche DNS se produira en même temps et de la même manière que si la prélecture n'avait pas eu lieu, ce qui permettra aux administrateurs de filtrer le contenu. Chrome mettra en pause le chargement des ressources préchargées à partir du cache jusqu'à ce que cette deuxième résolution DNS réussisse. Si la prélecture échoue, Chrome n'utilisera pas les ressources préchargées et chargera la page de manière habituelle. Notez que cela entraîne une perte de performances pour l'utilisateur, car Chrome doit attendre la fin de la recherche DNS.
Détails du mécanisme de signalisation
Pour les utilisateurs qui n'ont pas désactivé le préchargement des pages, Chrome effectue une recherche DNS asynchrone pour dns-tunnel-check.googlezip.net
au démarrage de Chrome ou lorsqu'une modification de l'interface réseau se produit.
Voici les résultats possibles pour la vérification dns-tunnel-check.googlezip.net
:
- Si la réponse est
NXDOMAIN
ouSERVFAIL
, ou si un code de réponseNOERROR
est renvoyé, mais ne contient aucun enregistrementA
niAAAA
, Chrome comprendra que les administrateurs réseau ont besoin de visibilité sur les navigations vers les pages préchargées (voir Mode prévol). - Si la réponse est une autre valeur, Chrome utilisera directement les ressources préchargées et n'effectuera aucune résolution DNS supplémentaire lorsque l'utilisateur accèdera à la page préchargée.
Le résultat de cette vérification sera valable jusqu'à ce que Chrome soit redémarré ou que l'interface réseau change, ce qui déclenchera une nouvelle recherche DNS pour dns-tunnel-check.googlezip.net
, avec un résultat potentiellement différent.
Mode Prévol
Dans ce mode, avant d'accéder à une page préchargée via le proxy de préchargement privé, Chrome effectue une recherche DNS pour le domaine concerné et attend la réponse :
- Si la réponse se compose d'un ensemble non vide d'adresses IP, Chrome poursuit la navigation en utilisant les ressources préchargées.
- Si la réponse est
REFUSED
(recommandé) ouNXDOMAIN
, Chrome ne poursuit pas la navigation et affiche la page d'erreur DNS correspondante.