Devo mancare alcune cose di base sui cookie. Su localhost, quando imposto un cookie sul lato server e specifico esplicitamente il dominio come localhost (o .localhost). il cookie non sembra essere accettato da alcuni browser.
Firefox 3.5: ho verificato la richiesta HTTP in Firebug. Quello che vedo è:
Set-Cookie:
name=value;
domain=localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
oppure (quando imposto il dominio su .localhost):
Set-Cookie:
name=value;
domain=.localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
In entrambi i casi, il cookie non viene memorizzato.
IE8: Non ho utilizzato alcuno strumento aggiuntivo, ma il cookie non sembra essere memorizzato, perché non viene inviato indietro nelle richieste successive.
Opera 9.64: Sia localhost che .localhost funzionano , ma quando controllo l'elenco dei cookie in Preferenze, il dominio è impostato su localhost.local anche se è elencato sotto localhost (nel raggruppamento dell'elenco).
Safari 4: sia localhost che .localhost funzionano , ma sono sempre elencati come .localhost nelle Preferenze. D'altra parte, un cookie senza un dominio esplicito, mostrato come solo localhost (senza punto).
Qual è il problema con localhost? A causa di un tale numero di incoerenze, ci devono essere alcune regole speciali che coinvolgono localhost. Inoltre, non mi è completamente chiaro perché i domini devono essere preceduti da un punto? RFC 2109 afferma esplicitamente che:
Il valore per l'attributo Dominio non contiene punti incorporati o non inizia con un punto.
Perché? Il documento indica che deve fare qualcosa con la sicurezza. Devo ammettere che non ho letto l'intera specifica (potrei farlo in seguito), ma suona un po 'strano. Sulla base di questo, l'impostazione dei cookie su localhost sarebbe impossibile.