2

我正在阅读MDC 条目nsICookieManager2.add,它讨论了非域cookie。这两种 cookie 有什么区别?

4

3 回答 3

6

来自 RFC2109:

如果 [...] A 是 FQDN 字符串并具有 NB 形式,则主机 A 的名称域与主机 B 匹配,其中 N 是非空名称字符串,B 具有 .B' 形式,B' 是 FQDN 字符串. (因此,xycom 域匹配 .y.com 而不是 y.com。)

所以,如果我理解正确的话,域 cookie 有一个域.y.com,而非域 cookie 有一个域,如x.y.com. 域 cookie 对所有子域可见,非域 cookie 仅对其特定子域可见。

带有域的 cookie.y.com在访问像www.y.comtest.y.com(但不是y.com)这样的子域时可见,而带有域的 cookiex.y.com仅在访问子域x.y.com而不是任何其他子域时可见。

于 2009-11-05T10:36:43.160 回答
2

查看 RFC,如果在创建 cookie 时未指定域,则将应用来自请求主机的域。因此,来自 www.foo.com 的未指定域的请求将在域中包含 www.foo.com。

但是,您可能希望明确设置域以跨各种子域使用 cookie。将 cookie 域设置为 foo.com 将允许您在 www.foo.com 或 help.foo.com 或 *.foo.com 上访问它。在您可能托管的应用程序周围传递一些状态时,这非常有用。

于 2009-11-05T11:04:50.770 回答
0

据我了解,非域 cookie 没有任何意义。Cookie 始终与域相关联,只有该域的 cookie 才会传递给应用程序并可以使用。但是,是的,我们可以通过一些技术创建跨域 cookie。这是一个解释这一点的教程。我不知道您是否在项目中使用 php,因为本教程使用 php 解释了这个概念。

http://www.tutorialized.com/view/tutorial/Implementing-Cross-Domain-Cookies/372

希望这可以帮助。

于 2009-11-05T10:26:29.597 回答