seegongsik
Mis palabras
Redes

Recuérdame la próxima vez: sesiones y cookies

Antes aprendimos que HTTP es olvidadizo, así que nos trata como un visitante nuevo en cada petición. Y sin embargo, una vez inicias sesión, sigues conectado un buen rato. ¿Cómo te reconoce un servidor que olvida cada vez? El secreto está en un pequeño pase.

01

Olvidadizo significa que la sesión se cae

Antes aprendimos que HTTP es olvidadizo.
Cuando una petición termina, nos olvida del todo.
Así que cuando pedimos de nuevo,
nos trata como un visitante nuevo.
Eso plantea algo extraño.
Iniciamos sesión una sola vez,
¿por qué seguimos conectados un buen rato?
Si olvida cada vez,
deberíamos iniciar sesión en cada visita.

yoservidor olvidadizosesion caida
Pulsa el boton para visitar el servidor

Pulsa el botón de visita. El servidor olvidadizo olvida cada vez, así que la sesión se cae en cada visita y tienes que volver a entrar.

Como viste, es demasiado incómodo.
Iniciar sesión en cada visita
nos agotaría enseguida.
Pero no podemos pedirle al servidor
que memorice a cada invitado.
Simplemente hay demasiados.
Así que usamos un truco listo.
En vez de que el servidor memorice,
le entrega al invitado un pequeño boleto.

02

El servidor entrega un pequeño pase

En la primera visita
el servidor le da al invitado un pequeño boleto.
A este boleto lo llamamos cookie.
El boleto lleva un número escrito.
Algo como "eres el invitado número 7."
Piensa en la pulsera
o el sello de entrada de un parque de atracciones.
Si el servidor guarda solo ese número,
no necesita memorizar a cada uno de los muchos invitados.

Ahora en la mano del invitado
hay un pase con un número.
El servidor anota ese número,
ligado a este invitado.
Lo clave es
que el invitado lleva el pase consigo.
El servidor no lo memoriza todo;
el invitado guarda su propio número.
Entonces, ¿cuándo debe sacarse
y mostrarse de nuevo este pase?

03

Muestra el pase en cada visita

El invitado que recibió el pase
simplemente lo guarda en un bolsillo.
Luego, la próxima vez que pide al servidor,
muestra ese pase junto con la petición.
Diciendo: "Soy el invitado número 7."
Lo enseña en cada visita.
Es como escribir el número
en una esquina del papel de la petición.
Así que con solo leer la petición, el servidor
puede saber al instante quién la envió.

yoservidor
peticion 1
pase n.7
peticion 2
pase n.7
peticion 3
pase n.7
Pulsa visitar para enviar la peticion junto con el pase

Pulsa el botón de visita. El invitado muestra el número del pase junto con la petición, cada vez.

Ahora cada vez que el invitado pide,
envía el mismo número con ello.
Desde el lado del servidor,
el número llega a la mano cada vez.
Siendo olvidadizo, no puede memorizar al invitado,
pero como el número viaja con la petición, no pasa nada.
Entonces, ¿qué hace el servidor
cuando ve ese número?
Puede compararlo con
la lista que anotó, ¿verdad?

04

¡Ah, esa persona! Te reconoce

Cuando llega el número del pase,
el servidor abre la lista que guardó.
"¿Quién es el número 7?", busca.
Cuando encuentra el 7 en la lista,
te reconoce: "¡Ah, esa persona!"
Mantener este hilo de que eres el mismo invitado
entre visitas
es justamente la sesión.
Gracias a ella, la sesión no se cae
y sigue de corrido.

pase que llego
lista del servidor
invitado n.3
invitado n.7
invitado n.12
Toca el numero del pase que llego para buscarlo en la lista

Toca el número del pase que llegó. El servidor lo encuentra en la lista, reconoce "¡Ah, esa persona!" y mantiene la sesión.

Era un servidor olvidadizo,
y ahora nos reconoce con facilidad.
El truco no es que el servidor memorizara,
sino que el invitado llevó el pase.
El servidor solo compara número con lista,
así que maneja muchos invitados sin esfuerzo.
Pero hay una cosa
que debemos cuidar.
Si cualquiera con el número correcto pasa,
¿qué pasa si alguien recoge el pase de otro?

05

Resumamos

Reunido en una línea, es esto.
HTTP es olvidadizo y nos trata como un visitante nuevo cada vez.
El servidor emite un pequeño pase, una cookie.
El invitado muestra ese pase en cada visita.
El servidor lee el número y dice: "¡Ah, esa persona!"
Mantener el hilo de que es el mismo invitado es la sesión.
Gracias a ella, no tienes que iniciar sesión otra vez cada vez.
El recordar se le deja al pase del invitado,
y el servidor solo compara el número.

1. HTTP es olvidadizo, un visitante nuevo cada vez
2. el servidor emite un pase (cookie)
3. muestra el pase en cada visita
4. reconocido por numero = sesion
Pulsa el boton para repasar los puntos clave en orden

Toca los puntos clave en orden para repasar. (lo olvidadizo es el problema → emitir un pase (cookie) → mostrarlo en cada visita → ¡ah, esa persona! (sesión))

Ahora sabes cómo el servidor
nos reconoce de nuevo.
Pero si solo coincide el número del pase,
si de verdad eres tú
aún no se ha comprobado.
¿Quien lleva el número
es realmente esa persona?
¿Y si alguien lo intercepta?
Sigamos esa historia de comprobar la confianza
juntos en la próxima área.

En una líneaHTTP es olvidadizo, así que nos recibe como un visitante nuevo en cada petición. Sin más, eso significa que una sesión debería caerse cada vez. Las cookies y las sesiones son lo que resuelve esto. En tu primera visita el servidor te entrega un pequeño pase, una cookie. En cada visita posterior el invitado vuelve a mostrar ese pase. El servidor lee el número del pase y dice: "¡Ah, esa persona!". Mantener el hilo de que es el mismo invitado es la sesión. Gracias a ella, no tienes que iniciar sesión otra vez cada vez. Reconocer quién eres por un número de pase lleva luego a la historia de la autenticación, que comprueba que de verdad eres esa persona.
Redes
¿Te fue útil? Apoyar seegongsik