Cliente vs servidor: quién hace qué en la web

Clase 21 de 27Curso Gratis de Programación Básica

Contenido del curso

Resumen

Cuando abres una página web, dos computadores conversan: el tuyo y el que guarda los archivos. El tuyo se llama cliente y el otro se llama servidor. Entender la diferencia entre cliente y servidor es clave para decidir dónde vive cada parte de tu aplicación y por qué esa división protege tu producto.

¿Qué hace el cliente y qué hace el servidor en una web?

La analogía más simple es un restaurante. Tú, como cliente, pides y recibes. La cocina prepara, guarda los ingredientes y decide qué sale. Ninguno hace el trabajo del otro, y esa separación es justo lo que ocurre en la web.

En el caso de Okini, un café imaginario con reservas en línea, del lado del cliente pasan cosas visibles: el navegador muestra el menú, los botones cambian de color al pasar el mouse y los formularios validan si escribiste un email correcto [01:35]. Todo eso es JavaScript corriendo en tu navegador.

Del lado del servidor pasan cosas que no podrían vivir en cada navegador. La lista real de reservas del día, por ejemplo, necesita un lugar central accesible desde cualquier dispositivo. Si tú reservas desde tu casa y yo desde la mía, nuestros navegadores no se hablan entre sí. El servidor sí ve a todos.

¿Qué es el cliente en una web? Es el programa que pide y muestra información, normalmente tu navegador. Solo conoce lo que su propia usuaria hace.

¿Qué es el servidor en una web? Es el computador central que guarda datos compartidos, aplica reglas y responde a las peticiones de todos los clientes a la vez.

¿Por qué las reglas de negocio viven en el servidor?

Cuando alguien intenta reservar la taza número 51 de un máximo de 50 en el día, ¿quién dice que no? No puede ser el cliente, porque solo ve sus propios datos. Tiene que ser el servidor, que tiene autoridad sobre todas las reservas y puede responder con un Lo siento, ya llegamos al máximo de hoy [02:40].

Lo mismo pasa con los precios. Si la lista de cuánto vale cada método de preparación viviera en el cliente, cualquiera podría modificarla desde su navegador y reservar una taza de V60 por un dólar en lugar de cinco.

¿Por qué cambiar el precio en el inspector no funciona?

Esto puedes verlo con tus propios ojos. Abre el inspector del navegador en cualquier sitio, por ejemplo platzi.com, busca el precio de una suscripción y cámbialo a un dólar [03:20]. El precio cambia en tu pantalla, pero al recargar vuelve a su valor original. Y si intentaras suscribirte, te cobrarían el precio real.

¿Por qué? Porque modificaste la copia local que tu navegador estaba mostrando. El servidor, que es quien decide cuánto vale la suscripción, nunca se enteró de tu cambio. Esa es la frontera entre cliente y servidor en acción.

¿Cómo decidir qué va en el cliente y qué en el servidor?

La regla general es directa:

  • Lo que cada usuario decide o cambia por sí mismo, sin afectar a nadie más, vive en el cliente.
  • Lo que todos los usuarios comparten, lo que debe persistir en el tiempo o lo que hay que proteger del usuario, vive en el servidor.

Pongamos a prueba la regla con dos casos de Okini. Primero, cuando el formulario avisa que un email tiene formato incorrecto antes de enviarlo, esa validación la hace el cliente, porque solo necesita revisar lo que esa persona escribió.

Segundo, el contador de tazas reservadas del día, ese que dice cuántas de las 50 disponibles ya se tomaron. ¿Cliente o servidor? Aquí viene el matiz interesante.

¿Por qué el contador de reservas necesita un servidor?

Imagina que el sitio de Okini está publicado y entran cinco personas al mismo tiempo a reservar desde distintos lugares [05:15]. Cada navegador solo sabe lo que su propia usuaria hace. Mi navegador no tiene cómo saber qué reservó alguien más, ni qué pasó cinco minutos antes de que yo entrara.

Para que el contador en mi pantalla diga la verdad, alguien tiene que estar contando todas las reservas que llegan de todos los navegadores del mundo y devolverme el número actualizado. Ese alguien es el servidor.

En estricto rigor, un contador construido solo con lo que sabes hasta ahora cuenta bien para la persona que mira esa página, pero no refleja las reservas reales de todos los clientes del día. Para eso de verdad necesitas un servidor.

¿Qué es el backend? Es la parte del desarrollo que se ocupa del servidor: guardar datos, aplicar reglas y atender a varios usuarios al mismo tiempo.

¿Por qué este curso se enfoca en el cliente?

La web tiene estas dos partes y profundizar en una mitad construye el músculo de la programación mucho más rápido que pasearse por las dos. La mitad del servidor existe y tiene su propio recorrido, llamado backend, al que vas a poder entrar con los fundamentos que estás construyendo acá.

Ahora viene la pregunta que la mayoría de gente que construye con herramientas de inteligencia artificial se hace tarde, cuando ya es costoso responderla: tu app va a guardar información, ¿dónde se guarda exactamente, en el cliente, en el servidor o en los dos?

Déjame en los comentarios tu respuesta a los dos casos de Okini: ¿la validación del email y el contador de tazas son cliente o servidor?