Un cookie (prononcé ˈkʊk.i]Prononciation en anglais retranscrite selon la norme API, source : Cambridge Dictionary. , litt. « biscuit » en anglais), également appelé témoin de connexion ou témoin de navigation, est une petite quantité de données envoyée par un serveur HTTP à l'utilisateur d'un site web puis stockée par son navigateur sur son appareil. Il permet de créer une session de navigation avec état (préférences d'affichage, contenu d'un panier d'achat...) lors de sa visite.

Cette technologie est actuellement utilisée par la moitié des sites web..

Inventé en 1994 par des ingénieurs de la société Netscape, le cookie est un fichier texte constitué de paires clé-valeur échangées par le protocole de communication HTTP. Créé par un serveur HTTP, le cookie est envoyé au client HTTP pour être enregistré un temps spécifié durant lequel il est renvoyé tel quel au serveur à chaque requête web. La durée d'enregistrement peut s'étendre de quelques minutes à plusieurs années.

Le cookie permet ainsi aux sites web d'identifier les internautes lorsqu'ils passent d'une page web à l'autre du site, voire lorsqu'ils reviennent des années plus tard. Les cookies sont notamment utilisés pour identifier la session d'un internaute connecté à son compte informatique. La confidentialité des cookies est donc importante pour la sécurité Internet. Plus généralement, les cookies servent à lier à une visite toute information d'état.

L'utilisation de cookies par des entreprises de pistage web suscite des controverses. En effet, ces cookies tiers liés par exemple à des bannières de publicité en ligne permettent de suivre les internautes visitant des sites web sans rapport, si ce n'est l'entreprise sous-traitante de pistage. Les usages qui ne répondent pas à des contraintes strictement techniques ont été régulés par des lois comme la directive du 12 juillet 2002 sur la protection de la vie privée dans le secteur des communications électroniques de l'Union européenne. Les sites web obéissant à cette directive permettent aux visiteurs d'accepter sélectivement les cookies.. Les navigateurs web permettent également aux utilisateurs de gérer les cookies.

Historique

Le terme cookie dérive du terme anglais ., désignant un paquet de données qu'un programme reçoit et renvoie inchangé. En français, les cookies sont aussi appelés « témoin de connexion ».., « témoin de navigation ». ou « témoin ».

Les cookies étaient déjà utilisés en informatique quand Lou Montulli. a eu l'idée de les utiliser dans les communications web en . En ce temps, il était employé de Netscape Communications. John Giannandrea et Lou Montulli ont écrit la même année la première spécification des cookies de Netscape Navigator. La bêta de Mosaic Netscape, publiée le , intégrait la technologie des cookies... La première utilisation des cookies (hors expérimentation) a été faite pour déterminer si les visiteurs du site web Netscape avaient déjà visité le site auparavant. Montulli a déposé une demande de brevet pour la technologie des cookies en 1995, et le brevet US 5774670 a été accordé en 1998..

Après avoir été implantés dans Netscape 0.9 beta en 1994, les cookies ont été intégrés dans Internet Explorer 2, publié en .

L'introduction des cookies n'a pas été largement connue du grand public pour autant. En particulier, les cookies étaient acceptés par défaut dans les paramètres des navigateurs, et les utilisateurs n'étaient pas informés de leur présence. Certaines personnes étaient au courant de l'existence des cookies au début de l'année 1995, mais le grand public n'apprit leur existence qu'après la publication par le Financial Times d'un article le . La même année, les cookies reçurent beaucoup d'attention de la part des médias, à cause de possibles intrusions dans la vie privée. Le sujet des cookies fut discuté dans deux consultations de la Federal Trade Commission des États-Unis en 1996 et 1997.

Le développement de la spécification officielle des cookies était déjà en cours. Les premières discussions sur la spécification officielle eurent lieu en sur la liste de discussion www-talk. Un groupe spécial de travail du IETF fut formé. Deux propositions alternatives pour introduire un état dans les transactions HTTP ont été proposées par Brian Behlendorf et David Kristol respectivement. Cependant, le groupe, dirigé par Kristol lui-même, a décidé d'utiliser la spécification de Netscape comme point de départ. En , le groupe de travail a déterminé que les cookies tiers (third party cookies) étaient une menace considérable à la protection de la vie privée. La spécification produite par le groupe a finalement été publiée en tant que .

À partir de fin 2014, on voit un bandeau au sujet des cookies sur de nombreux sites. Il existe plusieurs extensions de navigateur permettant le non-affichage du bandeau I don't care about cookies 2.3.0, addons.mozilla.org, consulté en décembre 2014..

Utilisations Gestion des sessions Les cookies peuvent être utilisés pour maintenir les données relatives à l'utilisateur durant sa navigation, mais aussi à travers plusieurs visites. Les cookies ont été introduits pour donner un moyen d'implémenter les paniers d'achats électroniques, des dispositifs permettant à l'utilisateur d'accumuler les articles qu'il veut acheter durant sa navigation sur le site.

De nos jours, les applications comme les paniers d'achat enregistrent plutôt la liste des articles dans une base de données sur un serveur, ce qui est préférable, plutôt que de les enregistrer dans le cookie lui-même. Le serveur web envoie un cookie contenant un identifiant de session unique. Le navigateur web renvoie alors cet identifiant de session à chaque requête suivante et les articles du panier sont enregistrés et associés avec ce même identifiant unique de session.

Les cookies sont utiles dans le cadre de la connexion à un site à l'aide d'identifiants :

L'application web envoie un cookie contenant un identifiant unique de session lors de la première connexion ; L'utilisateur fournit ses identifiants (généralement un nom d'utilisateur et un mot de passe) lorsqu'il s'authentifie ; L'application web valide l'authentification et permet à l'utilisateur d'accéder au service ; le cookie permet alors de conserver la mémoire du fait que la connexion a été validée, et évite ainsi de redemander ses informations de connexion à l'utilisateur à chaque nouvel accès.

Selon certaines implémentations, le cookie de session n’est généré qu’après la validation des identifiants de l’utilisateur, afin de garantir que seule une authentification réussie engendre la création d’une session. Cette approche est notamment recommandée par Firebase Authentication., qui préconise la création du cookie de session côté serveur à partir d’un jeton d’identification validé (cette configuration implique que l’ordre des étapes décrites précédemment peut être inversé, le cookie de session n’étant alors transmis qu’après l’authentification, et non avant celle-ci).

Personnalisation Les cookies peuvent être utilisés pour mémoriser l'information sur l'utilisateur d'un site, dans le but de lui montrer un contenu approprié à l'avenir. Par exemple, un serveur web peut envoyer un cookie contenant le dernier nom d'utilisateur utilisé pour se connecter à ce site web, afin que ce nom d'utilisateur puisse être prérempli lors des prochaines visites.

Beaucoup de sites web utilisent les cookies pour la personnalisation basée sur les préférences des utilisateurs. Les utilisateurs sélectionnent leurs préférences dans un formulaire et envoient celles-ci au serveur. Le serveur encode les préférences dans un cookie et renvoie celui-ci au navigateur. Par la suite, à chaque fois que l'utilisateur accède à une page de ce site, le navigateur renvoie le cookie et donc la liste des préférences ; le serveur peut alors personnaliser la page d'après les préférences de l'utilisateur. Par exemple, le site web de Wikipédia permet à ses utilisateurs de choisir l'habillage du site qu'ils préfèrent. Le moteur de recherche Google permet à ses utilisateurs (même s'ils ne sont pas enregistrés) de choisir le nombre de résultats qu'ils veulent voir sur chaque page de résultats.

Pistage Les cookies de pistage (ou traceurs) sont utilisés pour suivre les habitudes de navigation des utilisateurs d'internet. Cela peut être fait aussi en partie en utilisant l'adresse IP de l'ordinateur faisant une requête d'une page ou à l'aide de l'en-tête HTTP « référant » que le client envoie à chaque requête, mais les cookies permettent une plus grande précision. Cela peut être fait comme dans l'exemple suivant : Si l'utilisateur fait appel à une page d'un site, et que la requête ne contient pas de cookie, le serveur présume que c'est la première page visitée par l'utilisateur. Le serveur crée alors une chaîne aléatoire et l'envoie au navigateur en même temps que la page demandée ; À partir de ce moment, le cookie sera automatiquement envoyé par le navigateur dès qu'une nouvelle page du site sera appelée. Le serveur enverra la page comme d'habitude, mais enregistrera aussi l'URL de la page appelée, la date, l'heure de la requête et le cookie dans un fichier de journalisation. En regardant le fichier de journalisation, il est alors possible de voir quelles pages l'utilisateur a visitées et dans quel ordre. Par exemple, si le fichier contient quelques requêtes faites en utilisant le cookie id=abc, cela peut établir que toutes ces requêtes proviennent du même utilisateur. L'URL demandée, la date et l'heure associées aux requêtes permettent de suivre la navigation de l'utilisateur à la trace.

Les cookies tiers et les pixels espions, expliqués ci-dessous, permettent en plus le pistage à travers différents sites. Le pistage dans un seul site est généralement utilisé pour un usage statistique. Par contre, le pistage dans différents sites à l'aide des cookies tierces parties est généralement utilisé par les entreprises de publicité pour produire des profils d'utilisateurs anonymes (qui sont alors utilisés pour déterminer quelles publicités devraient être montrées à l'utilisateur et, si l’adresse e-mail de l’utilisateur est connue, pour lui envoyer des mails correspondant à ces publicités).

Les cookies de pistage sont un risque d'atteinte à la vie privée de l'utilisateur mais ils peuvent être supprimés facilement. La plupart des navigateurs récents incluent une option pour supprimer automatiquement les cookies persistant à la fermeture de l'application.

Cookies tiers (cookies de tierce partie) Les images et autres objets contenus dans une page web peuvent résider dans des serveurs différents de celui hébergeant la page. Pour afficher la page, le navigateur télécharge tous ces objets. La plupart des sites web contiennent des informations provenant de différentes sources. Par exemple, si l’utilisateur saisit www.exemple.com dans son navigateur, il y aura souvent des objets ou des publicités sur une partie de la page qui proviendront de sources différentes, c'est-à-dire d'un domaine différent de www.exemple.com. Les cookies « première partie » sont des cookies qui sont mis en place par le domaine inscrit dans la barre d'adresse du navigateur. Les cookies tiers sont mis en place par l'un des objets de la page qui proviennent d'un domaine différent.

Par défaut, les navigateurs comme Internet Explorer et Opera acceptent les cookies de tierce partie, mais les utilisateurs peuvent changer les paramètres du navigateur pour les bloquer. Au contraire, les navigateurs Mozilla Firefox ou Safari bloquent par défaut de nombreux cookies tiers... Il n'y a pas de risque de sécurité inhérent aux cookies tiers qui permettent des fonctionnalités pour le web. Cependant, ils servent aussi à pister les internautes de site en site Jenny Boriss (Mozilla), Defeating the Cookie Monster: How Firefox can Improve Online Privacy, le 2 juin 2010, traduit ici.