Bezstanowy - program nie utrzymuje pamięci (stanu)
Stanowy - program ma pamięć (stan)
Aby zilustrować pojęcie stanu, zdefiniuję funkcję, która jest stanowa i taka, która jest bezpaństwowa
Bezpaństwowiec
//The state is derived by what is passed into the function
function int addOne(int number)
{
return number + 1;
}
Stanowy
//The state is maintained by the function
private int _number = 0; //initially zero
function int addOne()
{
_number++;
return _number;
}
Jak powiedzieli inni, http jest z natury bezpaństwowcem. Więc stan musi być wbudowany w twoje aplikacje.
Wyobraź sobie żądanie przez Internet, w którym przeglądarka klienta komunikuje się z procesem serwera. Aby utrzymać stan przez bezstanowy protokół HTTP, przeglądarka zazwyczaj wysyła identyfikator serwera do każdego żądania. Dla każdego żądania serwer będzie przypominał „ah, to ten facet”. Informacje o stanie można następnie wyszukać w pamięci po stronie serwera lub w bazie danych na podstawie tego identyfikatora sesji.
W środowisku czysto bezstanowym nie potrzebujesz tego identyfikatora sesji. Każde żądanie zawierałoby wszystkie informacje, które serwer musiałby przetworzyć. Ale wiele aplikacji musi utrzymywać stan, aby śledzić, czy sesja jest uwierzytelniana, aby wyświetlać określone treści lub śledzić to, co robi użytkownik. Nie chcesz wysyłać danych uwierzytelniających użytkownika za pośrednictwem drutu dla każdego żądania.