Zitiert aus demselben RFC2109, den Sie gelesen haben:
* Ein Set-Cookie vom Request-Host x.foo.com für Domain = .foo.com würde
akzeptiert sein.
So subdomain.example.com
kann ein Cookie für gesetzt werden .example.com
. So weit, ist es gut.
Die folgenden Regeln gelten für die Auswahl der zutreffenden Cookie-Werte aus
Unter all den Cookies, die der User Agent hat.
Domain-Auswahl
Der vollständig qualifizierte Hostname des Ursprungsservers muss mit der Domäne übereinstimmen
das Domain-Attribut des Cookies
Haben wir also ein Domain-Match?
* A ist eine FQDN-Zeichenfolge und hat die Form NB, wobei N ein nicht leerer Name ist
Zeichenfolge, B hat die Form .B ', und B' ist eine FQDN-Zeichenfolge. (Also, xycom
Domain-Übereinstimmungen .y.com, aber nicht y.com.)
Aber jetzt example.com
würde nicht Domain-Match .example.com
nach der Definition. Aber www.example.com
(oder jeder andere "nicht leere Name" in der Domain) würde. Dieser RFC ist theoretisch durch RFC2965 überholt , der bestimmte Dinge zum Erzwingen eines führenden Punkts für Domänen in Set-Cookie2
Operationen vorschrieb .
Wichtiger ist, wie @Tony feststellt, die reale Welt. Einen Einblick in die tatsächlichen Aktivitäten von Benutzeragenten finden Sie unter
NsCookieService.cpp von Firefox 3
und
Chrome's cookie_monster.cc
Für Perspektive in dem, was tun tatsächliche Websites, versuchen Sie mit dem Spielen wget
mit --save-cookies
, --load-cookies
und --debug
zu sehen , was los ist .
Sie werden wahrscheinlich feststellen, dass die meisten Websites eine Kombination Set-Cookie
aus der älteren RFC-Spezifikation mit "Host" -Werten verwenden, implizit ohne einen führenden Punkt (wie bei twitter.com ) oder ohne das Festlegen von Domain-Werten (mit einem führenden Punkt) und Weiterleiten auf einen Server wie www.example.com
(wie google.com ).