De Wikipedia, la enciclopedia libre
Ir a navegaciónSaltar a buscar

Un protocolo sin estado es un protocolo de comunicación en el que el receptor no debe retener el estado de la sesión de solicitudes anteriores. El remitente transfiere el estado de sesión relevante al receptor de tal manera que cada solicitud puede entenderse de forma aislada, es decir, sin referencia al estado de la sesión de solicitudes anteriores retenidas por el receptor. [1]

Por el contrario, un protocolo con estado es un protocolo de comunicación en el que el receptor puede retener el estado de la sesión de solicitudes anteriores.

En las redes informáticas , los ejemplos de protocolos sin estado incluyen el Protocolo de Internet (IP), que es la base de Internet , y el Protocolo de transferencia de hipertexto (HTTP), que es la base de la World Wide Web . Los ejemplos de protocolos con estado incluyen el Protocolo de control de transmisión (TCP) y el Protocolo de transferencia de archivos (FTP).

Los protocolos sin estado mejoran las propiedades de visibilidad, confiabilidad y escalabilidad. La visibilidad mejora porque un sistema de monitoreo no tiene que mirar más allá de una sola solicitud para determinar su naturaleza completa. Se mejora la confiabilidad porque facilita la tarea de recuperarse de fallas parciales. La escalabilidad se mejora porque no tener que almacenar el estado de la sesión entre las solicitudes permite que el servidor libere recursos rápidamente y simplifica aún más la implementación.

La desventaja de los protocolos sin estado es que pueden disminuir el rendimiento de la red al aumentar los datos repetitivos enviados en una serie de solicitudes, ya que esos datos no pueden dejarse en el servidor y reutilizarse.

Ejemplos

Un servidor HTTP puede comprender cada solicitud de forma aislada. [2]

Compare esto con un servidor FTP tradicional que realiza una sesión interactiva con el usuario. Durante la sesión, se proporciona al usuario un medio para autenticarse y establecer varias variables (directorio de trabajo, modo de transferencia), todas almacenadas en el servidor como parte del estado de la sesión.

Apilamiento de capas de protocolo sin estado y con estado

Puede haber interacciones complejas entre protocolos con estado y sin estado entre diferentes capas de protocolo. Por ejemplo, HTTP, un protocolo sin estado, se superpone a TCP , un protocolo con estado, que se superpone a IP , otro protocolo sin estado, que se enruta en una red que emplea BGP , otro protocolo con estado, para dirigir la IP. paquetes que viajan en la red.

Este apilamiento de capas continúa incluso por encima de HTTP. Como solución para la falta de un estado de sesión retenido, los servidores HTTP implementan varios métodos de administración de sesiones , [3] generalmente utilizan un identificador de sesión en una cookie HTTP que hace referencia a un estado de sesión almacenado en el servidor, creando efectivamente un protocolo con estado sobre HTTP . [4] Las cookies HTTP violan el estilo arquitectónico REST porque incluso sin hacer referencia a un estado de sesión almacenado en el servidor, son independientes del estado de la sesión (afectan a páginas anteriores del mismo sitio web en el historial del navegador) y no tienen semántica definida. [5]

Ver también

Referencias

  1. ^ Fielding, Roy (2000). "3.4.3 Cliente-Stateless-Server (CSS)" . Estilos arquitectónicos y diseño de arquitecturas de software basadas en redes (tesis doctoral). Universidad de California, Irvine. OCLC  45706361 . Consultado el 18 de mayo de 2021 .
  2. ^ "RFC 7230 - Protocolo de transferencia de hipertexto (HTTP / 1.1): enrutamiento y sintaxis de mensajes" . ietf.org . Consultado el 20 de agosto de 2015 .
  3. ^ "métodos de gestión de sesiones revisados" . C trozos de galleta . Toronto. Archivado desde el original el 13 de febrero de 2019 . Consultado el 12 de abril de 2011 . El siguiente material está destinado a presentar al lector las diversas técnicas que los desarrolladores han utilizado para implementar el seguimiento de sesiones en la Web. Las principales características operativas de cada método se mencionan además de las deficiencias que se han observado en el uso. Puede encontrar información adicional sobre la gestión de sesiones buscando en Internet. […]
  4. ^ Dwyer, Gareth (18 de noviembre de 2020). "Arquitectura con estado vs sin estado" . Virtuoso .
  5. ^ Fielding, Roy (2000). "6.3.4.2 Cookies" . Estilos arquitectónicos y diseño de arquitecturas de software basadas en redes (tesis doctoral). Universidad de California, Irvine. OCLC 45706361 . Consultado el 24 de mayo de 2021 .