Scripting del lado del servidor
Secuencias de comandos del lado del servidor es una técnica utilizada en el desarrollo web que implica el empleo de secuencias de comandos en un servidor web que produce una respuesta personalizada para la solicitud de cada usuario (cliente) para el sitio web. La alternativa es que el propio servidor web entregue una página web estática. Las secuencias de comandos se pueden escribir en cualquiera de los lenguajes de secuencias de comandos del lado del servidor que están disponibles (consulte a continuación). Las secuencias de comandos del lado del servidor se distinguen de las secuencias de comandos del lado del cliente, donde las secuencias de comandos incrustadas, como JavaScript, se ejecutan en el lado del cliente en un navegador web, pero ambas técnicas a menudo se usan juntas.
Las secuencias de comandos del lado del servidor se utilizan a menudo para proporcionar una interfaz personalizada para el usuario. Estos scripts pueden ensamblar características del cliente para personalizar 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 que el propietario del sitio web oculte el código fuente que genera la interfaz, mientras que, con secuencias de comandos del lado del cliente, el usuario tiene acceso a todo el código recibido por el cliente. Una desventaja del uso de secuencias de comandos 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, generar 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ún, por ejemplo, de acuerdo con 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 usando ambos). protocolos). En el caso de aplicaciones más especializadas, los programadores pueden escribir su propio servidor, cliente y protocolo de comunicaciones, que solo pueden usarse 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.
Historia
Netscape introdujo una implementación de JavaScript para secuencias de comandos del lado del servidor con Netscape Enterprise Server, lanzado por primera vez en diciembre de 1994 (poco después de lanzar JavaScript para navegadores).
Las secuencias de comandos del lado del servidor fueron utilizadas posteriormente a principios de 1995 por Fred DuFrense mientras desarrollaba el primer sitio web para la estación de televisión WCVB de Boston, MA. 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 Distinguido" por su trabajo en secuencias de comandos del lado del servidor.
Explicación
En los primeros días de la web, las secuencias de comandos del lado del servidor se realizaban casi exclusivamente mediante una combinación de programas C, secuencias de comandos Perl y secuencias de comandos de shell mediante Common Gateway Interface (CGI). Esos scripts fueron ejecutados por el sistema operativo y los resultados fueron devueltos por el servidor web. Muchos servidores web modernos pueden ejecutar directamente lenguajes de secuencias de comandos en línea como ASP, JSP, Perl, PHP y Ruby, ya sea por el propio servidor web o mediante módulos de extensión (por ejemplo, mod_perl o mod_php) para el servidor web. Por ejemplo, WebDNA incluye su propio sistema de base de datos incorporado. Cualquiera de las formas de secuencias de comandos (es decir, CGI o ejecución directa) se puede utilizar para crear sitios complejos de varias páginas, pero la ejecución directa generalmente genera menos gastos generales debido a la menor cantidad de llamadas a intérpretes externos.
Los sitios web dinámicos a veces utilizan servidores de aplicaciones web personalizados, como Glassfish, Plack y el "Servidor HTTP base" de Python. biblioteca, aunque es posible que algunos no consideren que se trata de secuencias de comandos del lado del servidor. Al utilizar técnicas dinámicas de secuencias de comandos basadas en la web, 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 desencadene la ejecución del código del lado del servidor, por ejemplo, un desarrollador que trabaje con ASP clásico debe hacer que el navegador del usuario realice una solicitud de regreso al servidor web.
Los scripts del lado del servidor son completamente procesados por los servidores en lugar de los clientes. Cuando los clientes solicitan una página que contiene secuencias de comandos del lado del servidor, el servidor de aplicaciones procesa las secuencias de comandos y devuelve una página HTML al cliente.
Representación del lado del servidor
Al principio, el contenido web se generaba únicamente en el back-end. Después de la gran adopción de las aplicaciones frontales de una sola página, se introdujo un nuevo enfoque para generar HTML utilizando la aplicación cliente, pero en el back-end. Ejemplos de marcos que usan SSR son Next.js, Nuxt.js y Nest.js. Utilizan React.js, Vue.js y Angular, respectivamente, para generar el contenido del servidor.
Generación del lado del servidor
Otra técnica similar a SSR para generar contenido para un sitio web es usar la generación del lado del servidor. Esta técnica utiliza una aplicación que crea páginas html estáticas y luego esos archivos se envían al servidor. La generación de archivos puede ocurrir en una computadora completamente diferente, por ejemplo, mediante la entrega continua. Ejemplos de herramientas SSG son Jekyll, Gatsby o Eleventy. Esos sitios a menudo están alojados en páginas de Netlify o GitHub. GitHub también es compatible con proyectos de Jekyll en los que crea automáticamente el sitio cuando se agregan cambios a git.
Idiomas
Hay una serie de lenguajes de secuencias de comandos del lado del servidor disponibles, que incluyen:
- ActiveVFP (*.avfp)
- ASP (*.asp)
- ASP. NET Web Forms (*.aspx)
- ASP. Páginas Web de NET (*.cshtml, *.vbhtml)
- ColdFusion Lenguaje de marcado (*.cfm)
- (*.go)
- Google Apps Script (*.gs)
- Hack (*.php)
- Haskell (*.hs) (ejemplo: Yesod)
- Java (*.jsp, *.do) a través de JavaServer Pages
- JavaScript using Server-side JavaScript (*.ssjs, *.js) (ejemplo: Node.js)
- Lasso (*.lasso)
- Lua (*.lp *.op *.lua)
- Parser (*.p)
- Perl a través del módulo CGI.pm (*.cgi, *.ipl, *.pl)
- PHP (*.php, *.php3, *.php4, *.phtml)
- Python (*.py) (ejemplos: Pirámide, Flask, Django)
- R (*.rhtml)
- Ruby (*.rb, *.rbw) (ejemplo: Ruby on Rails)
- Tcl (*.tcl)
- WebDNA (*.dna,*.tpl)
- Progress WebSpeed (*.r,*.w)
Contenido relacionado
Mikoyan-Gurevich MiG-19
Archivo de Internet
Faro de Eddystone