我正在阅读MDC entry for nsICookieManager2.add
,它会讨论域和非域 Cookie。两种类型的cookie有什么区别?
答案 0 :(得分:6)
来自RFC2109:
主机A的名称域名与主机B匹配 如果[...] A是FQDN字符串并且有 形式NB,其中N是非空的 名称字符串,B的格式为.B',和 B'是FQDN字符串。 (所以,x.y.com 域名匹配.y.com但不是y.com。)
因此,如果我理解正确,域Cookie会有.y.com
这样的域,而非域cookie会有x.y.com
这样的域。所有子域都可以看到域cookie,非域cookie只对其特定的子域可见。
在访问.y.com
和www.y.com
(但不是test.y.com
)等子域时,可以看到包含域y.com
的Cookie,而域名为{{1}的Cookie }只有在访问子域x.y.com
时才可见,但不能访问任何其他子域。
答案 1 :(得分:2)
查看RFC,如果在创建cookie时未指定域,则将应用来自请求主机的域。因此,如果没有指定域名,www.foo.com的请求将在域中包含www.foo.com。
但是,您可能希望明确设置域以在各种子域中使用cookie。将cookie域设置为foo.com将允许您在www.foo.com或help.foo.com或* .foo.com上访问它。当你可能托管的应用程序传递一些状态时,这非常有用。
答案 2 :(得分:0)
据我所知,非域cookie没有任何意义。 Cookie始终与域绑定,只有该域的Cookie才会传递给应用程序并可以使用。但是,有一些技术可以用来创建跨域cookie。这是一个解释这个的教程。我不知道你是否在为你的项目使用php,因为本教程使用php解释了这个概念。
http://www.tutorialized.com/view/tutorial/Implementing-Cross-Domain-Cookies/372
希望这有帮助。