Debo estar perdiendo algo básico sobre las cookies. En localhost, cuando configuro una cookie en el lado del servidor y especifico el dominio explícitamente como localhost (o .localhost). la cookie no parece ser aceptada por algunos navegadores.
Firefox 3.5: verifiqué la solicitud HTTP en Firebug. Lo que veo es:
Set-Cookie:
name=value;
domain=localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
o (cuando configuro el dominio en .localhost):
Set-Cookie:
name=value;
domain=.localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
En cualquier caso, la cookie no se almacena.
IE8: no utilicé ninguna herramienta adicional, pero la cookie no parece estar almacenada también, porque no se devuelve en solicitudes posteriores.
Opera 9.64: tanto localhost como .localhost funcionan , pero cuando verifico la lista de cookies en Preferencias, el dominio se establece en localhost.local a pesar de que aparece en localhost (en el grupo de listas).
Safari 4: tanto localhost como .localhost funcionan , pero siempre se enumeran como .localhost en Preferencias. Por otro lado, una cookie sin un dominio explícito, se muestra como solo localhost (sin punto).
¿Cuál es el problema con localhost? Debido a tal cantidad de inconsistencias, debe haber algunas reglas especiales que involucren localhost. Además, no está completamente claro para mí por qué los dominios deben tener el prefijo de un punto. RFC 2109 declara explícitamente que:
El valor del atributo Dominio no contiene puntos incrustados o no comienza con un punto.
¿Por qué? El documento indica que tiene que hacer algo con seguridad. Tengo que admitir que no he leído toda la especificación (puede que lo haga más tarde), pero suena un poco extraño. En base a esto, sería imposible establecer cookies en localhost.