El lado del cliente y el lado del servidor describen dónde se ejecuta el código de la aplicación web.
Después de leer este artículo podrás:
Copiar enlace del artículo
Lado del cliente y lado del servidor son términos de desarrollo web que describen dónde se ejecuta el código de la aplicación. Los desarrolladores web también se refieren a esta distinción como frontend vs. backend, aunque lado del cliente/servidor y frontend/backend no son exactamente lo mismo. En una arquitectura sin servidor, el proveedor de servicios sin servidor aloja y asigna recursos a todos los procesos del lado del servidor, y los procesos escalan a medida que aumenta el uso de la aplicación.
Buena parte de Internet se basa en el modelo cliente-servidor. En este modelo, los dispositivos de los usuarios se comunican mediante una red con servidores centralizados para obtener los datos que necesitan, en lugar de comunicarse entre sí. Los dispositivos de los usuarios finales, como portátiles, teléfonos inteligentes y ordenadores de escritorio, se consideran "clientes" de los servidores, como si fueran clientes que obtienen servicios de una empresa. Los dispositivos de los clientes envían solicitudes a los servidores de páginas web o aplicaciones, y los servidores les sirven respuestas.
El modelo cliente-servidor se utiliza porque los servidores suelen ser más potentes y fiables que los dispositivos de los usuarios. Además, se mantienen y se conservan permanentemente en entornos controlados para garantizar que estén siempre encendidos y disponibles; aunque haya servidores individuales que hayan dejado de funcionar, suele haber otros servidores de reserva. Mientras tanto, los usuarios pueden encender y apagar sus dispositivos, o perderlos o romperlos, y eso no debería afectar al servicio de Internet de otros usuarios.
Los servidores pueden servir a varios dispositivos clientes a la vez, y cada dispositivo cliente envía solicitudes a varios servidores durante el acceso y la navegación por Internet.
Varios clientes y servidores interactúan:
Cada cliente se comunicará con varios servidores, y viceversa.
Supongamos que un usuario está navegando por Internet y escribe "netflix.com" en la barra del navegador. Esto da lugar a una solicitud a los servidores DNS para la dirección IP de netflix.com, y los servidores DNS responden a esta solicitud sirviendo la dirección IP al navegador. A continuación, el navegador del usuario realiza una solicitud a los servidores de Netflix (usando la dirección IP) para el contenido que aparece en la página, como las imágenes en miniatura de las películas, el logotipo de Netflix y la barra de búsqueda. Los servidores de Netflix lo entregan al navegador y este carga la página en el dispositivo del cliente.
En el desarrollo web, el "lado del cliente" hace referencia a todo lo que en una aplicación web se muestra o tiene lugar en el cliente (dispositivo del usuario final). Esto incluye lo que ve el usuario, como texto, imágenes y el resto de la interfaz de usuario, junto con cualquier acción que una aplicación lleve a cabo en el navegador del usuario.
Los lenguajes de marcado como HTML y CSS son interpretados por el navegador en el lado del cliente. Además, muchos desarrolladores actuales están incluyendo procesos del lado del cliente en la arquitectura de sus aplicaciones y dejando de hacer todo en el lado del servidor; la lógica de negocio para las páginas web dinámicas*, por ejemplo, suele ejecutarse en el lado del cliente en una aplicación web moderna. Los procesos del lado del cliente se escriben casi siempre en JavaScript.
En el ejemplo de netflix.com descrito anteriormente, el HTML, el CSS y el JavaScript que dictan cómo aparece la página principal de Netflix para el usuario son interpretados por el navegador en el lado del cliente. La página también puede responder a "eventos": por ejemplo, si el ratón del usuario pasa por encima de una de las imágenes en miniatura de las películas, la imagen se expande y las miniaturas adyacentes se mueven ligeramente hacia un lado para dejar espacio a la imagen más grande. Este es un ejemplo de proceso del lado del cliente; el código en la propia página web responde al ratón del usuario e inicia esta acción sin comunicarse con el servidor.
El lado del cliente también se conoce como frontend, aunque estos dos términos no significan exactamente lo mismo. El lado del cliente hace referencia únicamente al lugar en el que se ejecutan los procesos, mientras que el frontend hace referencia a los tipos de procesos que se ejecutan en el lado del cliente.
*Una página web dinámica es una página web que no muestra el mismo contenido para todos los usuarios y cambia en función de las entradas del usuario. La página de inicio de Facebook es una página dinámica; la página de inicio de sesión de Facebook es, en su mayor parte, estática.
Como ocurre con el lado del cliente, "lado del servidor" se refiere a todo lo que ocurre en el servidor, en lugar de en el cliente. En el pasado, casi toda la lógica empresarial se ejecutaba en el lado del servidor, y esto incluía la representación de páginas web dinámicas, la interacción con las bases de datos, la autenticación de identidades y las notificaciones push.
El problema que hay con alojar todos estos procesos en el lado del servidor es que cada solicitud que implique a uno de ellos tiene que recorrer todo el camino desde el cliente hasta el servidor, y eso cada vez. Esto produce una gran cantidad de latencia. Por esta razón, las aplicaciones actuales ejecutan más código en el lado del cliente; un caso de uso es la representación de páginas web dinámicas en tiempo real mediante la ejecución de scripts en el navegador, que hacen cambios en el contenido que ve el usuario.
Al igual que "frontend" y "lado del cliente", backend también es un término para los procesos que tienen lugar en el servidor, aunque backend solo hace referencia a los tipos de procesos y lado del servidor hace referencia a la ubicación en la que se ejecutan los procesos.
El scripting del lado del cliente significa simplemente ejecutar scripts, como JavaScript, en el dispositivo del cliente, normalmente en un navegador. Todo tipo de scripts pueden ejecutarse en el lado del cliente si están escritos en JavaScript, ya que este lenguaje es universalmente compatible. Otros lenguajes de scripting solo pueden utilizarse si el navegador del usuario es compatible con ellos.
Los scripts del lado del servidor se ejecutan en el servidor en lugar de en el cliente, con frecuencia para proporcionar contenido dinámico a las páginas web en respuesta a las acciones del usuario. Los scripts del lado del servidor no tienen por qué estar escritos en JavaScript, ya que el servidor puede ser compatibles con diversos lenguajes.
Los scripts se ejecutan del lado del cliente y del lado del servidor:
Los datos van y vienen entre el cliente y el servidor, y los scripts se pueden ejecutar en ambos lados.
En la informática sin servidor, todos los procesos del lado del servidor o backend se siguen ejecutando en los servidores y no en los dispositivos de los clientes, pero no se implementan en ningún servidor o conjunto de servidores específico. Los procesos de backend se dividen en funciones, que se ejecutan a la carta y se escalan automáticamente. Los desarrolladores pueden seguir creando toda la funcionalidad que normalmente se ejecuta en el lado del servidor dentro de una arquitectura sin servidor.
Los Cloudflare Workers son funciones de JavaScript sin servidor que se ejecutan a la carta, y se ejecutan en la red perimetral que utiliza Cloudflare para el almacenamiento en caché de la CDN, entre el cliente y el servidor de origen. Esto permite que los desarrolladores creen backends sin servidor que, aunque técnicamente están en el lado del servidor, se encuentran lo más cerca posible del dispositivo del cliente, lo cual reduce la latencia y hace que las aplicaciones respondan más rápidamente a las interacciones del usuario.
Para empezar a utilizar Cloudflare Workers, consulta nuestra documentación para desarrolladores.