Цитуючи з того самого RFC2109, який ви читали:
* Буде встановлено cookie від запиту-хоста x.foo.com для Domain = .foo.com
бути прийнятим.
Так subdomain.example.com
можна встановити файл cookie для .example.com
. Все йде нормально.
Наступні правила застосовуються до вибору відповідних значень файлів cookie від
серед усіх файлів cookie, які має агент користувача.
Вибір домену
Повнокваліфіковане ім’я хоста-сервера повинно відповідати домену
атрибут домену файлу cookie
То ми маємо збіг домену?
* A - рядок FQDN і має вигляд 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 nsCookieService.cpp
і
Cookie_monster.cc Chrome
Для перспективи в те , що фактичні сайти роблять, намагаються грати з wget
допомогою --save-cookies
, --load-cookies
і --debug
подивитися , що відбувається.
Ви, ймовірно, виявите, що насправді більшість сайтів використовують деяку комбінацію Set-Cookie
старих специфікацій RFC зі значеннями "Host", неявно без провідної точки (як це робить twitter.com ) або встановлення значень домену (з провідною крапкою) та перенаправлення на такий сервер www.example.com
(як це робить google.com ).