Saltar al contenido principal

Arquitectura Cliente - Servidor

La base fundamental de las comunicaciones en red y el desarrollo web es la arquitectura de Client (Cliente) y Server (Servidor). Este modelo distribuye las tareas entre los proveedores de un servicio y los demandantes del mismo.

Conceptos Fundamentales

Para comprender este ecosistema, utilizaremos estos 5 términos clave:

  1. Client (Cliente): El dispositivo o aplicación (como un navegador web) que inicia peticiones de servicio.
  2. Server (Servidor): El sistema informático que procesa las peticiones y entrega los resultados.
  3. Request (Petición): El mensaje enviado por el cliente solicitando una acción o dato.
  4. Response (Respuesta): El mensaje que el servidor envía de vuelta con el resultado del procesamiento.
  5. Resource (Recurso): El objeto específico (un archivo, un dato de usuario, una imagen) que es intercambiado.

Esquema técnico que ilustra el flujo de un Request desde el Client hacia el Server y el retorno del Response con el Resource solicitado

Ejemplo de Interacción en JavaScript

En el desarrollo moderno, el Client (Cliente) utiliza APIs para realizar un Request (Petición) asíncrono y esperar una Response (Respuesta) del Server (Servidor):

// El Client realiza una petición para obtener un Resource
async function fetchServerData() {
    console.log('Iniciando Request al Server...');
    
    try {
        const response = await fetch('[https://api.softarq.site/data/profile](https://api.softarq.site/data/profile)');
        
        // El Server devuelve una Response que convertimos en un objeto usable
        const resource = await response.json();
        
        console.log(`Resource recibido: ${resource.name}`);
    } catch (error) {
        console.error('Error en la comunicación Client-Server');
    }
}

fetchServerData();

En este modelo, el Server (Servidor) suele ser una máquina con mayor capacidad de procesamiento y almacenamiento que permanece "escuchando" permanentemente, mientras que el Client (Cliente) solo consume recursos cuando es necesario.