Back-Forward Cache : cycle de vie, confidentialité et cohérence
Comprenez comment le navigateur restaure les pages avec BFCache, quels événements surveiller et comment protéger les données privées sans casser la navigation.
BotBrowser Team
Vous voulez la documentation structurée pour Plateforme ?
Cet article fait partie de la bibliothèque éditoriale. Pour les étapes de configuration, la référence et les mises à jour continues, passez directement à la section docs.
Le back-forward cache (BFCache) restaure presque instantanément une page lorsque l’utilisateur revient en arrière ou en avant. Le document peut conserver son DOM, le tas JavaScript, les formulaires et l’état mémoire de l’application : ce n’est pas un rechargement. La spécification HTML WHATWG décrit la traversée de l’historique et le guide BFCache de MDN présente l’éligibilité ainsi que pageshow et pagehide. La spécification Page Visibility du W3C définit le signal de visibilité utilisé avec BFCache ; la visibilité est un indice de cycle de vie, pas la preuve d’une mise en cache. BotBrowser permet des tests autorisés dans des BrowserContexts isolés, mais ne force pas le BFCache et ne décide ni de l’éviction ni des données conservées par le site.
TL;DR
- Le BFCache restaure un document sans rechargement normal ;
pageshowetpagehidesont les points d’observation. - Visibilité, restauration, authentification et fraîcheur serveur sont des contrôles distincts.
- BotBrowser répète un scénario autorisé, mais ne force pas l’éligibilité et ne garantit pas la restauration.
Sommaire
- Concevoir pour le cycle de vie
- La confidentialité est une frontière d’état
- Cohérence après restauration
- Le rôle limité de BotBrowser
- Conclusion
Concevoir pour le cycle de vie
Lorsqu’un document est mis en cache, pagehide peut indiquer event.persisted === true; au retour, pageshow peut fournir le même signal. Ce sont les points d’observation portables : load ne s’exécute pas à nouveau et un composant peut garder son ancienne mémoire. Mettez en pause les minuteurs, sondes, médias et observateurs coûteux, puis reprenez-les dans pageshow en revérifiant les données modifiées. Un nettoyage idempotent reste nécessaire, car la page peut être évincée ou fermée.
La confidentialité est une frontière d’état
Le BFCache est un état du processus du navigateur, pas une session serveur. Une page restaurée peut encore afficher un tableau de bord privé, un brouillon ou un formulaire. Dans pageshow, vérifiez l’authentification et le compte avant d’afficher des données sensibles. Lors de la déconnexion, révoquez la session serveur puis nettoyez la mémoire cliente. Cache-Control: no-store peut empêcher la mise en cache d’un document, mais ce n’est pas un effaceur universel. Un autre origine intégrée possède son propre stockage.
Cohérence après restauration
Ne considérez pas le document restauré comme actuel. Comparez dans pageshow une version, un compte ou un jeton de fraîcheur et ne revalidez que ce qui peut avoir changé. Fermez l’ancien WebSocket avant d’en ouvrir un autre ; les service workers et shared workers ont des cycles séparés. Testez retour/avance, changement de compte dans un autre onglet, session révoquée, donnée modifiée et navigation sans BFCache. La restauration ne doit ni renvoyer un formulaire ni exposer le compte précédent.
Le rôle limité de BotBrowser
BotBrowser fournit des BrowserContexts isolés et des profils reproductibles pour des tests autorisés de cycle de vie et de confidentialité. Deux contextes permettent d’observer pageshow/pagehide et de révoquer une session synthétique sans partager cookies ni stockage. BotBrowser ne contourne pas les politiques d’origine, ne garantit pas l’éligibilité BFCache, ne résout pas les défis interactifs, n’invalide pas une session serveur et ne supprime pas les données hors contexte. Notez navigateur, système, proxy et politique du site.
Liste de contrôle
- Observez
pagehideetpageshow;persistedest un signal, pas une garantie. - Suspendez et reprenez minuteurs, médias, sockets et observateurs sans doublon.
- Revérifiez compte, authentification et fraîcheur avant l’état privé.
- Testez révocation, changement de compte, données modifiées et navigation sans BFCache.
- Distinguez restauration, déconnexion serveur et suppression de données.
Le BFCache accélère l’historique, mais chaque restauration est un nouveau point de vérification pour la confidentialité et la cohérence.
Lectures associées
- Historique et confidentialité de la Navigation API
- Cycle de vie et confidentialité du cache des service workers
- Effacement des données de site et frontières de compte
Conclusion
Traitez le document restauré comme un nouveau point de vérification : mettez le travail en pause, revérifiez l’autorisation et la fraîcheur, et séparez les observations du navigateur des décisions du serveur.
Sources
Articles Connexes
Faites passer BotBrowser de la recherche à la production
Utilisez ces guides pour comprendre le modèle, puis passez à la validation multi-plateforme, aux contextes isolés et au déploiement navigateur prêt pour l'échelle.