我们在EC2中运行一个简单的服务。我们正在测试使用域名“.amazonaws.com”设置我们的cookie,但它无法正常工作。
正在设置Cookie和域名:
Content-Length:62
Date:Tue, 15 Apr 2014 10:26:55 GMT
Server:Apache-Coyote/1.1
Set-Cookie:test=alfie; Domain=.mycompany.com; Expires=Sun, 27-Apr-2014 00:13:35 GMT; Path=/
Set-Cookie:test2=alfie; Domain=.amazonaws.com; Expires=Sun, 27-Apr-2014 00:13:35 GMT; Path=/
如果我们要求使用xxxx.yyyy.mycompany.com,则Cookie会显示在参考资料(Chrome工具)中,并在下次请求时重新发送。
但是,如果我们要求使用主机xxxx.yyyy.amazonaws.com,则响应相同,但Cookie不会出现在Chrome工具中,也不会重新发送。
删除域(以便cookie使用完全限定的主机名)在两种情况下都能正常工作。
显然使用.amazonaws.com作为域名是一个坏主意,但我觉得它不起作用似乎很奇怪,因为它暗示这个限制是由Chrome以某种方式强制执行(和其他浏览器 - Firefox显示相同行为)。
或者它是我们缺少的基本东西?!
谢谢,Alfie。
答案 0 :(得分:6)
是。浏览器不允许您为他们认为是顶级域名的域设置cookie,例如您无法为.com设置cookie。
没有一条硬性规则可用于确定域名是否为顶级域名 - 这取决于他们允许注册的注册商,因此您只需要创建一个列表。
您可以在Firefox source code中看到Firefox认为是顶级域名的域名列表。除此之外还有一堆亚马逊相关的东西。