2008-12-11 2 views
138

Я тренируюсь в области разработки веб-сайтов и изучаю JSP & Сервлеты. Я знаю кое-что из HttpSession. Я использовал его в некоторых своих образцовых проектах.Различия между куки-файлами и сеансами?

В браузерах я видел вариант «удалить куки». Если я удалю файлы cookie, он также удалит HttpSession.

Являются ли файлы cookie и сеансы одинаковыми? Каковы различия между ними?

+0

Также см. Этот вопрос: В частности, замечания о подписанных файлах cookie. – 2008-12-11 14:09:34

+0

Я думаю, что второй ответ на этот вопрос более уместен. Если вы выберете это как лучший ответ, многие люди его прочтут. – 2017-12-29 03:12:22

ответ

167

Сессии - это файлы на стороне сервера, содержащие информацию о пользователе, а Cookies - файлы на стороне клиента, содержащие информацию о пользователе. Сеансы имеют уникальный идентификатор, который сопоставляет их определенным пользователям. Этот идентификатор может быть передан в URL или сохранен в файл cookie сеанса.

Большинство современных сайтов используют второй подход, сохраняя идентификатор в Cookie вместо того, чтобы передавать его по URL-адресу (что создает угрозу безопасности). Вероятно, вы используете этот подход, не зная об этом, и, удалив файлы cookie, вы удаляете их соответствующие сеансы, когда вы удаляете уникальный идентификатор сеанса, содержащийся в файлах cookie.

+6

"_passing в URL (что представляет угрозу безопасности)." Фактически оба подхода имеют риски безопасности (разные). _Secret-ID в URL_ можно сделать безопасным, если все сделано правильно, и если пользователь понимает, что URL-адрес является секретным и не может быть опубликован на открытом форуме. – curiousguy 2012-07-06 23:52:05

+0

«Идентификатор может быть передан по URL-адресу или сохранен в файл cookie сеанса». , Где? клиент или сервер? Благодарю вас за разъяснение. – 2014-11-16 11:55:09

1

Google JSESSIONID. Это объяснит, как API Сервлета первоначально использует повторную запись URL-адресов, а затем, если куки-файлы включены, файлы cookie для управления сеансами.

HTTP является апатридом, поэтому клиентский браузер должен отправлять идентификатор своего сеанса на сервер с каждым запросом. Сервер любыми способами использует этот идентификатор для извлечения любых данных для этого сеанса, что делает его доступным для срока службы запроса.

270

Куки - это просто короткая текстовая строка, которая отправляется туда и обратно между клиентом и сервером. Вы можете сохранить name=bob; password=asdfas в файле cookie и отправить его туда и обратно, чтобы идентифицировать клиента на стороне сервера. Вы могли бы подумать об этом как об обмене с банкоматом, у которого нет краткосрочной памяти, и вам нужно идентифицировать себя для каждой транзакции. Конечно, использование файла cookie для хранения такой информации ужасно небезопасно. Cookies также ограничены по размеру.

Теперь, когда банкомат знает о своей проблеме с памятью, он/она может записать вашу информацию на листе бумаги и присвоить вам короткий идентификационный номер. Затем вместо того, чтобы указывать номер вашей учетной записи и водительские права для каждой транзакции, вы можете просто сказать «я клиент 12»

Перевод этого веб-сервера: сервер сохранит соответствующую информацию в объекте сеанса и создаст идентификатор сеанса, который он отправит клиенту обратно в файл cookie. Когда клиент отправляет обратно файл cookie, сервер может просто искать объект сеанса с помощью идентификатора. Итак, если вы удалите файл cookie, сеанс будет потерян.

Еще одна альтернатива для использования сервером перезаписи URL для обмена идентификатором сеанса.

Предположим, вы имели связь - www.myserver.com/myApp.jsp Вы могли бы пройти через страницу и переписать все URL, как www.myserver.com/myApp.jsp?sessionID=asdf или даже www.myserver.com/asdf/myApp.jsp и обменивать идентификатор этого способа. Этот метод обрабатывается контейнером веб-приложения и обычно включается, устанавливая конфигурацию для использования сессий cookieless.

4

Куки-файлы и сеансы хранят информацию о пользователе (чтобы сделать HTTP-запрос завершенным), но разница в том, что файлы cookie хранятся на клиентской стороне (браузере) и сеансах хранят информацию на стороне сервера. Файл cookie ограничен в том смысле, что он хранит информацию об ограниченных пользователях и хранит только ограниченный контент для каждого пользователя. Сессия не ограничена таким образом.

0

сессия в Asp.net:

1.Maintains данные accross всего приложения.

2.Проверяет данные, если текущая сессия жива. Если нам нужны некоторые данные, доступные из нескольких контроллеров acitons и просмотров, сеанс является способом хранения и восстановления данных.

3.Sessions - это файлы на стороне сервера, содержащие информацию о пользователе. [Сессии - это уникальный идентификатор, который сопоставляет их определенным пользователям]

Перевод этого веб-сервера: сервер будет хранить соответствующую информацию в объекте сеанса и создать идентификатор сеанса, который он отправит клиенту в файл cookie , Когда клиент отправляет куки-файл, сервер может просто искать объект сеанса с помощью идентификатора. Итак, если вы удалите файл cookie, сеанс будет потерян.

0

Печенье хранятся в браузере в виде текстового файла format.It хранится предельное количество data.It только позволяет 4kb [4096bytes]. Переменная $ _ COOKIE не будет содержать несколько печенье с тем же именем

мы можем доступ к значениям куков в easily.So это менее безопасный .Отель SetCookie() функции должна появиться перед

<html> 

т аги.

Сессии хранятся на стороне сервера. Он хранит неограниченное количество данных. В сеансах хранится несколько переменных. мы не можем получить доступ к значениям cookie в easy.So это более безопасным.

Ссылки:difference-between-cookies-and-sessions

1

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

Сессия может быть определена как что-то между входом в систему и выходом из системы. время между входом пользователя и выходом из системы является сеансом. Сеанс сохраняет значения только для времени сеанса i.e перед выходом из системы. Сессии используются для отслеживания действий пользователя после его входа в систему.

0

Cookie - это способ реализации сеанса между клиентом и сервером, таким образом, информация о сеансе, хранящаяся в cookie. Но это не единственный способ сохранить информацию о сеансе, другим способом является информация о сеансе магазина в Url.

Смежные вопросы