Modelo Cliente/Servidor: ¿Cómo funciona un sitio web?

Clase 14 de 24Curso de Fundamentos de Ingeniería de Software

Resumen

La arquitectura cliente-servidor es el fundamento de la web moderna, permitiendo que millones de dispositivos se conecten e intercambien información de manera eficiente. Entender cómo funciona este modelo es esencial para cualquier persona interesada en tecnología, desarrollo web o simplemente para comprender mejor el mundo digital que nos rodea. Veamos en detalle cómo opera este sistema y qué ocurre realmente cuando navegamos por internet.

¿Cómo funciona el modelo cliente-servidor?

Cuando escribes una dirección web como platzi.com en tu navegador y presionas Enter, se inicia un proceso fascinante. Tu navegador actúa como cliente y envía una solicitud al servidor de Platzi. Pero antes, esta solicitud pasa por tu router, que convierte el nombre de dominio en una dirección IP específica del servidor.

El servidor, que almacena todos los datos del sitio web, recibe esta petición y responde enviando la información solicitada. Esta comunicación se realiza mediante el protocolo HTTP (HyperText Transfer Protocol) o, más comúnmente hoy en día, HTTPS, donde la "S" significa "seguro", indicando que los datos viajan cifrados.

Este intercambio de información es la base del funcionamiento de internet, pero hay mucho más sucediendo tras bambalinas:

  • Identificación del dispositivo: Tu navegador envía información sobre tu dispositivo y sistema operativo.
  • Adaptación de contenido: El servidor utiliza estos datos para enviar la versión adecuada del sitio (móvil o escritorio).
  • Personalización: Las cookies almacenadas en tu dispositivo permiten que el servidor te reconozca y personalice tu experiencia.

¿Qué información viaja en las peticiones HTTP?

Cuando realizas una petición web, tu navegador envía datos adicionales que no son visibles para ti como usuario. Estos datos viajan en los "headers" o cabeceras HTTP:

  • User Agent: Identifica tu navegador, sistema operativo y dispositivo.
  • Cookies: Pequeños archivos de datos almacenados en tu dispositivo que identifican tu sesión.

Gracias a estos datos, los sitios web pueden reconocerte. Por ejemplo, cuando abres Gmail, el servidor puede identificarte mediante las cookies guardadas de sesiones anteriores, mostrándote directamente tu bandeja de entrada sin necesidad de iniciar sesión nuevamente.

¿Cómo se construye una página web en tu navegador?

Cuando un servidor responde a tu petición, no envía toda la página web de una vez. El proceso sigue estos pasos:

  1. Primero envía el HTML (HyperText Markup Language), que es la estructura básica de la página en texto plano.
  2. El HTML contiene referencias a otros archivos como CSS (Cascade Style Sheets), que define el diseño visual.
  3. También incluye referencias a archivos JavaScript, que proporcionan la interactividad.

Tu navegador realiza peticiones adicionales para cada uno de estos archivos, construyendo progresivamente la representación completa de la página web.

¿Cómo se envían los datos entre cliente y servidor?

Existen diferentes métodos para enviar información desde el cliente al servidor:

¿Qué es el método GET?

Cuando realizas una búsqueda en un sitio web, notarás que la URL cambia para incluir tu término de búsqueda. Por ejemplo: platzi.com/buscar?search=chatGPT. El signo de interrogación indica que se están enviando variables al servidor mediante el método GET.

Características del método GET:

  • Las variables viajan visibles en la URL
  • Quedan registradas en el historial del navegador
  • No es adecuado para información sensible

¿Qué es el método POST?

Para información confidencial como nombres de usuario y contraseñas, se utiliza el método POST. Este método encapsula los datos en la cabecera de la petición HTTP, ocultándolos del historial del navegador y haciéndolos más seguros.

¿Qué significan los códigos de respuesta HTTP?

Los servidores responden con códigos numéricos que indican el estado de la petición:

  • 200 OK: Todo está bien, la petición fue exitosa
  • 404 Not Found: La página o recurso solicitado no existe
  • 500 Server Error: Hay un problema en el servidor
  • 300 Redirect: La dirección ha cambiado y apunta a un nuevo lugar

¿Cómo funcionan otros protocolos y formatos de datos?

El modelo cliente-servidor no se limita a páginas web. Existen diferentes protocolos para distintos tipos de comunicación:

¿Qué protocolos se usan para el correo electrónico?

Para el correo electrónico se utilizan protocolos como:

  • SMTP (Simple Message Transfer Protocol)
  • POP3 (Post Office Protocol 3)
  • IMAP (Internet Message Access Protocol)

Actualmente, pocas empresas gestionan sus propios servidores de correo debido a la complejidad que implica, delegando esta tarea principalmente a Microsoft (Outlook) o Google (Gmail).

¿Cómo se comunican las aplicaciones móviles con los servidores?

Las aplicaciones móviles no utilizan HTML, CSS o JavaScript como los navegadores. En su lugar:

  • Usan lenguajes nativos como Java o Kotlin (Android) y Swift o Objective-C (iOS)
  • Para intercambiar datos con los servidores utilizan formatos como JSON (JavaScript Object Notation) o XML (Extended Markup Language)

A pesar de estas diferencias, el modelo básico sigue siendo el mismo: un cliente (la aplicación) realiza una petición a un servidor, que procesa la solicitud y devuelve una respuesta.

El modelo cliente-servidor es la columna vertebral de nuestra experiencia digital, permitiendo que dispositivos de todo tipo se comuniquen eficientemente a través de internet. Comprender estos conceptos fundamentales nos ayuda a navegar con mayor conocimiento por el mundo digital y a entender mejor cómo funcionan las tecnologías que usamos diariamente. ¿Qué otros aspectos de la comunicación cliente-servidor te gustaría explorar? Comparte tus inquietudes en los comentarios.