En informática, un protocolo sin estado (en inglés stateless protocol) es un protocolo de comunicaciones que trata cada petición como una transacción independiente que no tiene relación con cualquier solicitud anterior, de modo que la comunicación se compone de pares independientes de solicitud y respuesta. Un protocolo sin estado no requiere que el servidor retenga información de la sesión o de estado acerca de cada socio de las comunicaciones durante la duración de múltiples peticiones. En contraste, un protocolo que requiere el mantenimiento del estado interno en el servidor se conoce como un protocolo con estado.
Ejemplos de protocolos sin estado son el Internet Protocol (IP), que es la base para Internet, y el Hypertext Transfer Protocol (HTTP), que es la base de la comunicación de datos para la World Wide Web.
Ventajas y desventajas
El diseño sin estado simplifica el diseño del servidor porque no hay necesidad de asignar dinámicamente almacenamiento para tratar las conversaciones en curso. Si un cliente desaparece en medio de la transacción, ninguna parte del sistema tiene que ser responsable de limpiar el estado actual del servidor.
Una desventaja de los protocolos sin estado es que puede ser necesario incluir información adicional en cada petición, y esta información adicional necesitará ser interpretada por el servidor.
Ejemplos
Un ejemplo de un protocolo sin estado es HTTP.[1] El protocolo no proporciona medio alguno de almacenamiento de datos de un usuario entre las peticiones.
En contraste, un servidor FTP tradicional lleva a cabo una sesión interactiva con el usuario. Durante la sesión, al usuario se le proporciona un medio para autenticar y establecer diversas variables (directorio de trabajo, modo de transferencia), todas almacenadas en el servidor como parte del estado del usuario.
Apilamiento de capas de protocolos sin estado y con estado
Puede haber interacciones complejas entre los protocolos con estado y sin estado entre las diferentes capas de protocolos. Por ejemplo, HTTP es un ejemplo de un protocolo sin estado situado sobre TCP, un protocolo con estado, que está situado sobre IP, otro protocolo sin estado, que es encaminado en una red que emplea BGP, otro protocolo con estado, para dirigir los paquetes IP que circulan por la red.
Este apilamiento de capas continúa incluso por encima de HTTP. Como solución a la falta de una capa de sesión en HTTP, los servidores HTTP implementan varios métodos de gestión de sesiones,[2] típicamente utilizando un identificador único en una cookie o parámetro que permite al servidor rastrear las solicitudes procedentes de un mismo cliente, y creando así un protocolo con estado sobre HTTP.
Referencias
- ↑ http://www.w3.org/Protocols/rfc2616/rfc2616.html
- ↑ «session management methods reviewed». C cookie bits. Toronto. Archivado desde el original el 13 de agosto de 2011. Consultado el 12 de abril de 2011. «The following material is intended to introduce the reader to the various techniques that developers have used to implement session tracking on the Web. The main operational characteristics of each method are mentioned in addition to the shortcomings that have been observed in usage. Additional information on session management can be found by searching the Internet. […]».