Почему в ответе нет заголовков `Set-Cookie`? - PullRequest
1 голос
/ 08 апреля 2011

Я обнаружил, что иногда браузер не может получить куки с моего сайта, поэтому я использую 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.Почему у них разные ответы?Где не так?И как это исправить?

1 Ответ

6 голосов
/ 08 апреля 2011

Возможно, файл cookie уже установлен и, следовательно, Set-Cookie не будет включен в заголовок Response .

Посмотрите, как выглядит заголовок Request :

Вы можете сделать это с помощью сниффинга в сети, используя Wireshark .Еще одним отличным инструментом для этого является плагин FireBug : он позволяет вам проверять, устанавливать и удалять файлы cookie.

И наконец, ваш сервер контролирует заголовок Set-Cookie: если браузерне предоставляет заголовок Cookie, сервер может решить отправить Set-Cookie.Затем ваш браузер решит принять его, отправив обратно заголовок Cookie для использования сервером.Если в браузере отключены файлы cookie, он не будет отправлять заголовок Cookie на сервер.

...