Как новичок в JSP, я заметил, что мы можем хранить любое значение внутри сеанса , тогда как cookie может иметь значение только типа String. Мне это показалось странным, потому что что, если кто-то захочет сохранить в Cookie тип, отличный от String?

  • Сессия:

setAttribute (имя строки, значение объекта)

Привязывает объект к этому сеансу, используя указанное имя.

  • Cookie:

Cookie (имя строки, значение строки)

Создает cookie с указанным именем и значением.

Может ли кто-нибудь из сообщества помочь мне понять это? Почему мы не можем хранить внутри Cookie ничего, кроме String, а можем внутри меток сеанса?

Или с другой точки зрения, почему cookie должен содержать только строковое значение?

3
Stefan 5 Дек 2020 в 03:58

1 ответ

Лучший ответ

Поскольку файл cookie указан в RFC 6265 для хранения буквальных строковых значений, которые веб-браузер отправляет как часть заголовка HTTP-запроса.

Из связанного RFC,

cookie-header = "Cookie:" OWS cookie-string OWS
cookie-string = cookie-pair *( ";" SP cookie-pair )

Файлы cookie tl; dr являются частью (и определяются) веб-протоколами (не Java).

4
Elliott Frisch 5 Дек 2020 в 01:07