Sin estado: el programa no mantiene memoria (estado)
Con estado: el programa tiene una memoria (estado)
Para ilustrar el concepto de estado, definiré una función con estado y otra sin estado.
Apátrida
//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;
}
Como otros han dicho, http es inherentemente sin estado. Por lo tanto, el estado debe integrarse en sus aplicaciones.
Imagine una solicitud en la web donde tiene un navegador cliente que se comunica con un proceso de servidor. Para mantener el estado sobre el protocolo http sin estado, el navegador generalmente enviará un identificador de sesión al servidor en cada solicitud. Para cada solicitud, el servidor será como "ah, es este tipo". La información de estado se puede buscar en la memoria del lado del servidor o en una base de datos basada en esta identificación de sesión.
En un entorno puramente sin estado, no necesitaría esta identificación de sesión. Cada solicitud contendría toda la información que el servidor necesitaría procesar. Pero muchas aplicaciones necesitan mantener el estado para realizar un seguimiento de si una sesión está autenticada o no para ver cierto contenido o para realizar un seguimiento de lo que está haciendo un usuario. No querrá enviar credenciales de usuario por cable para cada solicitud.