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

当我设置HTTP Cookie时:

 Set-Cookie: user=kenny; expires=1245424860.11; Path=/; domain=franklin

Cookie未设置。我没有运气就尝试了以下方法。
.franklin
.franklin.local
franklin.local
.franklin.localdomain
franklin.localdomain

我是否必须将主机名设置为其他名称,还是可以通过尚不知道的魔术来设置此Cookie?

最佳答案

RFC 2109说:



并且:



如果您的主机是franklin:

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

  • 解决方案是将您的主机名重命名为franklin.localfranklin.<tld>,并相应地设置cookie的domain属性(domain=.franklin.<tld>)。或者(如您所知),不指定domain,而让用户代理回退到请求主机。

    10-06 05:18