Stateless - нет памяти (состояния), которая поддерживается программой
Stateful - программа имеет память (состояние)
Чтобы проиллюстрировать концепцию состояния, я определю функцию с состоянием и функцию без состояния
Stateless
//The state is derived by what is passed into the function
function int addOne(int number)
{
return number + 1;
}
Stateful
//The state is maintained by the function
private int _number = 0; //initially zero
function int addOne()
{
_number++;
return _number;
}
Как уже говорили другие, http по своей сути не имеет состояния. Таким образом, государство должно быть встроено в ваши приложения.
Представьте себе запрос через Интернет, где у вас есть клиентский браузер, взаимодействующий с процессом сервера. Чтобы поддерживать состояние по протоколу HTTP без сохранения состояния, браузер обычно отправляет на сервер идентификатор сеанса при каждом запросе. Для каждого запроса сервер будет выглядеть как «ах, этот парень». Информация о состоянии затем может быть найдена в памяти на стороне сервера или в базе данных на основе этого идентификатора сеанса.
В среде без состояния вам не понадобится этот идентификатор сеанса. Каждый запрос будет содержать всю информацию, необходимую серверу для обработки. Но многим приложениям необходимо поддерживать состояние, чтобы отслеживать, аутентифицирован ли сеанс для просмотра определенного контента или для отслеживания действий пользователя. Вы не хотите отправлять учетные данные пользователя по проводам для каждого запроса.