用例:我们有两个服务分别在sender.something.com
和receiver.something.com
上运行,并且将cookie从sender
发送到receiver
。
根据RFC6265,这是不可能的,因为:
从foo.example.com开始,[...]用户代理将不接受Domain属性为“ bar.example.com”或“ baz.foo.example.com”的cookie
但是,
用户代理将接受来自foo.example.com的Domain属性为“ example.com”或“ foo.example.com”的cookie
...,因此它将接受来自something.com
的域为sender.something.com
的cookie。还有,
如果“域”属性的值为“ example.com”,则在向example.com,www.example.com和www.corp.example发出HTTP请求时,用户代理会将cookie包含在Cookie标头中。 com
...,因此它将在对something.com
的请求中包含我们的cookie(域设置为receiver.something.com
)。
这听起来像是“除非将cookie发送到 all 个子域,否则它将不会接受从一个子域到另一个子域的cookie” ...但是我不明白为什么这会成为问题,如果我们想将Cookie从一个子域发送到另一个子域...
我缺少任何内容吗,或者RFC中是否存在不一致之处?
This answer解释了cookie域,但没有解释这种特殊情况...