COMPTOIR
  
register

Dossier • Vous reprendrez bien un cookie ?

• Cékoidon lekouki

Même si vos profs et l'Académie Française vous mettront en garde contre son manque de fiabilité, si on en croit l'encyclopédie communautaire en ligne Wikipedia, la définition d'un cookie serait :

 

Un témoin de connexion définit par le protocole de communication HTTP comme étant une suite d'informations envoyée par un serveur HTTP à un client HTTP, que ce dernier retourne lors de chaque interrogation du même serveur HTTP sous certaines conditions.

 

Alors c'est très technique comme explication, donc on va détailler un peu. Quand vous voulez aller sur un site, pour l'appeler vous allez dans la barre d'adresse (non, pas la fenêtre de recherche google, le truc en haut avec les adresses) et vous tapez son adresse. On va prendre l'exemple du Comptoir, quand on est sur la page, on trouve dans la barre d'adresse: http://www.comptoir-hardware.com

 

barre_dadresse.jpg  

...au hasard !

 

Et les premières lettres qu'on va taper sont «HTTP» (même si votre navigateur est capable de comprendre si vous ne les mettez pas, vu que c'est le protocole de base permettant d'appeler une page), comme dans la définition au-dessus. C'est le protocole qui va permettre d'accéder au serveur ou est hébergé le site. Quand on appelle ce serveur pour la première fois et qu'on lui demande un accès, il nous donne un identifiant (crypté si c'est du HTTPS) qui lui servira à nous reconnaître à notre prochain passage par chez lui. Et paf, nous voilà avec un cookie sur la machine. À chaque fois qu'on reviendra, notre navigateur lui montrera ça et le serveur saura qu'on est passé par là. Pour ce faire il faut que notre navigateur permette l'inscription des données de façon persistante via l'option "se rappeler de moi" qui n'est pas forcément activée par défaut. Sinon, un nouvel identifiant sera demandé à chaque passage. Ces données ne sont d'ailleurs pas enregistrées en clair dans votre machine mais chiffrées en MD5 ou SHA, mais on en parlera un peu plus tard.

 

Serveur, jai soâf !

Dans l'idée et en supra simplifié, ça donne ça, l'amabilité en moins.

 

Selon leur fonction et leur utilisation, on peut diviser les cookies en plusieurs catégories :

 

Les cookies temporaires ou cookies de session qui sont supprimés de votre ordinateur après la fermeture du navigateur. Les sites Web utilisent ces cookies pour stocker des informations temporaires, telles que des articles dans votre panier d’achats.

 

Les cookies persistants, ou cookies enregistrés qui restent sur votre ordinateur après la fermeture du navigateur. Les sites Web les utilisent pour stocker des informations telles que votre nom de connexion et votre mot de passe pour que vous n’ayez pas à les retaper à chaque visite du site. Les cookies persistants peuvent demeurer sur votre ordinateur pendant des jours, des mois, voire des années.

 

Les cookies internes provenant du site Web que vous êtes en train d’afficher et pouvant être persistants ou temporaires. Un site Web peut utiliser ces cookies pour stocker des informations qui seront réutilisées lors de votre prochaine visite sur le site.

 

Pour faire simple, un cookie n'a de fonction principale que de vous faciliter la navigation, les seules données qui lui sont envoyées automatiquement sont votre adresse IP et la version du navigateur que vous utilisez. Ce petit fichier est stocké sur votre machine, de façon temporaire ou continue, et ne sera en règle général utilisé que par le site qui l'a créé. Il permet aussi de connaître la fréquentation d'un site et ne vous posera pas problème, si vous ne lui en donnez pas les moyens.

 

• Côté code

Un peu plus haut, on a vu qu'un Cookie était créé via le protocole HTTP pour nous donner l'accès au serveur du site que l'on veut visiter. Ça, c'est la version simple, typique et nécessaire au bon fonctionnement du Web. Après, il est possible de créer d'autres cookies qui ont d'autres buts et stockent d'autres informations (comme vu plus haut aussi, se souvenir de la couleur du site, du panier et autre). Pour créer un cookie, le site visité va envoyer une suite de commandes à votre navigateur grâce à la balise «Set-Cookie», du genre :

 

Set-Cookie: =[; =] [; expires=][; domain=][; path=][; secure][; httponly]

 

Tout ce qui vient à la suite définira ce qui sera inclus dans le cookie et de quel type il sera.

 

"name" donnera un nom au cookie (à mettre à la place de "value"), comme vous vous en doutez sûrement, "expires" définira la date à laquelle il expirera, laissé vide il sera effacé en fin de session, sinon il faudra lui donner une valeur du genre DD-MMM-YYYY HH:MM:SS GMT qui déterminera le moment auquel il n'aura plus d'utilité (MMM ne voulant pas dire qu'il y a 999 mois dans l'année, ce sont les trois premières lettres du mois qui sont utilisées). "domain" est en général laissé vide, il dépend du serveur qui a fait la demande, par exemple pour CDH en le laissant vide, ce sera comptoir-hardware.com, "path" permet de définir sur quelle partie du serveur le cookie est valide, "secure" fait en sorte que le cookie ne soit envoyé que si la connexion est sécurisée (HTTPS ou SSL) et "httponly" fait en sorte que le cookie ne soit pas scriptable et qu'il soit invisible pour l'application client, en d'autres mots, il n’apparaîtra pas dans le gestionnaire des cookies de votre navigateur. Cette dernière valeur existe pour des raisons de sécurité et est relativement peu utilisée du fait qu'elle peut amener à se poser la question du pourquoi du comment.

 

Pour créer un Cookie, il faut en passer par un script, pour les plus curieux d'entre vous, voici basiquement ce à quoi cela ressemble en JavaScript, PHP et PERL ou encore en C++ en utilisant la fonction InternetSetCookie de Microsoft.

 

Script en JavaScript :

<script type="text/javascript" language="JavaScript">document.cookie = "SomeValueName = Some_Value";</script>

 

Script en PHP :

 <!--?php
        setCookie("Name","Value",time()+3600);
        header("Location: cookie_ajout.php");
?-->

 

Script en PERL :

print "Set-Cookie:Test=test_value;
     expires=Sat, 01-Jan-2000 00:00:00 GMT;
     path=/;"

 

Script en C++ avec InternetSetCookie :

BOOL InternetSetCookie(
   _In_LPCTSTR lpszUrl,
   _In_LPCTSTR lpszCookieName,
   _In_LPCTSTR lpszCookieData );

 

Regardons voir ce que ca donne en pratique page suivante.



Un poil avant ?

IBM présente son prototype de disque à mémoire PCM pour remplacer la flash NAND des SSD

Un peu plus tard ...

30fps VS 60fps, votre occuliste en pense quoi ?

Les 31 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !