¿Te ha gustado el artículo?
3
¿Te ha gustado el artículo?
3

Programación web: lenguajes del lado servidor y del lado cliente

La web funciona según un principio realmente sencillo: los servidores web albergan los contenidos y los clientes los solicitan por HTTP o FTP, entendiendo por clientes a los navegadores (Mozilla Firefox o Google Chrome) instalados en el sistema del usuario, donde se ejecutan. Por el contrario, los servidores web, como Apache o NGINX, forman parte de los proyectos de desarrollo web, se instalan y se ejecutan en este entorno y permiten a los clientes el acceso a los contenidos.

Los contenidos estáticos, como los clásicos elementos de HTML o las imágenes, sencillamente se envían al navegador y allí se visualizan, los contenidos dinámicos, como una Wiki, un menú desplegable o cualquier tipo de aplicación web solo funcionan por medio de scripts, los cuales se han de ejecutar e interpretar con el lenguaje de programación web correspondiente en el lado del servidor o en el lado del cliente. Es por esto que se diferencia fundamentalmente entre los lenguajes de programación del lado servidor y los lenguajes del lado cliente.

En qué consiste la programación del lado del servidor

La programación del lado del servidor entra en juego en el desarrollo de páginas web con elementos dinámicos y de aplicaciones web. Esta tecnología de desarrollo web se basa en la utilización de scripts que ejecuta el servidor web, con ayuda del lenguaje de programación adecuado, cuando un cliente solicita el contenido. Una tarea frecuente de los scripts consiste en extraer los datos que se necesitan de una base de datos y de integrarlos en el proyecto web. Aunque el usuario accede al proyecto a través de páginas HTML, el código fuente de los scripts permanece oculto.

El uso de estos scripts del lado del servidor presupone que el cliente seguirá enviando peticiones al servidor web para entregar información nueva y modificada al usuario. Esto, por un lado, conlleva una fuerte carga de la capacidad del servidor, con la consecuente influencia en su tiempo de respuesta y, por otro, hace imprescindible una conexión al servidor para poder acceder a la página.

En los primeros tiempos de la red de redes, la programación del lado servidor se reducía casi exclusivamente al desarrollo de programas en lenguajes C, Perl y de líneas de comando (CMD, PowerShell). Estas aplicaciones eran ejecutadas e interpretadas por el sistema operativo del servidor y el resultado podía ser transmitido desde el servidor web al navegador que había hecho la petición a través de una interfaz de entrada común (Common Gateway Interface, CGI). Hoy en día, muchos servidores web pueden ejecutar directamente los scripts, por ejemplo, con ayuda de módulos. El lenguaje de programación del lado servidor más utilizado en la actualidad es PHP, publicado en 1995 y muy similar a C y a Perl.

Entre los lenguajes del lado servidor se incluyen, entre otros:

 

ASP.NET

Java

Ruby

Desarrollado por

Microsoft

Sun Microsystems

Yukihiro Matsumoto et al.

Licencia

propietario

GNU GPL

BSD

Año de publicación

2002

1995

1995

Plataforma

Windows

independiente

independiente

Paradigmas
de programación

Orientado a objetos

Orientado a objetos

multiparadigma

 

Perl

PHP

Python

Desarrollado por

Larry Wall, et al.

Rasmus Lerdorf

Guido van Rossum, Python Software Foundation

Licencia

GNU GPL y licensia artística

Licencia PHP, entre otras

Python Software Foundation License

Año de publicación

1987

1995

1991

Plataforma

independiente

independiente

independiente

Paradigmas
de programación

procedural, modular, en parte orientado a objetos

imperativo, funcional, orientado a objetos

multiparadigma

La programación del lado cliente

Los lenguajes de programación del lado cliente también se utilizan para realizar proyectos con contenidos dinámicos, pero, a diferencia de los lenguajes del lado servidor, no es el servidor el que ejecuta y procesa los scripts, sino el cliente solicitante. Con esta finalidad, los scripts se incluyen en el documento HTML o XHTML o se escribe en un archivo separado que se enlaza al documento principal.

Cuando un usuario solicita una página web o una aplicación web con un script de este tipo, el servidor web envía el documento HTML y el script al navegador, quien lo ejecuta y presenta el resultado final. Asimismo, los scripts del lado cliente contienen instrucciones concretas para el navegador web al respecto de cómo ha de reaccionar a ciertas acciones llevadas a cabo por el usuario como, por ejemplo, un clic en un botón específico. A menudo, el cliente ha de establecer para ello otro contacto con el servidor web.

Al ejecutarse en el navegador, el usuario puede ver el código fuente, a diferencia de lo que ocurre con los scripts del lado servidor. Como contrapartida, la interpretación de los scripts se basa en la suposición de que el navegador web entiende el lenguaje de programación web correspondiente. Como las ventanas emergentes y las herramientas de seguimiento web también se basan en el lenguaje del lado cliente y estos scripts influyen en los tiempos de carga, existen diversas extensiones para el navegador muy populares que bloquean estos scripts.

El lenguaje del lado cliente más significativo es JavaScript, desarrollado por Brendan Eich de Netscape (Netscape Communications Corporation), empresa de software responsable de la creación del navegador predecesor de Mozilla Netscape, y publicado en 1995 junto con la versión anterior del navegador Navigator 2.0, aún con el nombre de LiveScript. Su uso se extendió rápidamente, convirtiéndose pronto en el lenguaje de programación web universal de todos los navegadores web relevantes e incluso en el lenguaje estándar de reproducción de vídeos en Internet durante muchos años como componente esencial de Shockwave Flash (SWF), el reproductor de vídeos de Adobe. Sin embargo, debido a vulnerabilidades y a tecnologías más modernas como HTML5, aquellos vídeos y animaciones tan extendidos encuentran cada vez menos aplicación. En los primeros tiempos de la web, Microsoft Silverlight y los Applets de Java también eran muy populares.

En teoría, cualquier lenguaje de programación web cabría utilizarse para programar del lado cliente, aunque ello implicaría que los desarrolladores de todos los navegadores más importantes deberían ponerse de acuerdo en soportarlos. No obstante, también existen soluciones alternativas que permiten escribir del lado cliente con otros lenguajes de programación web. Este es el caso de transcompiladores o transpilers como CoffeeScript o TypeScript, que interpretan el código y lo ejecutan como JavaScript.

¿Programar con lenguajes del lado servidor o del lado cliente?

El lugar donde se ejecutan los scripts tiene una gran influencia en la estructura de los proyectos web. Cuantos más scripts se trasladan al ámbito de responsabilidad del navegador, más ligera es la página o la aplicación web para el servidor y, aunque esto significa una descongestión importante para el servidor, puede acarrear un peor rendimiento para el usuario. Por añadidura, los desarrolladores han de enfrentarse a un alto grado de complejidad si apuestan exclusivamente por un lenguaje del lado cliente como JavaScript, ya que en este caso han de recrear muchos mecanismos propios de frameworks más potentes como ASP.NET MVC. Y eso sin contar que, al usar lenguajes del lado cliente, se espera que el navegador soporte el lenguaje utilizado con todas sus funciones y de que el usuario no utilice extensiones de bloqueo.

En consecuencia, para no cargar excesivamente ni a un lado ni al otro, lo idóneo sería optar por una buena combinación de lenguajes del lado servidor y del lado cliente y garantizar tiempos de carga razonables con medidas adicionales como el cacheo de contenidos estáticos y la aplicación de tecnologías modernas como AJAX, acrónimo de “Asynchronous JavaScript and XML” (JavaScript asíncrono y XML). Este concepto se utiliza en desarrollo web para transferir datos de forma asíncrona entre cliente y servidor, lo que significa que el servidor web puede reaccionar a peticiones del lado cliente casi en tiempo real e intercambiar información con el navegador sin tener que cargar la página por completo. Un clásico ejemplo de la implementación de AJAX lo ilustran las sugerencias de búsqueda de Google (Google Suggest), las propuestas que aparecen automáticamente en el buscador Google al introducir un término.

Red HTTP Navegador