2012-10-01 78 views
0

可能重复:
Is it possible to know if browser has cookies enabled on the very first access发现如果浏览器支持在服务器端的cookie

我使用的HttpOnly使用在客户端的JavaScript这是无法访问的cookie。 我希望了解浏览器是否仅在第一个请求中支持cookie。 是否有可能从http请求中获取此信息?

+0

你在服务器上使用了什么技术? – 2012-10-01 08:54:37

+0

Enterprise Java – Shurmajee

+1

你使用servlets,JSP,JAX-RS,JAX-WS,...吗? – 2012-10-01 08:56:56

回答

0

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

尽管您可以在第一个请求中发送HTTP cookie,并在第二次检查cookie是否已保存。但请注意,这并不能保证cookie的到期时间设置已被接受。

因此,例如,您希望存储一年的HTTP cookie,但客户端只接受会话cookie。在这种情况下,在第二个请求中,您将看到您的cookie,但如果用户关闭了浏览器,则在接下来的请求中将不会有cookie。

3

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

+0

+1为重定向。 –

+0

但我想知道它在第一次访问。 得到了答案。不可能 – Shurmajee

+0

在第一个请求中找不到方法,唯一可以做的是假设客户端接受基于用户代理的Cookie,因此可以丢弃某些客户端,例如搜寻器,但这并不能保证任何内容。 – 2012-10-01 09:04:57

0

在第一次初始联系(像用户之前从未访问您的网站或清除所有cookie) - 不。但是,如果您发送带有第一个响应的cookie,则会分析该cookie是否与下一个请求一起返回。如果用户最近访问了您的网站并启用了Cookie,那么您可以在本次会话中通过第一次请求检测到它。

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