Intercambiar páginas web: HTTP
Escribes una dirección en la barra, ¿y cómo aparece esa página en pantalla? Fuera de la vista, va y viene una conversación corta. El navegador pide "dame esto", y el servidor lo entrega: "aquí tienes". Este par, la petición y la entrega, es la promesa que hace funcionar la web: HTTP.
Dame esto, aquí tienes
Antes, gracias a TCP,
vimos llegar los datos sin que falte nada.
Pero ¿qué conversación
mantenemos usando esos datos?
La conversación en la web es muy simple.
El navegador le pide al servidor
"dame esta página",
y el servidor la entrega: "aquí tienes".
La petición es un request, la entrega una response.
Toca el navegador para enviar una petición al servidor. Cuando el servidor devuelve una respuesta, el par queda completo.
Una petición, una respuesta.
La web funciona con este simple emparejamiento.
El navegador habla primero,
y el servidor solo responde a esa petición.
El servidor nunca habla primero.
Siempre hay quien pregunta y quien responde.
Pero además de "dame esto",
hay más tipos de petición.
Después miremos esas acciones.
La accion que lleva una petición
Cada petición lleva una accion,
que dice qué quiere hacer.
La más común es GET.
Significa "por favor dame esto", trae algo de vuelta.
GET es lo que usas cada vez que se abre una página.
Del otro lado está POST.
Significa "por favor toma esto", envía algo fuera.
Como cuando escribes un comentario o mandas datos de inicio de sesión.
Traer es GET, enviar es POST.
Toca una accion para elegirla. GET trae, POST envía. Una flecha muestra hacia dónde apunta cada accion.
Con solo GET y POST,
se explica casi todo lo que hacemos en la web.
Abrir una página para leer es GET,
escribir algo para enviar es POST.
Además de la accion, una marca corta viaja con la respuesta.
Si todo fue bien, 200,
si no existe esa página, un número como 404.
Dice de un vistazo si tuvo éxito o falló.
Los detalles no hace falta saberlos ahora.
Como un huésped por primera vez, cada vez
Aquí está el carácter raro de HTTP.
HTTP es terriblemente olvidadizo.
En cuanto termina una petición,
olvida por completo quién acaba de pedir qué.
Aunque la misma persona venga dos veces,
HTTP la trata como a un huésped nuevo cada vez.
No hay memoria de "¿no estabas aquí hace un momento?".
Esta cualidad de no retener el pasado
se llama no tener estado, es decir, stateless.
Envía una petición dos veces como la misma persona. La segunda vez el servidor te saluda como a un desconocido. HTTP no recuerda el pasado.
Saludarte de nuevo incluso en una segunda visita
se ve algo frustrante.
Pero se hizo así a propósito.
Como el servidor trata a todos igual, con ligereza,
puede atender a muchísimos huéspedes a la vez.
A cambio, para recordar "esa persona de antes"
hay que entregarle un boleto aparte.
Ese boleto es lo que vemos la próxima lección:
sesiones y cookies.
Juntar piezas en una página
Una página no llega entera
en una sola petición.
Primero haces GET del esqueleto del texto.
Mirando dentro, dice que también necesita imágenes y estilo.
Así que el navegador vuelve a pedir,
dame la imagen, dame el estilo.
Intercambiando petición y respuesta varias veces,
junta las piezas una a una
hasta que por fin se vuelve una página terminada.
Toca cada pieza para pedirla. Texto, imagen y estilo vuelven como respuestas, y la página se llena paso a paso.
Con todas las piezas reunidas,
los huecos vacíos ya están llenos.
A nuestros ojos parece surgir de golpe,
pero en realidad son muchas petición-respuestas combinadas.
Un esqueleto, una imagen, un poco de estilo.
Cada cosa pedida por separado y traída por separado.
Gracias a un internet rápido,
todo esto termina en un parpadeo,
así que solo sentimos que la página apareció.
Resumamos
Reunido en una línea, es esto.
La web se mueve en pares de petición y respuesta.
Una petición lleva una accion como GET (por favor dame) o POST (por favor toma).
Una página se hace juntando piezas a lo largo de muchas petición-respuestas.
Y HTTP es terriblemente olvidadizo,
así que trata cada petición como a un huésped nuevo.
Gracias a esta simplicidad y este olvido,
la web se mantiene ligera y fácil para cualquiera.
Esa es la promesa de HTTP.
Toca los puntos clave en orden para repasar. (petición y respuesta → acciones GET/POST → terriblemente olvidadizo → juntar piezas en una página)
Ahora sabes cómo las páginas web
van y vienen.
Pero el olvido de HTTP
nos dejó una tarea.
Los artículos en tu carrito,
o tu estado de sesión iniciada, ¿cómo se recuerdan?
Si eres un huésped nuevo cada vez,
¿cómo lo enlazamos de una vez a otra?
Desvelemos ese secreto la próxima lección,
en sesiones y cookies.