Ложки нет.
Не думайте о безгражданстве, как "отправка всех ваших материалов на сервер снова и снова".Ни за что.Всегда будет состояние - сама база данных - это, в конце концов, своего рода состояние, вы являетесь зарегистрированным пользователем, поэтому любой набор информации на стороне клиента не будет действителен без стороны сервера.Технически, вы никогда не будете действительно без гражданства.
Слово о входе в систему каждый раз Дебаты
Что это даже значит не хранитьсеанс и вход в систему каждый раз?Некоторые означают «отправлять пароль каждый раз», это просто глупо.Некоторые говорят: «Нет, конечно, нет, отправьте вместо этого токен » - и вот, PHP-сессия делает это почти точно.Он отправляет идентификатор сеанса , который является своего рода токеном , и помогает вам получить доступ к своим личным материалам без повторной отправки u / pw каждый раз.Это также довольно надежно и хорошо проверено.И да, удобно, что может превратиться в недостаток, см. Следующий абзац.
Сокращение площади
То, что вы должны сделать , вместо этого, и что имеет реальный смысл, так этоуменьшите ваш веб-сервер до минимума.Такие языки, как PHP, очень просто помещают все в хранилище сессий;Вы можете сделать это, но если у вас много веб-серверов, они должны использовать что-то общее между ними (NFS, Redis, Memcached, что-то), чтобы ваш следующий запрос знал, что вы сделали одним кликом ранее.Это связано с балансировкой нагрузки - вы можете оказаться на другом веб-сервере со своим следующим запросом.И хотя между ними ОБЯЗАТЕЛЬНО должно быть общее хранилище (в основном потому, что им придется определять, вошли вы в систему или нет), вы не должны использовать его в качестве альтернативной базы данных.Это не для этого.
То есть вы говорите, что хранилище сеансов должно быть минимальным?
Опять же, это ваше решение.Вы можете хранить вещи там из соображений производительности (база данных почти всегда медленнее, чем Redis), вы можете хранить информацию избыточно, реализовывать собственное кэширование, что угодно - просто имейте в виду, что веб-серверы будут иметь большую нагрузку, если вы храните много мусорана них.Кроме того, если они сломаются под большими нагрузками (и они будут), вы потеряете ценную информацию;При REST-способе мышления все, что происходит в этом случае, это то, что клиент снова отправляет тот же (!) запрос, и на этот раз он обслуживается.
Как это сделать правильно?
Здесь нет универсального решения.Я бы сказал, выбрать уровень безгражданства и пойти с этим.Одни сеансы могут быть любимыми и ненавистными для других, но они никуда не денутся.С каждым запросом отправляйте столько информации, сколько имеет смысл, чуть больше, возможно;но не интерпретируйте безгражданство как отсутствие сеанса или вход в систему каждый раз. Каким-то образом сервер должен знать, что это вы ;Идентификаторы сессий PHP - это один хороший способ, токены, созданные вручную, - другой.
Думайте и решайте, не позволяйте тенденциям дизайна думать за вас.