Comment fonctionnent les cookies ?
Sommaire
- Qu’est-ce qu’un cookie ?
- Quelle est la finalité des cookies ?
- Comment déposer un cookie ?
- Quelles sont les différences entre cookies propriétaires (1st party) et cookies tiers (3rd party)
Conclusion et ressources pour aller plus loin
#1 Qu’est-ce qu’un cookie ?
Un cookie est un fichier texte stocké sur l’appareil de l’utilisateur (ordinateur, téléphone, tablette ou autre).
Les cookies sont des fichiers textes, ils ne sont donc pas exécutables. Il est important de préciser d’emblée que ce ne sont ni des logiciels espions ni des virus et qu’ils n’endommagent pas l’appareil de l’utilisateur.
Un cookie est constitué de plusieurs éléments :
- un nom, par exemple : mon_cookie
- une valeur textuelle, qui peut faire office d’ID unique
- un nom de domaine, par exemple : domain=monsite.com
- un chemin, par exemple : path=/
- une date d’expiration
On peut observer les cookies dans la console de son navigateur. Par exemple, dans la console Chrome, il faut aller dans l’onglet Application puis Cookies pour voir les cookies déposés depuis le site sur lequel on navigue actuellement.
Exemple d’un cookie criteo déposé depuis le site fnac.com
#2 Quelle est la finalité des cookies ?
Nous venons de voir qu’un cookie est un simple fichier texte stocké sur un appareil, mais à quoi sert-il au juste ?
Les cookies répondent à un besoin simple : conserver des informations sur l’utilisateur au cours de sa navigation.
Il faut comprendre que le web n’a pas de mémoire, on dit qu’il est stateless. Les échanges d’informations entre un navigateur et le serveur d’un site web, comme le contenu d’une page à afficher, se font via le protocole HTTP. Celui-ci ne retient pas les informations de l’échange précédent. Il n’y a pas d’information sauvegardée entre le chargement d’une page à une autre.
Par exemple, lors du chargement d’une page produit, mon navigateur envoie une requête HTTP au serveur et celui-ci envoie une réponse HTTP à mon navigateur avec le contenu de la page à afficher.
Si j’ajoute ensuite ce produit à mon panier et que je navigue sur la page panier, le serveur va envoyer le contenu de la page panier à afficher. Mais comment le serveur est-il au courant du produit que vous avez ajouté au panier ?
Vous l’aurez deviné : cette information est stockée dans un cookie. Ce cookie a été transmis dans la requête HTTP envoyée par mon navigateur vers le serveur du site web, qui a son tour envoie une réponse HTTP au navigateur avec le contenu de la page panier à afficher avec le bon produit.
Image de The state of tracking and data privacy
Les cookies sont donc un mécanisme pour stocker de l’information au cours de la navigation sur internet.
Il y a 3 raisons principales à l’utilisation de cookies :
- L’authentification. L’information stockée dans les cookies permet au serveur d’envoyer un contenu personnalisé à l’utilisateur, basé sur sa visite en cours ou ses visites précédentes. Cela peut être les derniers trajets recherchés sur un site de transport, le score d’un jeu vidéo, votre fil d’actualité Facebook ou encore retenir vos identifiants pour éviter de vous connecter à chaque page.
- La personnalisation. Cela sert à garder en mémoire les préférences de l’utilisateur concernant la langue, les paramètres d’affichages etc
- Le suivi de l’utilisateur (aussi appelé traçage ou tracking). Les cookies permettent de suivre le parcours d’un utilisateur sur un site web. Lorsque l’utilisateur veut charger une page, le navigateur envoie au serveur une requête avec un cookie attaché. Le serveur enregistre dans un répertoire, appelé log file ou fichier de journalisation, les URLs demandées, la date et l’heure de la demande et le cookie joint à la requête. En regardant le log file, on peut alors voir le parcours d’un utilisateur en observant les URLs demandées qui contiennent un même identifiant dans un cookie (comme userId = abcd1234) et leur chronologie.
L’utilisation de cookies pour tracker l’utilisateur sert notamment pour la mesure d’audience et la publicité ciblée.
A ce stade il est important de préciser plusieurs points :
Les cookies ne sont lisibles que par les sites (domaines) propriétaires. Le site propriétaire est celui indiqué dans l’élément domain du cookie. Par exemple, un cookie avec monsite.com pour nom de domaine ne sera accessible qu’au serveur de monsite.com. Les autres sites sur lesquels je navigue ensuite n’auront pas accès à l’information stockée dans ce cookie. Ce degré de sécurité est assurée par le navigateur.
Les cookies ne sont pas partagés entre navigateurs. Par exemple, si je visite un site monsite.com via Google Chrome et qu’un cookie est déposé pour indiquer que ma langue d’affichage est le français, cette information ne sera disponible que pour mes futures visites depuis Google Chrome. Si j’utilise ensuite Mozilla Firefox, ce navigateur n’aura pas accès au cookie de Google Chrome et me demandera ma préférence de langue pour ensuite déposer un cookie avec ma préférence, sur mon appareil mais accessible uniquement depuis Mozilla Firefox.
#3 Comment déposer un cookie ?
Il y a deux méthodes pour déposer un cookie sur un appareil :
- via le protocole HTTP
- via Javascript
Via le protocole HTTP
Lorsqu’un utilisateur visite un site web via un navigateur, le navigateur envoie une requête HTTP au serveur du site web et le serveur de ce site web envoie une réponse HTTP avec le contenu de la page à afficher et en même temps dépose un cookie que le navigateur va stocker sur l’appareil de l’utilisateur.
Quand l’utilisateur revient plus tard sur le même site, le navigateur envoie une requête HTTP au serveur du site web avec le cookie attaché. Le serveur peut ainsi identifier l’utilisateur et collecter de la donnée durant sa navigation sur le site.
Le cookie est ainsi envoyé à chaque requête envoyée par le navigateur et à chaque réponse retournée par le serveur.
Image de Ultimate Guide to HTTP Cookies
Via Javascript
Une autre méthode pour déposer un cookie est via Javascript. En effet, pendant que l’utilisateur navigue sur un site, le site peut déposer un cookie sur l’appareil de l’utilisateur en exécutant du code Javascript. La propriété Javascript document.cookie permet de lire un cookie et/ou de déposer un cookie
Par exemple, la commande suivante va déposer un cookie nommé userId avec la valeur abcd1234 sur le domaine monsite.com et accessible sur toutes les pages du site.
document.cookie = ‘userId=abcd1234;domain=monsite.com;path=/’;
#4 Les différences entre les cookies propriétaires (1st party) et cookies tiers (3rd party)
On entend souvent parler de cookies propriétaires, appelés aussi 1st party cookies, et de cookies tiers, ou 3rd parties cookies.
Il est important de préciser qu’il n’y a pas de différence technique entre les cookies propriétaires et les cookies tiers. La différence vient du contexte dans lequel les cookies sont regardés.
Si je visite monsite.com, le site va déposer un cookie sur mon appareil avec pour nom de domaine indiqué monsite.com. Pendant ma visite ce cookie est un cookie propriétaire, le serveur de monsite.com a accès à l’information du cookie car ils partagent le même nom de domaine.
Durant cette même visite, le site peut exécuter du Javascript pour faire appel à des ressources externes comme afficher un bandeau publicitaire sur le côté. L’image publicitaire provient par exemple d’un serveur mapublicité.com. Le site monsite.com va alors envoyer une requête via Javascript au serveur mapublicité.com qui va répondre avec l’image à afficher et également déposer un cookie avec pour nom de domaine mapublicité.com. C’est un cookie tiers car son nom de domaine est différent de celui du site que je visite actuellement.
Le rôle des cookies tiers dans la publicité en ligne
Pour bien comprendre l’importance des cookies tiers dans l’écosystème de la publicité en ligne, prenons un exemple concret.
Je navigue sur un site : premiersite.com. Sur ce site, une requête est envoyée à un autre site publicité.com pour charger une image de 1px par 1px, aussi appelé pixel. La réponse envoyée par cet autre site dépose un cookie tiers avec un identifiant.
Je navigue ensuite sur un deuxièmesite.com qui exécute la même requête vers publicité.com, cette fois avec le cookie préalablement déposé. Le site publicité.com est ainsi capable de savoir quelle page j’ai visité sur premiersite.com et deuxièmesite.com, le temps que j’y ai passé et d’autres informations.
Image de Tracking Protection : Introduction
Plus il y a de cookies tiers présents sur l’appareil d’un utilisateur, plus le profilage sera précis et plus la publicité sera ciblée. C’est pour ça qu’après avoir visité un site de vacances on va retrouver des publicités de vacances partout où on navigue.
Conclusion et ressources pour aller plus loin
Le sujet des cookies est assez complexe et lié au développement. J’ai essayé de synthétiser le fonctionnement des cookies dans cet article, en étant à la fois clair et sans trop rentrer dans la technique.
Voici quelques ressources pour aller plus loin :
- Un article de Simo Ahava sur les cookies et les mécanismes de protection
- Un article de Harshal Patil sur le fonctionnement des cookies pour les développeurs web
- Un article de Pierre Giraud sur les cookies en Javascript (en français)
- L’article Wikipedia sur les cookies, assez complet et à consulter en français et en anglais
Si jamais un profil plus technique passe par ici et qu’il s’avère que j’ai commis une erreur dans mon explication n’hésitez pas à me la signaler pour que je la rectifie 🙂
Merci à vous d’avoir lu cet article. Keep learning !
Les derniers articles
Sommaire Conclusion Tous les éléments d’une propriété GA4 #1 L’assistant de configuration Bien que ce soit le premier lien de la propriété, l’assistant de configuration n’est pas vraiment une rubrique […]