Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 内部网域上的Cookie_Http_Cookies - Fatal编程技术网

Http 内部网域上的Cookie

Http 内部网域上的Cookie,http,cookies,Http,Cookies,我在办公室里有一台安装在防火墙后面的开发服务器。主机名是富兰克林。我们以科学家或发明家的名字命名所有服务器 设置HTTP cookie时: Set-Cookie: user=kenny; expires=1245424860.11; Path=/; domain=franklin 饼干没有凝固。我尝试了以下方法,但没有成功 .franklin .franklin.local franklin.local .franklin.localdomain franklin.localdomain

我在办公室里有一台安装在防火墙后面的开发服务器。主机名是富兰克林。我们以科学家或发明家的名字命名所有服务器

设置HTTP cookie时:

 Set-Cookie: user=kenny; expires=1245424860.11; Path=/; domain=franklin
饼干没有凝固。我尝试了以下方法,但没有成功

.franklin
.franklin.local
franklin.local
.franklin.localdomain
franklin.localdomain

我是否必须将主机名设置为其他名称,或者我可以通过一些我不知道的魔法设置此cookie?

您是否从正确的域设置cookie?您应该通过互联网访问该网站,否则它将无法工作(请参阅:同一原产地政策)。

说:

为了防止可能的安全或隐私侵犯,用户代理 拒绝cookie(不应存储其信息),如果 事实如下:

  • 域属性的值不包含嵌入的点或点 不是以点开始的
  • 请求主机的值与域不匹配 属性
而且:

域默认为请求主机

如果您的主机是富兰克林:

  • 域为.franklin的Cookie将被拒绝,因为它没有嵌入点
  • 域为.franklin.local的Cookie将被拒绝,因为它与服务器的实际主机名不匹配

解决方案是将主机名重命名为
franklin.local
franklin.
,并相应地设置cookie的
domain
属性(
domain=.franklin.
)。或者(正如您发现的那样),不要指定
域,让用户代理回退到请求主机。

奇怪的是,我删除了domain=franklin,它设置了cookie。使用firefox的web开发者工具栏,它说这个域名是franklin。不知道发生了什么,解释得很好!谢谢molf!