“域名”和“非域名”Cookie之间有什么区别?

时间:2009-11-05 10:20:14

标签: cookies dns mozilla

我正在阅读MDC entry for nsICookieManager2.add,它会讨论非域 Cookie。两种类型的cookie有什么区别?

3 个答案:

答案 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.comwww.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

希望这有帮助。