Brakuje mi podstawowych informacji na temat plików cookie. Na localhost, kiedy ustawiam plik cookie po stronie serwera i wyraźnie określam domenę jako localhost (lub .localhost). plik cookie nie jest akceptowany przez niektóre przeglądarki.
Firefox 3.5: Sprawdziłem żądanie HTTP w Firebug. Widzę to:
Set-Cookie:
name=value;
domain=localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
lub (kiedy ustawię domenę na .localhost):
Set-Cookie:
name=value;
domain=.localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
W obu przypadkach plik cookie nie jest przechowywany.
IE8: Nie korzystałem z żadnego dodatkowego narzędzia, ale plik cookie również nie jest przechowywany, ponieważ nie jest wysyłany z powrotem w kolejnych żądaniach.
Opera 9.64: Zarówno localhost i .localhost praca , ale kiedy sprawdzić listę cookies w preferencji, domena jest ustawiony na localhost.local mimo to wymienione w localhost (na liście grupy).
Safari 4: Zarówno localhost i .localhost praca , ale zawsze są one wymienione jako .localhost w preferencjach. Z drugiej strony plik cookie bez wyraźnej domeny, wyświetlany jako zwykły host (bez kropki).
W czym problem z localhost? Z powodu takiej liczby niespójności muszą istnieć specjalne zasady dotyczące hosta lokalnego. Ponadto nie jest dla mnie całkowicie jasne, dlaczego domeny muszą być poprzedzone kropką? RFC 2109 wyraźnie stwierdza, że:
Wartość atrybutu Domain nie zawiera osadzonych kropek lub nie zaczyna się od kropki.
Czemu? Dokument wskazuje, że ma coś wspólnego z bezpieczeństwem. Muszę przyznać, że nie przeczytałem całej specyfikacji (może zrobić to później), ale brzmi to trochę dziwnie. Na tej podstawie ustawienie plików cookie na localhost byłoby niemożliwe.