Безгражданство в REST, в частности относится к информативности сообщений.
Это означает, что каждый запрос должен содержать всю информацию, необходимую серверу для обработки сообщения. Запрос не может ссылаться на предыдущие запросы для контекста. В связанном документе (диссертация Филдинга, происхождение REST) достаточно подробно описывается почему это ограничение полезно для распределенных систем.
Таким образом, в конце концов, не имеет значения, находится ли что-то в базе данных или в памяти на сервере, клиент не должен полагаться на ранее установленное состояние диалога для последующих запросов.
Думайте об этом следующим образом: клиент может отложить свои следующие запросы на несколько дней, или клиент может выполнить запрос из какой-либо формы закладок, или запрос может перейти на сервер, отличный от всех предыдущих запросов. Или это может быть первый запрос клиента. Это все должно работать точно так же.
Другим важным моментом является то, что «состояние сеанса» отличается от связанных с бизнесом вещей, хранящихся в базах данных (на которые вы, похоже, ссылаетесь). Конечно, сервер может хранить связанные с бизнесом вещи в своей базе данных, он может даже сохранять или кэшировать (в памяти) данные для входа или состояние разговора, если он этого хочет, это все нормально. Однако клиент и сервер могут не делать «обогащать» запрос контекстом предыдущих запросов.
Таким образом, клиент может запросить выполнение запроса к некоторой базе данных, которая, очевидно, имеет некоторое «состояние». Чего он не может сделать, так это сказать: выполнить этот запрос с дополнительными параметрами (такими как логин), указанными в каком-то предыдущем запросе, который я сделал.
Эта строка может размыться в некоторых случаях, например, когда сервер позволяет создавать «транзакции» для клиентов в качестве ресурсов. Но если вы сомневаетесь, всегда знаете , почему вам нужно это свойство и какое значение вы хотите получить от него в вашей конкретной архитектуре.