Las secuencias de comandos del lado del servidor son una técnica utilizada en el desarrollo web que implica el empleo de secuencias de comandos en un servidor web que producen una respuesta personalizada para la solicitud de cada usuario (cliente) al sitio web. La alternativa es que el propio servidor web proporcione una página web estática . Los scripts se pueden escribir en cualquiera de los lenguajes de script del lado del servidor que están disponibles (ver más abajo). 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 al propietario del sitio web ocultar el código fuente que genera la interfaz, mientras que en el lado del cliente scripting, 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, 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 de datos de una manera comúnmente usada, por ejemplo, según los HTTP o FTP protocolos , los usuarios pueden tener la elección de una serie de programas de cliente (la mayoría de los navegadores web modernos pueden solicitar y recibir datos a través de estos dos 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, por lo que las operaciones de dichos programas no se considerarían operaciones del lado del cliente.
Historia
Netscape introdujo una implementación de JavaScript para scripts del lado del servidor con Netscape Enterprise Server , lanzada por primera vez en diciembre de 1994 (poco después de lanzar JavaScript para navegadores). [1] [2]
Las secuencias de comandos del lado del servidor fueron utilizadas posteriormente a principios de 1995 por Fred DuFresne 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 la creación de scripts del lado del servidor.
Hoy en día, una variedad de servicios utilizan secuencias de comandos del lado del servidor para entregar resultados a un cliente como un servicio pago o gratuito. Un ejemplo sería WolframAlpha , que es un motor de conocimiento computacional que calcula los resultados fuera del entorno del cliente y devuelve el resultado calculado. Un servicio más utilizado es el motor de búsqueda patentado de Google , que busca millones de resultados almacenados en caché relacionados con la palabra clave especificada por el usuario y devuelve una lista ordenada de enlaces al cliente. La aplicación Siri de Apple también emplea secuencias de comandos del lado del servidor fuera de una aplicación web. La aplicación toma una entrada, calcula un resultado y devuelve el resultado al cliente.
Explicación
En los primeros días de la web, las secuencias de comandos del lado del servidor se realizaban casi exclusivamente mediante el uso de una combinación de programas C , secuencias de comandos Perl y secuencias de comandos de shell utilizando 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 scripting 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 ) al servidor web. Por ejemplo, WebDNA incluye su propio sistema de base de datos integrado. Se puede utilizar cualquier forma de scripting (es decir, CGI o ejecución directa) para construir sitios complejos de varias páginas, pero la ejecución directa generalmente resulta en menos gastos debido al menor número de llamadas a intérpretes externos.
Los sitios web dinámicos a veces usan servidores de aplicaciones web personalizados, como Glassfish , Plack y la biblioteca "Base HTTP Server" de Python , aunque algunos pueden no considerar que esto sea una secuencia de comandos del lado del servidor. Cuando se utilizan técnicas de secuencias de comandos dinámicas basadas en la web, los desarrolladores deben tener un profundo conocimiento 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 trabaja con ASP clásico debe hacer explícitamente que el navegador del usuario haga una solicitud al servidor web. La creación de tales interacciones puede consumir fácilmente mucho tiempo de desarrollo y generar un código ilegible.
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 correspondiente procesa los scripts y devuelve una página HTML al cliente.
Idiomas
Hay varios lenguajes de secuencias de comandos del lado del servidor disponibles, que incluyen:
- ActiveVFP (* .avfp)
- ASP (* .asp)
- Formularios web ASP.NET (* .aspx)
- Páginas web ASP.NET (* .cshtml, * .vbhtml)
- Lenguaje de marcado ColdFusion (* .cfm)
- Ir (* .go)
- Secuencia de comandos de Google Apps (* .gs)
- Hack (* .php)
- Haskell (* .hs) (ejemplo: Yesod )
- Java (* .jsp, * .do) a través de JavaServer Pages
- JavaScript usando JavaScript del lado del servidor (* .ssjs, * .js) (ejemplo: Node.js )
- Lazo (* .lasso)
- Lua (* .lp * .op * .lua)
- Analizador (* .p)
- Perl a través del módulo CGI.pm (* .cgi, * .ipl, * .pl)
- PHP (* .php, * .php3, * .php4, * .phtml)
- Python (* .py) (ejemplos: Pyramid , Flask , Django )
- R (* .rhtml)
- Ruby (* .rb, * .rbw) (ejemplo: Ruby on Rails )
- SMX (* .smx)
- Tcl (* .tcl)
- WebDNA (* .dna, *. Tpl)
- Progreso WebSpeed (* .r, *. W)
Ver también
- Secuencias de comandos del lado del cliente
- Sistema de gestión de contenido (CMS)
- El lado del borde incluye
- JSP
- Node.js
- Esquema de diseño web y desarrollo web
- Perl / Plack
- PHP
- El lado del servidor incluye (SSI)
- desarrollo web
Referencias
- ^ "Guía de JavaScript del lado del servidor" . Corporación de comunicaciones de Netscape. 1998 . Consultado el 25 de abril de 2012 .
- ^ Mike Morgan (1996). "Uso de Netscape ™ LiveWire ™, edición especial" . What.
enlaces externos
- Scripting del lado del servidor en Curlie ;