Сомнения относительно сеанса на стороне сервера с использованием кэширования или сеансов на основе файлов cookie - PullRequest
4 голосов
/ 20 января 2012

Я довольно новичок в веб-разработке. Я работаю с Flask, Sqlalchemy и Postgresql.

Насколько я понял, каждый новый запрос похож на новый поток программы. Создается новый сеанс sqlalchemy, с помощью которого мы управляем нашими операциями с БД и возвращаем ответ. После этого новый поток также закрывается и соединения возвращаются в пул.

Я вхожу в систему и получаю все пользовательские данные в пользовательском объекте orm. Я сохранил его в переменной сессии фляги, которая использует cookie. Теперь я также хочу сохранить некоторые другие пользовательские данные для всего сеанса пользователя, а не для запроса. Я сомневаюсь, что храню все эти данные в cookie-файлах по двум причинам:

1. Unnecessary data travel back and forth.
2. data can be read easily.

Мои сомнения верны?

Итак, мои другие вопросы:

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

  2. Альтернативой сеансу на основе файлов cookie является сеанс на стороне сервера, который можно выполнить с помощью redis или memcache. Откуда берется библиотека Beaker? Это отдельная вещь или для использования вместе с Redis или Memcache?

1 Ответ

1 голос
/ 24 июля 2012

Большинство браузеров поддерживают файлы cookie размером до 4096 байт.( Source )

Если вы хотите сохранить больше, чем это, вам следует использовать серверный серверный бэкэнд, такой как Redis или Memcache.Очень просто заменить стандартный интерфейс сеанса файлов cookie Flask интерфейсом Redis или Memcache.Существует отличный фрагмент для redis от Armin.Если вы предпочитаете memcache, вы можете заменить содержимое redis во фрагменте теми же методами memcache.;)

...