Le Web est conçu de sorte que chaque requête d'un navigateur Web vers un site Web soit distincte. Par conception, le Web n'a pas de "mémoire". Chaque fois que vous ouvrez une page Web, le site Web que vous consultez ne peut pas se souvenir des informations de votre dernière session. Cela permet de rendre le Web efficace et simple, car aucun mécanisme n'est nécessaire pour suivre les requêtes et les réponses.
Cependant, la nature oublieuse du Web pose également problème. Par exemple, comment un panier peut-il fonctionner si le site Web sur lequel vous vous trouvez ne peut pas se souvenir de ce que vous venez d'y mettre ?
Les cookies ont été inventés pour résoudre ce problème.
Les cookies donnent aux sites Web une mémoire
Lorsque vous consultez une page sur un site Web, votre navigateur Web envoie des requêtes au serveur du site Web pour les ressources incluses sur la page, telles que le code HTML, CSS, JavaScript ou les images.
Les navigateurs Web et les sites Web interagissent en suivant le protocole HTTP. Il s'agit d'un ensemble standardisé de règles pour la communication.
En réponse à une requête HTTP pour une ressource, le serveur du site Web peut inclure des informations supplémentaires appelées en-têtes avec la ressource elle-même. Un en-tête Set-Cookie
inclus avec une réponse HTTP indique à votre navigateur de stocker du texte: un nom et une valeur. C'est ce que l'on appelle un cookie. Par exemple, l'en-tête de réponse Set-Cookie:cat=tabby
indique à votre navigateur de stocker un cookie avec le nom "cat" et la valeur "tabby".
Une fois ce cookie défini, les requêtes ultérieures de votre navigateur vers le site Web incluront l'en-tête Cookie:cat=tabby
. Le serveur du site Web peut accéder au cookie à partir de l'en-tête de la requête et utiliser la valeur.
Fonctionnement des cookies: par étapes
Imaginez que vous visitiez le site Web cats.example
. Le site souhaite vous montrer une image aléatoire d'un chat et conserver une trace du chat qui s'affiche.
Les étapes suivantes expliquent comment procéder avec les cookies.
1. Le navigateur demande un fichier
Vous accédez à la page d'accueil du site Web cats.example
.
Votre navigateur demande les fichiers de la page, y compris cat.jpg
à partir de cats.example
.
2. Le serveur du site Web répond
Le serveur sur cats.example
répond avec le fichier image cat.jpg
.
Le serveur inclut un en-tête avec la réponse: Set-Cookie:cat=tabby
.
3. Le navigateur reçoit la réponse
Votre navigateur reçoit le fichier image et traite l'en-tête Set-Cookie:cat=tabby
qui l'accompagne.
Un cookie est stocké: nom cat
, valeur tabby
.
4. Le navigateur envoie des requêtes supplémentaires
Désormais, votre navigateur inclut l'en-tête Cookie:cat=tabby
avec les requêtes envoyées à cats.example
.
Lorsque le serveur Web cats.example
reçoit une requête, il peut traiter le cookie et faire ce qu'il veut avec cette valeur, par exemple s'assurer qu'il ne vous envoie pas à nouveau une image du même chat tigre.
Voici l'ensemble du processus des cookies:
- Votre navigateur envoie une requête à un site Web pour obtenir un fichier.
- Le serveur du site Web peut inclure un en-tête tel que
Set-Cookie:cat=tabby
avec le fichier qu'il envoie en réponse à la requête. - Lorsque votre navigateur reçoit la réponse, il stocke le cookie.
- À chaque requête ultérieure, votre navigateur envoie le cookie au serveur dans un en-tête
Cookie:cat=tabby
.
Accéder aux cookies avec JavaScript
L'exemple précédent utilise l'en-tête de réponse Set-Cookie
pour définir un cookie.
Vous pouvez également créer des cookies avec JavaScript à l'aide de la méthode document.cookie
.
Essayez la démonstration: javascript-cookie.glitch.me/.
En savoir plus: Document: propriété de cookie
Pourquoi avons-nous besoin de cookies ?
En 1994, l'ingénieur Lou Montulli travaillait pour la société de logiciels Netscape, qui a ensuite développé le navigateur Web le plus populaire du milieu des années 1990.
Pendant ce temps, une entreprise de télécommunications, MCI, tentait de créer une fonctionnalité de panier pour l'une des premières boutiques en ligne au monde. MCI a contacté Montulli pour lui expliquer son problème. Montulli a répondu en ajoutant une fonctionnalité à HTTP qui permettait à un site de stocker une petite quantité de texte, un nom et une valeur dans le navigateur Web d'un utilisateur: quelque chose comme cart-id=123
. Il l'a appelé "cookie", car à l'époque, les programmeurs utilisaient le terme "cookie magique" pour désigner un petit élément d'information supplémentaire inclus dans la communication de données.
Lou a terminé son travail sur les cookies HTTP en moins d'une semaine. Il ne se doutait pas que les cookies deviendraient essentiels pour la publicité, la connexion, les paiements, la détection de fraude et d'autres services Web essentiels. Les cookies sont une technologie très simple qui a eu des effets secondaires de grande envergure.
Utilisations des cookies
Les cookies permettent au navigateur de stocker une petite quantité d'informations sur l'utilisateur afin de "se souvenir" de quelque chose entre plusieurs requêtes. Les cookies ont plusieurs utilisations:
- Gestion des sessions
Permet à un site Web de reconnaître un utilisateur, par exemple pour maintenir un état de connexion sur différentes pages. - Personnalisation
Stockez les préférences des utilisateurs (langue, thème ou éléments consultés récemment, par exemple) pour personnaliser l'expérience sur le site Web. - Suivi
Historiquement, les cookies ont été utilisés pour suivre le comportement des utilisateurs sur les sites Web, pour la publicité ciblée et d'autres cas d'utilisation.
Les cookies sont généralement utilisés pour stocker et communiquer des identifiants traités par le serveur. Par exemple, un en-tête avec une requête envoyée à un service d'analyse Web peut inclure un cookie comme suit:
Cookie: _analytics=ANALYTICS1.2.34567890.123456789
Le serveur d'analyse qui reçoit la requête peut traiter l'identifiant, ainsi que d'autres informations sur la page.
En savoir plus
- Attributs des cookies
- Que sont les cookies tiers ?
- Requête et réponse HTTP
- Outils pour les cookies
- Démonstrations des cookies
- Utiliser des cookies HTTP
- The Magic Cookie: How Lou Montulli cured the Web's amnesia
- Cookies HTTP (spécification d'origine)
- Cookies HTTP, ou comment ne pas concevoir de protocoles