Express Js: требование против кулинарии ie против локального хранилища против хранилища сеансов - PullRequest
0 голосов
/ 04 февраля 2020

Я новичок в Express JS и интерфейсе. Я занимаюсь разработкой приложения, использующего req.session для поддержки пользовательского сеанса и локального хранилища для хранения некоторой другой временной информации.

Я видел различные статьи о различиях между вышеупомянутыми, но мне все еще неясно, какой из них используется когда и как долго каждый из них сохраняется.

По мне:

1.req.session: сервер поддерживает этот сеанс. Это очищается, когда пользователь очищает файлы cookie.

2.cookies: файлы cookie отправляются на сервер для проверки подлинности

3. локальное хранилище: сохраняется до тех пор, пока пользователь не удалит файлы cookie?

хранилище сеансов: поддерживается браузером и сохраняется для одной вкладки.

Ответы [ 3 ]

1 голос
/ 04 февраля 2020

Все различного типа storage mechanisms обычно используются в web application development.

Но Дело в том, чтобы выбрать правильный.


Короче говоря

Cookie Storage

Cook ie - это механизм хранения в браузере, но может получать доступ со стороны сервера через запрос. Разработчики используют файлы cookie для хранения данных, которые должны быть доступны с сервера и клиента.

Пример: токены аутентификации, аналитические данные

Session

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

Данные в сеансе будут уничтожены при закрытии сеанса.

Local Storage

Локальное хранилище похоже на Cook ie НО мы не можем получить доступ с сервера, мы можем хранить гораздо больше данных, чем файлы cookie, и срок их действия не истечет, если мы не очистим их.

Файлы cookie - 4 КБ и локальное хранилище - 5 МБ

Session Storage

Сеансовое хранилище аналогично локальному хранилищу. Но единственное отличие состоит в том, что локальное хранилище не истекает , но Сеансовое хранилище будет уничтожено по окончании сеанса страницы. Хранилище сессий хранит разные сессии на странице (вкладки)

1 голос
/ 04 февраля 2020

Я go рассмотрю каждый из ваших пунктов и обсуду их ...

1) req.session: Сервер поддерживает этот сеанс. Это очищается, когда пользователь очищает куки.

Если вы храните это в постоянном хранилище (хранилище данных на диске), вы можете сохранять это состояние так долго, как захотите. Сервер потеряет учетную запись клиента, которой он соответствует, когда пользователь очищает свои куки. В зависимости от того, как вы управляете своим постоянным пользовательским хранилищем, вы можете перестроить предыдущий объект сеанса, когда пользователь снова войдет в систему (что позволяет вам использовать их ИД пользователя, чтобы найти их постоянное состояние в вашей базе данных, создать новый сеанс приготовления * 1043). *, создайте из него новый объект сеанса и повторно подключите этот браузер к новому объекту сеанса).

2) файлы cookie: Файлы cookie отправляются на сервер для поддержки аутентификации

Это чрезмерное упрощение использования куки. Файлы cookie позволяют серверу устанавливать в браузере пользователя определенное состояние, которое будет возвращаться на сервер при каждом запросе от указанного браузера c. Файлы cookie часто используются для отслеживания аутентифицированного клиента и часто используются для хранения ключа к объекту сеанса на стороне сервера. Существуют тысячи других файлов cookie, которые также могут быть использованы (настройки сайта пользователя, идентификаторы отслеживания, другое состояние пользователя и т. Д. c ...).

3) локальное хранилище: Это сохраняется до тех пор, пока пользователь не удалит куки?

Локальное хранилище браузера не имеет никакого отношения к куки. Это отдельное локальное хранилище данных в браузере, которое доступно только на стороне клиента Javascript на веб-странице. Удаление куки не имеет ничего общего с удалением локального хранилища. Это отдельные элементы, которые могут быть сохранены или удалены отдельно. Сервер вообще не имеет доступа к локальному хранилищу. Кроме того, локальное хранилище сегментировано таким образом, что Javascript на страницах с другого сайта невозможно получить доступ к значениям локального хранилища из одного веб-сайта.

4) хранилище сеансов: Это поддерживается браузером и сохраняется для одной вкладки.

Не совсем понятно, что вы подразумеваете под «хранением сессии». Существуют «сеансовые куки», которые специально создаются при создании так, чтобы они сохранялись только во время работы данного браузера. Если браузер существует, а затем через некоторое время перезапускается, любые файлы cookie сеанса будут удалены. Как правило, они предназначены для краткосрочных файлов cookie, а не для того, чтобы сохраняться за пределами того, что в данный момент делает пользователь.

Еще одна возможная вещь, которую вы могли бы иметь в виду под хранилищем сеансов, это долговременное постоянное хранилище на сервере (обычно в база данных на диске) для различных пользовательских свойств или состояния, которое вы хотите сохранить в течение длительного времени. Представьте, что пользователь заполняет корзину покупок, и вы хотите, чтобы они могли хранить эту корзину неопределенно долго при перемещении с устройства на устройство и при добавлении / удалении товаров из нее в течение значительного периода времени. Для таких типов вещей вы обычно не будете полагаться на объект сеанса, чтобы отслеживать их, но будете использовать базу данных в качестве основного источника этих данных. Возможно, некоторое подмножество данных, над которыми в настоящее время работают, может быть кэшировано в объекте сеанса на стороне сервера, но это будет сделано только для удобства, а не в качестве долгосрочного хранилища для него.

Или, возможно, вы имели в виду Window.sessionStorage в браузере. Это работает как localStorage, но сохраняется только на время открытия браузера (аналогично времени жизни файлов cookie сеанса) и в отличие от localStorage, каждая вкладка или окно имеет свой собственный sessionStorage. Как и localStorage, каждый источник имеет свой собственный sessionStorage. Некоторые страницы из одного источника не могут получить доступ к sessionStorage для страницы из другого источника, даже если они оба были загружены в одно окно / вкладку.


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

0 голосов
/ 04 февраля 2020

req.session Когда пользователь посещает сайт, он создает для него новый объект сеанса и назначает ему повара ie. Всякий раз, когда пользовательский запрос от того же клиента снова проверяется, повар ie проверяется, отправляется на сервер для обработки, и сохраняемая информация сеанса обновляется.

Разница между файлами cookie, локальным хранилищем (LS) и сеансом Хранилище (SS) выглядит следующим образом.

  1. Cookies обрабатываются на стороне сервера, а данные LS и SS никогда не отправляются на сервер. Они хранятся локально.
  2. Емкость Cook-файла ie составляет максимум 4 КБ, а для LS и SS - более 5 МБ.
  3. Файлы cookie в основном хранят только идентификатор сеанса. Хотя LS и SS могут хранить больше информации, например, информацию о пользователе или историю просмотра страниц.
  4. SS очищается, когда пользователь закрывает вкладку (сессия заканчивается). Хотя файлы cookie можно удалить, очистив файлы cookie, а LS можно очистить, удалив кэш браузера.

Я обновлю ответ, если запомнил что-нибудь еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...