Sesión (informática) para niños
Una sesión en informática es como una conversación o un encuentro entre dos o más dispositivos que se comunican, o entre un ordenador y una persona. Imagina que es un diálogo que empieza en un momento y termina poco después. Durante esta "conversación", se intercambian varios mensajes.
Una sesión puede ser "con estado", lo que significa que los dispositivos recuerdan lo que se ha dicho antes para seguir la conversación. O puede ser "sin estado", donde cada mensaje es como una pregunta nueva y no se recuerda lo anterior.
Establecer una sesión es fundamental para que los ordenadores puedan comunicarse de forma organizada, como cuando haces una videollamada o navegas por internet.
Las sesiones se pueden manejar en diferentes niveles de cómo se comunican los ordenadores:
- En la capa de aplicación:
* Las sesiones HTTP, que ayudan a los sitios web a recordar información sobre cada visitante, como los productos que has puesto en un carrito de compras. * Cuando te conectas a un ordenador a distancia usando un programa como Telnet.
- En la capa de sesión:
* Una sesión de Protocolo de Iniciación de Sesión (SIP), que es la base de las llamadas de teléfono por internet (Voz sobre IP).
- En la capa de transporte:
* Una sesión TCP, que es como una conexión segura y organizada entre dos programas en diferentes ordenadores.
Cuando los protocolos de comunicación no tienen una forma integrada de manejar sesiones (como UDP) o cuando las sesiones son muy cortas (como HTTP), se usan programas de nivel superior. Por ejemplo, cuando navegas por una página web, tu navegador y el servidor pueden usar una cookie HTTP. Esta cookie es como una pequeña nota que el servidor te da para recordarte en futuras visitas, guardando tu información o preferencias.
Las primeras versiones de HTTP (HTTP/1.0) solo permitían una petición y una respuesta por sesión. Las versiones más nuevas (HTTP/1.1) mejoraron esto, haciendo más fácil mantener la sesión web con las cookies y permitiendo subir archivos.
La mayoría de las sesiones entre un cliente (tu ordenador) y un servidor se mantienen con una única conexión. Sin embargo, en la web, cada parte de una sesión HTTP puede crear una conexión separada. Para que la sesión no se pierda, se usa un identificador de sesión. Este identificador se envía en los enlaces o formularios de las páginas web para que el servidor sepa que eres tú. Una ventaja de esto es que funciona bien incluso con conexiones a internet lentas.
Contenido
Cómo funcionan las sesiones en los programas
Las sesiones TCP, que son conexiones seguras, suelen ser creadas por programas usando "procesos" o "hilos". Imagina que cada hilo es como un pequeño trabajador que se encarga de una sesión. Esto hace que el programa sea más sencillo de crear, porque cada trabajador tiene su propia información. Sin embargo, esto puede usar muchos recursos del ordenador y la sesión podría interrumpirse si el sistema se reinicia.
Las sesiones HTTP, que son las de las páginas web, no suelen usar un trabajador por sesión. En su lugar, guardan la información de cada sesión en una base de datos.
Cuando muchos servidores trabajan juntos para atender a los usuarios, puede surgir un problema. Si un usuario empieza una sesión con un servidor y luego se conecta a otro, el segundo servidor podría no tener la información de la sesión anterior. Para evitar esto, los servidores deben compartir la información de la sesión o asegurarse de que el usuario siempre se conecte al mismo servidor.
Sesiones web guardadas en el servidor
Las sesiones que guardan su información en el servidor son fáciles de controlar y eficientes. Sin embargo, pueden ser complicadas de manejar si hay muchos servidores trabajando juntos para distribuir la carga de trabajo. También necesitan espacio de almacenamiento en el servidor.
Para que funcionen bien con muchos servidores, la información de la sesión se puede guardar en un lugar compartido o se puede hacer que el usuario siempre se conecte al mismo servidor.
Sesiones web guardadas en el cliente
Las sesiones web que guardan su información en el cliente (tu navegador) usan cookies y técnicas de seguridad para recordar el estado de la sesión sin guardar nada en el servidor. Cuando visitas una página, el servidor envía la información de la sesión a tu navegador en una cookie. Tu navegador guarda esa cookie. Cada vez que haces una nueva petición, tu navegador envía la cookie de vuelta al servidor, y el servidor usa esa información para "recordar" lo que estabas haciendo y darte la respuesta adecuada.
Este método puede funcionar bien, pero la información guardada en tu ordenador podría ser modificada por ti o por otros programas. Para que estas sesiones sean seguras, se debe asegurar que:
- Confidencialidad: Solo el servidor pueda entender la información de la sesión.
- Integridad de los datos: Nadie más que el servidor pueda cambiar la información de la sesión.
- Autenticidad: Solo el servidor pueda iniciar sesiones válidas.
Para lograr esto, el servidor debe proteger la información antes de enviarla al cliente y asegurarse de que no se pueda modificar.
Enviar la información de la sesión con cada petición solo es práctico si la cookie es pequeña. Esto significa que las sesiones del lado del cliente usan un poco más de internet en cada petición. Además, los navegadores tienen límites en la cantidad y el tamaño de las cookies que pueden guardar por sitio web. Para que sean más eficientes, el servidor puede comprimir la información antes de crear la cookie y descomprimirla cuando la recibe de vuelta.
Identificador de sesión HTTP
Un identificador de sesión es un código único que un servidor crea y envía a un cliente (tu navegador) para reconocer la sesión actual. El cliente envía este identificador como una cookie HTTP o como parte de la dirección web. La ventaja de usar estos identificadores es que el cliente solo necesita manejar el código, mientras que toda la información de la sesión se guarda en el servidor (normalmente en una base de datos a la que el cliente no tiene acceso directo). Algunos ejemplos de nombres de cookies de sesión que usan los lenguajes de programación son: JSESSIONID (para páginas JSP), PHPSESSID (para PHP) y ASPSESSIONID (para ASP).
Administración de sesión
En la interacción entre personas y ordenadores, la administración de sesión es el proceso de seguir la actividad de un usuario durante sus sesiones con un sistema informático.
En un ordenador de escritorio, la administración de sesión puede recordar qué programas tienes abiertos y qué documentos estás usando. Así, cuando apagas el ordenador y lo vuelves a encender, todo puede restaurarse como lo dejaste. En una página web, la administración de sesión puede pedirte que vuelvas a iniciar sesión si ha pasado mucho tiempo sin actividad. También se usa para guardar información en el servidor entre las peticiones que haces a una página web.
Administrador de sesión de escritorio
Un administrador de sesión de escritorio es un programa que puede guardar y restaurar el estado de tu escritorio. Esto incluye todas las ventanas que tienes abiertas y su contenido. En sistemas como Linux, el administrador de sesión X se encarga de esto. En Windows, no hay uno integrado, pero puedes usar programas de terceros.
La administración de sesión es muy útil en los navegadores web. Un usuario puede guardar todas las páginas que tiene abiertas y su configuración para restaurarlas más tarde. Esto también ayuda a recuperar las páginas si el navegador se cierra inesperadamente. Navegadores como Google Chrome, Mozilla Firefox, Internet Explorer y Opera tienen soporte para la administración de sesión, que a menudo se controla mediante cookies.
Administración de sesión del servidor web
El protocolo HTTP no recuerda el estado de las conexiones: cada vez que tu navegador pide una página o envía información, establece una nueva conexión. Por eso, el servidor web no puede depender de una conexión continua para recordar lo que haces. La administración de sesión es la técnica que usan los desarrolladores web para añadir la capacidad de recordar el estado a las sesiones HTTP. Por ejemplo, una vez que has iniciado sesión en una página web, la próxima vez que pidas algo, no debería pedirte de nuevo tu usuario y contraseña.
Cuando varios servidores web necesitan compartir la información de una sesión (algo común en grupos de servidores), esta información debe compartirse entre ellos. Esto se puede hacer enviando la información a todos los servidores, compartiéndola en una memoria especial, usando conexiones de red, guardándola en un sistema de archivos compartido o almacenándola en una base de datos externa.
Si la información de la sesión se considera temporal, se puede usar cualquiera de estos métodos para guardarla.
Administración de sesión en SMS
El servicio de mensajes cortos (SMS) también es un protocolo que no recuerda el estado, similar a HTTP. Cuando el SMS se hizo compatible entre diferentes redes en 1999, su uso como forma de comunicación global creció mucho. Al principio, los servicios de SMS no necesitaban administración de sesión porque eran comunicaciones de un solo sentido (por ejemplo, notificaciones). Hoy en día, estas aplicaciones se conocen como mensajería de aplicación a cliente.
El desarrollo de aplicaciones empresariales para SMS requería administración de sesión. Como el SMS es un protocolo sin estado, las primeras implementaciones requerían que los usuarios introdujeran comandos e identificadores de servicio manualmente. En 2001, un inventor finlandés, Jukka Salonen, creó un método para mantener el estado de las sesiones desde un servidor externo, lo que simplificó las cosas para el usuario y permitió soluciones más grandes y compatibles con los teléfonos móviles existentes. Controlar las sesiones desde el servidor también mejoró la seguridad del usuario, evitando la necesidad de enviar información sensible por redes inalámbricas no seguras.
Más información
- HTTPS
- REST
Véase también
En inglés: Session (computer science) Facts for Kids