La creación de scripts del lado del servidor es una técnica utilizada en el desarrollo web que implica el empleo de scripts en un servidor web que produce una respuesta personalizada para la solicitud de cada usuario (cliente) al sitio web. Los scripts se pueden escribir en cualquiera de los numerosos lenguajes de creación de scripts del lado del servidor que están disponibles. La creación de scripts del lado del servidor se distingue de la creación de scripts del lado del cliente , en la que los scripts integrados, como JavaScript , se ejecutan en el lado del cliente en un navegador web , pero ambas técnicas suelen utilizarse juntas. La alternativa a uno o ambos tipos de creación de scripts es que el propio servidor web entregue una página web estática .
Los scripts del lado del servidor se utilizan a menudo para proporcionar una interfaz personalizada para el usuario . Estos scripts pueden reunir características del cliente para utilizarlas en la personalización de la respuesta en función de esas características, los requisitos del usuario, los derechos de acceso, etc. Los scripts del lado del servidor también permiten al propietario del sitio web ocultar el código fuente que genera la interfaz, mientras que, con los scripts del lado del cliente, el usuario tiene acceso a todo el código recibido por el cliente. Una desventaja del uso de scripts del lado del servidor es que el cliente necesita realizar más solicitudes a través de la red al servidor para mostrar nueva información al usuario a través del navegador web . Estas solicitudes pueden ralentizar la experiencia del usuario, colocar más carga en el servidor e impedir el uso de la aplicación cuando el usuario está desconectado del servidor.
Cuando el servidor sirve datos de una manera comúnmente utilizada, por ejemplo, según los protocolos HTTP o FTP , los usuarios pueden elegir entre varios programas cliente (la mayoría de los navegadores web modernos pueden solicitar y recibir datos utilizando ambos protocolos). En el caso de aplicaciones más especializadas, los programadores pueden escribir su propio servidor, cliente y protocolo de comunicaciones, que solo se pueden utilizar entre sí.
Los programas que se ejecutan en la computadora local de un usuario sin enviar ni recibir datos a través de una red no se consideran clientes y, por lo tanto, las operaciones de dichos programas no se considerarían operaciones del lado del cliente.
Netscape introdujo una implementación de JavaScript para scripts del lado del servidor con Netscape Enterprise Server , lanzado por primera vez en diciembre de 1994 (poco después de lanzar JavaScript para navegadores). [1] [2]
A principios de 1996, Fred Dufresne utilizó la tecnología de scripting del lado del servidor mientras desarrollaba el primer sitio web para la estación de televisión WCVB de Boston (Massachusetts) . La tecnología se describe en la patente estadounidense 5835712. La patente se emitió en 1998 y ahora es propiedad de Open Invention Network (OIN). En 2010, OIN nombró a Fred DuFresne "Inventor destacado" por su trabajo en la creación de scripts del lado del servidor.
En los primeros días de la web, la creación de scripts del lado del servidor se realizaba casi exclusivamente mediante una combinación de programas en C , scripts de Perl y scripts de shell que utilizaban la Interfaz de Puerta de Enlace Común (CGI). Esos scripts eran ejecutados por el sistema operativo y los resultados eran devueltos por el servidor web . Muchos servidores web modernos pueden ejecutar directamente lenguajes de scripts en línea como ASP , JSP , Perl , PHP y Ruby, ya sea por el propio servidor web o a través de módulos de extensión (por ejemplo , mod_perl o mod_php ) al servidor web. Por ejemplo, WebDNA incluye su propio sistema de base de datos integrado. Cualquier forma de scripting (es decir, CGI o ejecución directa) se puede utilizar para crear sitios complejos de varias páginas, pero la ejecución directa suele dar como resultado menos sobrecarga debido al menor número de llamadas a intérpretes externos.
Los sitios web dinámicos a veces utilizan servidores de aplicaciones web personalizados, como Glassfish , Plack y la biblioteca "Base HTTP Server" de Python , aunque algunos pueden no considerar que esto sea scripting del lado del servidor. Al utilizar técnicas de scripting web dinámico, los desarrolladores deben tener un conocimiento profundo de la separación lógica, temporal y física entre el cliente y el servidor. Para que la acción de un usuario active la ejecución de código del lado del servidor, por ejemplo, un desarrollador que trabaje con ASP clásico debe hacer explícitamente que el navegador del usuario realice una solicitud de regreso al servidor web.
Los scripts del lado del servidor son procesados completamente por los servidores en lugar de los clientes. Cuando los clientes solicitan una página que contiene scripts del lado del servidor, el servidor de aplicaciones procesa los scripts y devuelve una página HTML al cliente.
Con la llegada de las aplicaciones de una sola página , se introdujo un enfoque actualizado para la creación de scripts del lado del servidor, conocido como renderizado del lado del servidor. Con el renderizado del lado del servidor, se puede enviar HTML estático desde el servidor al cliente, y el JavaScript del lado del cliente luego hace que la página web sea dinámica al adjuntar controladores de eventos a los elementos HTML en un proceso llamado hidratación . Algunos ejemplos de marcos que admiten el renderizado del lado del servidor son Next.js , Nuxt.js , Angular y React .
Una alternativa a la renderización del lado del servidor es la generación de sitios estáticos . Con la renderización del lado del servidor, la página generalmente se ensambla en el servidor una vez por cada solicitud. Por el contrario, con la generación de sitios estáticos, la aplicación genera todas las páginas HTML estáticas en el momento de la compilación. Estas páginas preconstruidas se envían luego al cliente en cada solicitud, sin tener que compilarlas nuevamente. Esto conduce a tiempos de renderización más rápidos, ya que no es necesario generar una nueva página en cada solicitud; el servidor simplemente entrega un archivo que ya generó en el pasado. La desventaja es que cuando algunos datos de la página cambian, es necesario reconstruirla. Ejemplos de herramientas de generación de sitios estáticos son Jekyll y Gatsby . Los sitios generados por herramientas de generación de sitios estáticos a menudo se alojan en páginas de Netlify o GitHub .
Hay varios lenguajes de programación del lado del servidor disponibles, incluidos: