Définition:
Un cookie est un ensemble
d'infos stockés sur le disque dur de l'utilisateur pour faciliter la
navigation mais aussi pour être reconnu.
Il ne peut contenir que ce que l'utilisateur a bien voulu donner et ne peut
en aucun cas transporter un virus ou des informations confidentielles.
Il comprend :
1 - UN NOM OBLIGATOIRE:
défini dans le champ name,
c'est une valeur alphanumérique quelconque qui ne doit pas contenir de
point virgule, de virgule, de caractère blanc (ex valide : "Cc=R021%_cOnCePt")
document.cookie=name+"="+value;
auquel peuvent s'ajouter
d'autres paramètres facultatifs , à savoir :
2 - UNE DATE D'EXPIRATION:
définie dans le champ expires,
indique jusqu'à quelle date le cookie peut être utilisé.
C'est une valeur date exprimée sous la forme Sun,JJ-MM-AA HH:MM:SS GMT,
le jour de la semaine étant en anglais abrégé (Sun, Mon, Tue, ...)
Si on ne précise pas de date d'expiration, le cookie expire à la fin de
la session en cours.
// date d'expiration le
1er Janvier de l'an 2002 :
var dateExp="Sat, 01-Jan-2002 08:00:00 GMT";
ou
// date expiration 1 mois
var expdate=newDate();
var dateExp= expdate+(31*24*60*60*1000)
document.cookie=name+"="+value+";expires="+dateExp;
3 - UN CHEMIN :
défini dans le champ path,
indique la partie de l'URL pour lequel le cookie est valable. Si on ne précise
pas de chemin, c'est celui du chemin du document créant le cookie qui est
utilisé.
Par exemple, sur le serveur www.serveur.com, on désire que le
cookie de nom cook, initialisé à essai ne soit accessible que
pour les documents situés dans le répertoire concept
//On est dans le document
http://www.serveur.com/concept/index.htm
//Ce cookie sera "visible" à partir de http://www.serveur.com/concept/news.htm
//mais ne le sera pas depuis une autre adresse
document.cookie="cook=essai;expires=Wed, 31-Dec-1997 23:59:59 GMT;path=concept";
4 - UN DOMAINE:
défini dans le champ domain,
indique le domaine (=le serveur, ou une partie de l'adresse du serveur)
pour lequel le cookie est valable. Effectivement, un serveur peut créer un
cookie qui sera lu par un autre serveur. Si on ne définit pas de domaine,
c'est celui du serveur créant le cookie qui est pris en compte
//On
est dans http://www.serveur.com/concept/index.htm
//On désire que le cookie "cook_cool" soit lisible
depuis le site "www.essai.com"
//www.serveur.com ne pourra plus lire le cookie, par contre www.essai.com
le pourra
document.cookie="cook_cool=sebweb;expires=Wed, 31-Dec-1997 23:59:59
GMT;domain=www.essai.com";
Un navigateur comme Netscape
a prévu la possibilité d'interdire ce genre d' "entente" entre
serveurs. Cette distinction n'existe pas dans MSIE
(versions actuelles : 4).
5 - UN ATTRIBUT DE SECURITE:
défini par le
"flag" secure, indique (s'il existe)
que le cookie ne sera transmis que si la connexion vers le serveur est sécurisée
(protocole HTTPS et non pas HTTP)
//le
cookie "cook_cool" ne sera transmis que si la connexion
est effectuée via https
document.cookie="cook_cool=sebweb;expires=Wed, 31-Dec-1997 23:59:59
GMT;secure";
6 - DES LIMITATIONS:
Elles concernent la
taille et le nombre de cookies pouvant être stockés sur chaque poste
client
300 cookies au total
4 KO par cookie
20 cookies par serveur ou
domaine