从文档和this link,我已经知道事实是foo.example.com
可以通过在Set-Cookie
标头中发送Domain = example.com
的响应来设置Cookie的example.com
。但为什么这是允许的?为什么foo.example.com会为example.com设置cookie?
例如,事实是,一台服务器(比如,foo.example.com
)不能设置cookies其兄弟姐妹(比如,bar.example.com
)或域名比它低(也称“其子”说,ide.foo.example.com
)但它可以为域名设置更高的cookie(也称为“其父母”,在这种情况下为example.com
。
让我通过将其置于真实世界中来更清楚地表明问题的说法。像Google App Engine上的应用程序foo.appspot.com
显然不能为bar.appspot.com
设置Cookie,因为它们是两个不同的应用程序,它们不应该影响彼此的行为。但为什么允许foo.appspot.com
将Cookie设置为appspot.com
发送Domain = appspot.com
在其响应头?通过这样做,foo.appspot.com
应用实际上可以影响其他应用在Google App Engine上的行为,因为浏览器在访问bar.appspot.com
时(其域名是appspot.com
的孩子)将发送此cookie。
我从Udacity网络开发课程了解了关于cookies的所有内容。但我真的很困惑这个问题。任何人都可以帮忙解释一下吗?提前致谢。 :-)