4

我发现有时浏览器无法从我的网站获取 cookie,所以我使用curl检查标题,信息是:

C:\Documents and Settings\jack>curl http://localhost -I
HTTP/1.1 200 OK
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Set-Cookie: SCALAEYE_SESSION="a57cf8ebdfc379da91ad17d1d1eac706c25ae4c3-%3Citems%3E%3C%2Fitems%3E";Path=/
Set-Cookie: SCALAEYE_FLASH="%3Citems%3E%3C%2Fitems%3E";Path=/
Content-Length: 121665
Server: Jetty(6.1.26)

但是当我使用浏览器IE6访问Firefox时,标题是:

Response Headersview source
Date    Fri, 08 Apr 2011 08:48:09 GMT
Transfer-Encoding   chunked
Server  Jetty(6.1.26)

您可以看到没有Set-Cookie标题,这会产生问题。我的服务器是Jetty 6.1.26. 为什么他们是不同的反应?哪里错了?以及如何解决?

4

1 回答 1

7

可能是 cookie 已经设置,因此Set-Cookie不会包含在Response标头中。

查看Request标头的样子:

您可以使用Wireshark通过网络嗅探来做到这一点。另一个很好的工具是FireBug插件:它允许您检查、设置和删除 cookie。

最后一点是您的服务器控制Set-Cookie标头:如果浏览器不提供Cookie标头,服务器可以决定发送一个Set-Cookie. 然后,您的浏览器决定通过发回Cookie供服务器使用的标头来接受。如果您在浏览器上禁用了 Cookie,它不会将 Cookie 标头发送回服务器。

于 2011-04-08T10:17:29.647 回答