В чем разница между cookie и сеансом в django?

Я думаю, что они такие же, но мой босс говорит, что это неправильно. Может кто-нибудь объяснить разницу?

Ответы

Ответ 1

Файл cookie - это что-то, что находится на клиентском браузере и является просто ссылкой на Session, который по умолчанию хранится в вашей базе данных.

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

Это сильно отличается от прямого написания информации о файле cookie.

Пример:

httpresponse.set_cookie('logged_in_status', 'True')
# terrible idea: this cookie data is editable and lives on your client computer


request.session['logged_in_status'] = True
# good idea: this data is not accessible from outside. It in your database.

Ответ 2

Cookie не является технологией Django или Python. Файл cookie - это способ сохранения небольшого состояния в клиентском браузере. Он используется для дополнения (или взлома, в зависимости от вашей точки зрения) HTTP, который является протоколом без состояния. Здесь есть всевозможные ограничения, другие домены не могут читать ваши файлы cookie, вы можете хранить только несколько k данных (сколько зависит от браузера!) И т.д. И т.д.

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