From both the documentation and this link, I already know that the fact is foo.example.com
can set cookies for example.com
by sending response with Domain = example.com
in the Set-Cookie
header. But why is this allowed?
For example, the fact is, a server (say, foo.example.com
) cannot set cookies for its siblings (say, bar.example.com
) or the domain names lower than it (also known as "its child", say, ide.foo.example.com
), but it can set cookies for the domain names higher than it (also known as "its parents", in this case example.com
.
Let me make the statement of the question even more clear by putting it into the real world. Just like apps on Google App Engine, foo.appspot.com
obviously cannot set cookies for bar.appspot.com
because they are two different apps, and they shouldn't affect each other's behavior. But why is it allowed for foo.appspot.com
to set cookies for appspot.com
by sending Domain = appspot.com
in its response header? By doing this the foo.appspot.com
app can actually affect other apps' behavior on Google App Engine, since the browser will send this cookie when visiting bar.appspot.com
, the domain name of which is a child of appspot.com
.
I learned all these things about cookies from the Web Development course on Udacity. But I'm really confused with this question. Can anybody help explain this? Thanks in advance. :-)