Все, что я читал о файлах cookie, говорит о том, что установка нулевого времени истечения срока действия файла cookie должна сделать его сеансовым файлом cookie, который браузер затем удалит при выходе.
http://www.cookiecentral.com/faq/ говорит, что:
«... обычно сеанс - это время, в течение которого браузер открыт ...»
http://php.net/manual/en/function.setcookie.php говорит:
«Если установлено значение 0 или опущено, срок действия cookie истечет в конце сеанса (при закрытии браузера)».
Однако некоторые эксперименты в Firefox (3.0.8) показывают, что:
- файлы cookie, установленные как сеансовые и безопасные, удаляются при выходе
- файлы cookie, установленные только для сеанса, не удаляются при выходе
Opera (9.64) ведет себя так, как я ожидал, удаляя файлы cookie сеанса при выходе, независимо от того, установлен ли он как безопасный или нет.
Я хотел иметь возможность полагаться на это в веб-приложении, над которым я работаю (наличие безопасного файла cookie и небезопасного файла cookie в качестве флага «вошел в систему», и их срок действия истекает вместе, либо в реальном времени, либо 0 для сеанс), но кажется, что даже если он включен в стандарт, браузеры недостаточно согласованы, чтобы полагаться на него: /
Является ли это ошибкой браузера, ожидаемым поведением и / или фактическое время жизни файлов cookie сеанса на самом деле не определено в стандарте?