为什么没有`Set-Cookie`标题作为回应?

时间:2011-04-08 08:51:40

标签: curl httpresponse setcookie chunked

我发现有时浏览器无法从我的网站上获取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)

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

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。为什么他们的回答不同?哪里错了?以及如何解决它?

1 个答案:

答案 0 :(得分:6)

可能已经设置了Cookie,因此响应标头中不会包含Set-Cookie

查看请求标题的内容:

您可以使用Wireshark进行网络嗅探。另一个很棒的工具是FireBug插件:它允许你检查,设置和删除cookie。

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