Я 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 для страницы из другого источника, даже если они оба были загружены в одно окно / вкладку.
Чтобы помочь вам более конкретно с вашим приложением, нам необходимо понять каждую часть состояния, которую вы хотите отслеживать, и для чего она использовалась. Только тогда мы можем предложить, какой механизм лучше всего подходит для его хранения.