【问题标题】:Finding out if browser supports cookies on the server side [duplicate]查明浏览器是否支持服务器端的 cookie [重复]
【发布时间】:2012-10-01 16:59:57
【问题描述】:

可能重复:
Is it possible to know if browser has cookies enabled on the very first access

我正在使用无法在客户端使用 javascript 访问的 HttpOnly cookie。 我想知道浏览器是否仅在第一个请求中支持 cookie。 是否可以从 http 请求中获取这些信息?

【问题讨论】:

标签: java http cookies


【解决方案1】:

您需要来自浏览器的两个请求,一个用于设置测试 cookie,另一个用于读取它,但如果第一个请求返回重定向,则可以自动执行第二个请求。

【讨论】:

  • 但我想在第一次访问时就知道它。得到了答案。这是不可能的
  • 没有办法在第一个请求中弄清楚,你唯一能做的就是假设客户端接受基于用户代理的 cookie,所以你可以丢弃某些客户端,比如爬虫,但这确实不保证任何事情。
【解决方案2】:

如果您想通过一个请求从服务器端决定实际客户端是否支持 HTTP cookie 保存,那么很遗憾,答案是否定的,您不能。

虽然您可以在第一个请求中发送 HTTP cookie,然后在第二个请求中检查 cookie 是否已保存。但请注意,这并不能保证 cookie 的过期设置是否已被接受。

例如,您想存储一个 HTTP cookie 一年,但客户端只接受会话 cookie。在这种情况下,在第二个请求中你会看到你的 cookie,但是如果用户关闭他的浏览器,下一个请求中将没有 cookie。

【讨论】:

    【解决方案3】:

    在第一次初次接触时(例如用户之前从未访问过您的网站或清除了所有 cookie) - 没有。但是,如果您发送带有第一个响应的 cookie,那么您会分析 cookie 是否在下一个请求中返回。如果用户最近访问了您的网站并且启用了 cookie,那么您可以通过此会话中的第一个请求来检测它。

    一般来说,下一个请求是任何请求 - 它可以是第一个请求加载的内容所引用的图像或 css 文件。

    【讨论】:

      猜你喜欢
      • 2015-06-21
      • 2011-03-11
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      相关资源
      最近更新 更多