Мне нужно пропустить некоторые основные вещи о куки. На localhost, когда я устанавливаю файл cookie на стороне сервера и указываю домен явно как localhost (или .localhost). cookie, похоже, не принимается некоторыми браузерами.
Firefox 3.5: Я проверил HTTP-запрос в Firebug. Я вижу:
Set-Cookie:
name=value;
domain=localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
или (когда я установил домен в .localhost):
Set-Cookie:
name=value;
domain=.localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
В любом случае файл cookie не сохраняется.
IE8: Я не использовал какой-либо дополнительный инструмент, но файл cookie тоже не хранится, потому что он не отправляется обратно в последующих запросах.
Opera 9.64: Работают как с localhost, так и с .localhost, но когда я проверяю список файлов cookie в настройках, домен настроен на localhost.local, хотя он указан в localhost (в списке).
Safari 4: Работают как с localhost, так и с .localhost, но они всегда отображаются как .localhost в настройках. С другой стороны, cookie без явного домена, он отображается как просто localhost (без точки).
В чем проблема с localhost? Из-за такого количества несоответствий должны быть специальные правила, связанные с localhost. Кроме того, это не совсем ясно для меня, почему домены должны иметь префикс точки? RFC 2109 явно заявляет, что:
Значение для атрибута Domain не содержит встроенных точек или не начните с точки.
Почему? Документ указывает, что он должен что-то сделать с безопасностью. Я должен признать, что я не прочитал всю спецификацию (может сделать это позже), но это звучит немного странно. Исходя из этого, установка файлов cookie на localhost будет невозможна.