Why no `Set-Cookie` headers in response?

浪子不回头ぞ 提交于 2019-12-12 21:09:40

问题


I found sometimes browser can't get cookies from my website, so I use curl to check the headers, and the information is:

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)

But when I use browsers IE6 and Firefox to visit, the headers are:

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

You can see there is no Set-Cookie header, which makes problems. My server is Jetty 6.1.26. Why they are different responses? Where is wrong? And how to fix it?


回答1:


It could be that the cookie was already set and thus the Set-Cookie will not be included on the Response header.

See what the Request header looks like:

You can do this with network sniffing using Wireshark. Another great tool for this is the FireBug plugin: It allows you to check, set and delete cookies.

The final point is that your server controls the Set-Cookie header: If the browser does not provide the Cookie header, the server can decide to send a Set-Cookie. Then your browser decides to accept the by sending back a Cookie header for the server to use. If you have cookies disabled on the browser, it will not send back the Cookie header to the server.



来源:https://stackoverflow.com/questions/5592726/why-no-set-cookie-headers-in-response

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!