Цитируя тот же RFC2109, вы читаете:
* Set-Cookie от запроса-хоста x.foo.com для домена = .foo.com будет
быть принятым.
Так что subdomain.example.com
можете установить cookie для .example.com
. Все идет нормально.
Следующие правила применяются для выбора применимых значений cookie из
среди всех файлов cookie, которые есть у пользовательского агента.
Выбор домена
Полное имя хоста исходного сервера должно соответствовать домену
Доменный атрибут куки
Так у нас есть совпадение доменов?
* A является строкой полного доменного имени и имеет форму NB, где N - непустое имя
строка, B имеет вид .B ', а B' - строка FQDN. (Итак, Xycom
доменные совпадения .y.com, но не y.com.)
Но теперь example.com
не соответствует домену в .example.com
соответствии с определением. Но www.example.com
(или любое другое «непустое имя» в домене) будет. Этот RFC теоретически устарел в RFC2965 , который продиктовал вещи, заставляющие лидирующую точку для доменов в Set-Cookie2
операциях.
Более важным, как отмечает @Tony, является реальный мир. Чтобы увидеть, что делают реальные пользовательские агенты, см.
Firefox 3's nsCookieService.cpp
а также
Chrome's cookie_monster.cc
Для перспективы в то , что фактические сайты делают, пытаются играть с wget
помощью --save-cookies
, --load-cookies
и --debug
посмотреть , что происходит.
Вы, вероятно, обнаружите, что на самом деле большинство сайтов используют некоторую комбинацию Set-Cookie
из старой спецификации RFC со значениями «Host», неявно без ведущей точки (как это делает twitter.com ) или установки значений домена (с ведущей точкой) и перенаправления на сервер, как www.example.com
(как это делает google.com ).