【问题标题】:Difference between http://example.com and http://www.example.com?http://example.com 和 http://www.example.com 的区别?
【发布时间】:2009-09-10 20:55:23
【问题描述】:

对于会话和 cookie,example.com 和 www.example.com 之间有区别吗?

我的 Web 应用程序有一个非常奇怪的问题

privat 网络是:private.example.com 公共网站是:example.com

由于我无法控制的某些原因,www.example.com 总是被重定向到 example.com 我猜这是服务器上的设置。

问题是当我登录到管理控制台并打开一个新选项卡并请求公共站点时,登录会话丢失了。

这只发生在 IE 7 中

经过一番挖掘,我找到了这个网站:

http://blogs.msdn.com/ieinternals/archive/2009/08/20/WinINET-IE-Cookie-Internals-FAQ.aspx

见第三季度

我访问公共站点时是否会删除admin(private.example.com)中设置的会话?由于服务器将我重定向到 example.com?

我认为我们在设置cookie(Java)时没有指定域部分

正如我所说,这只发生在 XP SP3 和 IE7 上

谁能帮助我,或者纠正我对 IE 东西的理解。

【问题讨论】:

  • 它是什么类型的重定向 - 301 或 302?
  • 我想补充一点,这适用于另一个安装。我不确定应用服务器是否有任何不同,除了此安装在使用 www 时不会将我重定向到 domain.com

标签: internet-explorer cookies dns


【解决方案1】:

是的,cookie 是特定于域甚至子域的。所以这就是问题所在。为了保持一致性,我会尝试找到一种方法将其保留在同一个子域中。

您说从 www.yourdomain.com 到 yourdomain.com 的重定向不在您的控制范围内。那是因为您无权访问服务器吗?如果是这样,你可以从另一个角度攻击它。您可以设置全局 301 重定向规则,而不是阻止重定向,这样访问 www.yourdomain.com 的每个用户都会立即重定向到 yourdomain.com(有点像 StackOverflow.com)。这样,它在网站的每个页面上都保持一致。

有许多不同的方法可以实现这一点。但是,如果您碰巧使用的是 .NET,请参阅我对这个问题的回答: Setting up HTTP Redirect for SEO in IIS7

这是一个纯 .NET 代码解决方案,不需要额外的模块,因此即使您无权访问服务器,它也可以工作。实际上,该答案适用于相反的情况(非 www 到 www),但它可以很容易地针对此任务进行修改。

【讨论】:

  • 是的,系统管理员正在将domain.com 重定向到domain.com,它现在正在工作。我们将更新代码以添加域属性。
  • 即使这里有多个缺陷,有趣的是只有 IE 7 失败了。
  • 我不知道为什么只有 IE7 失败了。但我很高兴这对你有用。
  • 我认为答案在问题中提到的msdn博客中
【解决方案2】:

Cookie 在创建时始终设置在子域上,而不是域本身上。您必须专门设置 cookie 以在创建时指向 example.com。我们在 admin.example.com 和 Dealer.example.com 登录 cookie 上遇到了同样的问题。

【讨论】:

    【解决方案3】:

    在 cookie 方面,域和子域相互独立。我会检查您的 DNS 记录以查看您的 A 记录实际指向的位置,然后查看您的网络服务器以了解如何解释子域。有时服务器被配置为将子域视为 url 重定向,尤其是在大型托管解决方案中。

    您可能还想检查 ASP 属性 'Response.Cookies("UID").Domain' 的 Java 等效项是否设置在沿线某处。

    【讨论】:

      【解决方案4】:

      如果您为 example.com 设置了 cookie,则应将其发送到 www.example.com 和 private.example.com,但如果您为 private.example.com 设置 cookie,则不应将其发送到 example.com .一些网站将所有 cookie 设置为针对 www.example.com 并提供来自 static.example.com 或其他域的静态内容,因此 cookie 不会与静态内容请求一起不必要地发送。

      另见http://developer.yahoo.com/performance/rules.html#cookie_free

      【讨论】:

      • 你确定吗?为子域发送 cookie 将是一个安全漏洞,因为没有任何内容表明子域由相同的权限控制。
      • 顺便说一句,RFC 2109(而不是 RFC 2019)已被 RFC 2965 取代。
      猜你喜欢
      • 1970-01-01
      • 2016-01-16
      • 2012-12-07
      • 1970-01-01
      • 2014-03-04
      • 2018-12-31
      • 2020-09-24
      • 1970-01-01
      • 2019-10-18
      相关资源
      最近更新 更多