Il me manque quelque chose de basique sur les cookies. Sur localhost, lorsque je place un cookie côté serveur et que je spécifie explicitement le domaine comme localhost (ou .localhost). le cookie ne semble pas être accepté par certains navigateurs.
Firefox 3.5: J'ai vérifié la requête HTTP dans Firebug. Ce que je vois c'est:
Set-Cookie:
name=value;
domain=localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
ou (lorsque j'ai défini le domaine sur .localhost):
Set-Cookie:
name=value;
domain=.localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
Dans les deux cas, le cookie n'est pas stocké.
IE8: Je n'ai utilisé aucun outil supplémentaire, mais le cookie ne semble pas non plus stocké, car il n'est pas renvoyé dans les demandes suivantes.
Opera 9.64: localhost et .localhost fonctionnent tous les deux , mais lorsque je vérifie la liste des cookies dans Préférences, le domaine est défini sur localhost.local même s'il est répertorié sous localhost (dans le regroupement de la liste).
Safari 4: localhost et .localhost fonctionnent , mais ils sont toujours répertoriés comme .localhost dans les préférences. D'autre part, un cookie sans domaine explicite, il est affiché comme juste localhost (pas de point).
Quel est le problème avec localhost? En raison d'un tel nombre d'incohérences, il doit y avoir des règles spéciales impliquant localhost. De plus, je ne vois pas tout à fait pourquoi les domaines doivent être précédés d'un point? La RFC 2109 déclare explicitement que:
La valeur de l'attribut Domaine ne contient aucun point incorporé ou ne commence pas par un point.
Pourquoi? Le document indique qu'il doit faire quelque chose avec la sécurité. Je dois admettre que je n'ai pas lu toute la spécification (peut-être le faire plus tard), mais cela semble un peu étrange. Sur cette base, la configuration de cookies sur localhost serait impossible.