Wenn Sie ein Cookie wie folgt einstellen:
Set-Cookie: name=value
dann gilt das Cookie nur für die Anforderungsdomäne und wird nur für Anforderungen an die genau gleiche Domäne gesendet, nicht an andere Subdomänen. (Siehe Was ist ein "host only" Cookie?)
Zwei verschiedene Domänen (z. B. example.com
und subdomain.example.com
oder sub1.example.com
und sub2.example.com
) können nur Cookies teilen, wenn das domain
Attribut im Header vorhanden ist:
Set-Cookie: name=value; domain=example.com
Das domain Attribut muss mit der Anforderungs-URL übereinstimmen, damit es gültig ist, was im Grunde bedeutet, dass es die Anforderungsdomäne oder eine "Eltern" Domäne sein muss. Dies gilt also für beide Beispiele in der Frage sowie für das Teilen zwischen zwei separaten Subdomänen.
Dieses Cookie würde dann für example.com
und alle Subdomänen von example.com
gesendet werden, einschließlich verschachtelter Subdomänen wie subsub.subdomain.example.com
. (Bitte beachten Sie, dass es auch andere Attribute gibt, die den Geltungsbereich des Cookies einschränken und wann es vom Browser gesendet wird, wie path
oder Secure
).
Aufgrund der Funktionsweise des Domain-Matchings, wenn Sie möchten, dass sub1.example.com
und sub2.example.com
Cookies teilen, teilen Sie sie dann auch mit sub3.example.com
.
Siehe auch:
Eine Anmerkung zu führenden Punkten in domain
Attributen: In der frühen RFC 2109 konnten nur Domänen mit einem führenden Punkt (domain=.example.com
) über Subdomänen hinweg verwendet werden. Aber dies konnte nicht mit der Top-Level-Domäne geteilt werden, daher war das, was Sie fragen, im älteren Spezifikation nicht möglich.
Die neuere Spezifikation RFC 6265 ignoriert jedoch jeden führenden Punkt, was bedeutet, dass Sie das Cookie auch auf Subdomänen sowie auf der Top-Level-Domäne verwenden können.