LENGUAJES DEL SERVIDOR

EN QUE CONSISTE 

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 adecuadocuando 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.


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.


CGI (Common Gateway Interface)

Un CGI (Common Gateway Interface) es un programa que se ejecuta en el servidor por petición del navegador de un usuario. El CGI produce un resultado, el cual se envía al navegador que provocó la ejecución del programa. Los CGI dan dinamismo a la web. Las páginas web puras (archivos HTML) son archivos de texto y por tanto estáticos. Sin embargo, si en lugar de pedir una página web el navegador ejecuta un programa, éste puede generar la página «al vuelo» y decidir en el momento cómo va a ser la página.


Usos de Common Gateway Interface

  • Cesta de la compra: cuando un cliente añade algún producto a la cesta de la compra de una tienda en línea, el script CGI procesa esos datos y, luego, los envía al servidor.
  • Comentarios: el usuario rellena un campo de comentarios. Cuando hace clic en “Enviar”, el texto se transmite al script CGI, que, a su vez, lo reenvía al servidor.
  • Formularios: también en el caso de los formularios en línea, como a la hora de enviar algún mensaje o inscribirse en una oferta de trabajo, los datos introducidos ​​son procesados ​​primero por Common Gateway Interface antes de transmitirse al servidor.
  • Estadísticas de páginas web: cuando las páginas web muestran el tráfico que tienen, la tecnología que lo respalda también recurre al CGI en muchos casos.
  • Server Side Includes: el uso de Common Gateway Interface permite cargar el contenido en formato de texto dinámicamente en la página web.
  • Pruebas de software: a través del navegador, los desarrolladores pueden utilizar scripts CGI para probar la funcionalidad de las aplicaciones en línea externas para páginas web.

 Existen tres formas de transmisión de datos:

  • QUERY_STRING: este método se utiliza principalmente para las peticiones de los usuarios.
  • PATH_INFO: este método envía información contextual sobre la página web.
  • Stdin: con este método, se procesan otras solicitudes del usuario.

Ventajas e inconvenientes de Common Gateway Interface

A pesar de sus años de antigüedad, CGI sigue siendo uno de los estándares más utilizados en el desarrollo de páginas web. No obstante, esta tecnología no solo presenta ventajas, sino también algunos inconvenientes.

Ventajas

El CGI es una forma sencilla y eficaz de generar contenido dinámico en las páginas web. Al mismo tiempo, como las aplicaciones CGI no tienen que almacenarse en el servidor, no se utilizan recursos innecesariamente. Desde un punto de vista práctico, otra ventaja de Common Gateway Interface es que es compatible con varios lenguajes de programación y, por lo tanto, puede incorporarse fácilmente a las infraestructuras existentes. Por último, pero no por ello menos importante, se trata de un estándar gratuito y disponible para todos los desarrolladores en cualquier momento.

Inconvenientes

Uno de los mayores puntos débiles de Common Gateway Interface es que, aunque la carga del servidor se reduce, el tiempo de respuesta de las aplicaciones CGI se alarga mucho en algunos casos, porque los programas deben volver a ejecutarse con cada nueva solicitud. Especialmente en el caso de las páginas web con mucho tráfico, el hecho de que los servidores solo suelan admitir una cierta cantidad de aplicaciones CGI y que otras solicitudes entrantes se pongan en espera o, directamente, se rechacen puede suponer un problema.

Por otra parte, al igual que otras interfaces, Common Gateway Interface puede suponer un riesgo para la seguridad si no se configura un medio de protección adecuado. En teoría, a través del CGI, los programas externos tienen acceso a todos los datos del servidor web. Por lo tanto, deben establecerse unas restricciones claras para evitar que los scripts CGI causen daño.

Alternativas a Common Gateway Interface

En los últimos años, se han desarrollado otras tecnologías de interfaz basadas en CGI, pero que intentan mitigar su principal inconveniente: que los scripts deban volver a ejecutarse con cada nueva solicitud del usuario.

ASP (Active Server Pages): ASP fue desarrollado originalmente por Microsoft para sus propios servidores, pero ahora está disponible para muchos otros. El intérprete ASP está integrado en el servidor web, por lo que no es necesario iniciar nuevos procesos al utilizarlo. Los comandos ASP se pueden escribir directamente en las páginas HTML. Al igual que CGI, ASP también es compatible con varios lenguajes de programación.

PHP: junto con Perl, PHP es uno de los lenguajes de scripting más utilizados en Internet. La funcionalidad de PHP es muy similar a la del script CGI. Sin embargo, el intérprete PHP está integrado directamente en el servidor web.

ColdFusion: se desarrolló originalmente para Windows, pero ahora también está disponible para varias plataformas Unix. El intérprete de ColdFusion está integrado en el servidor web, al igual que las alternativas a CGI mencionadas más arriba. Las páginas HTML se pueden modificar con etiquetas predefinidas o con elementos de control personalizados. Además, ColdFusion ofrece a los desarrolladores una serie de funciones estándar.

FastCGI: con FastCGI, las solicitudes dinámicas del servidor web pueden procesarse directamente a través de una interfaz Perl sin tener que iniciar un nuevo proceso. FastCGI es ampliamente compatible con CGI y con gran variedad de servidores web.

     Practical  Extraction and Report Language (  PERL): 

  • es  un  lenguaje de  programación desarrollado por Larry  Wal   (lwal   at netlabs.com)  inspirado  en  otras  herramientas  de UNIX. PERL es el lenguaje más utilizado para la creación de programas CGI en los servidores web.  Es más rápido que los programas shel  script de UNIX, puede leer y escribir ficheros binarios, y puede procesar ficheros grandes. La ventaja más importante de PERL sobre C es que PERL no necesita ser recompilado, es 
  • un lenguaje interpretado.

  • Características del lenguaje Perl

lenguaje perl logo
El lenguaje Perl tiene licencia GPL, por lo tanto es gratuito y se puede descargar sin coste alguno. Como hemos dicho, puede funcionar en varios sistemas operativos, así que puedes decidir.
Perl se utiliza sobretodo para crear aplicaciones CGI para entornos web. Si en nuestro servidor vemos una carpeta llamada cgi-bin, es que allí se encuentra el intérprete Perl, y podemos llamarlo para ejecutar nuestro código.
Aunque fue muy popular en entornos web, todavía se usa para crear scripts de servidores. Ese es el motivo que sea uno de los lenguajes más usados del mundo.
Es un lenguaje interpretado, como la mayoría de lenguajes de programación web , como PHP o JavaScript. Eso significa que el código fuente no se compila, para transformarlo a lenguaje máquina, sino que se va leyendo el código y se interpreta en cada línea de ejecución.
junto al intérprete tenemos un gran conjunto de librerías y módulos. También tiene una interficie para poder conectar con un amplio abanico de motores de bases de datos, ya que puedes consultar mediante SQL y procesar los registros devueltos gracias al módulo DBI, haciendo que el código mismo código sea reutilizable en cualquier tipo de gestor de base de datos..
Una característica de Perl es la posibilidad de ejecutar código o subrutinas en otros lenguajes de programación.
Otra característica curiosa es que sólo tiene tres tipos de datos: los escalares, las listas y los hashes.
Un tipo de datos escalar es un sólo valor, un entero, una cadena o una referencia. En este caso, es como los tipos de datos primitivos en otros lenguajes.
Un tipo de datos lista es una colección de escalares. Lo que comúnmente se llama array.
Un tipo de datos hash es una estructura de datos que asocia claves con valores. En Perl las claves serán un texto y los valores serán de tipo escalar.
Ejemplo de tipos de datos en Perl

En Perl no declaramos el tipo de datos como lo solemos hacer en otros lenguajes, sino que le ponemos un prefijo al nombre de la variable. Los prefijos son $@ y %.

Por ejemplo, en una variable de tipo escalar sería:

$numero = 25;
$texto = "Hola mundo";

Una lista se haría entre paréntesis, separando sus valores por coma:

@listado = (10, 20, 30, 40);

Un hash se haría de la siguiente manera:

%tabla = (primero => 10 , segundo => 20)

También puedes escribirlo en varias líneas:

%tabla = (
    primero => 10 ,
    segundo => 20
);

Ventajas y desventajas de Perl

podemos nombrar una serie de ventajas a la hora de elegir Perl como lenguaje de programación:

  • Es un lenguaje de alto nivel, así que su curva de aprendizaje es suave.
  • Es eficiente a la hora de tratar un gran volumen de datos. Un ejemplo es que se usa en el mercado de finanzas y bioinformática.
  • Es de propósito general: puede usarse en desarrollo web, pero también en otros entornos como la administración de sistemas.
  • Es multiplataforma, además, viene con la propia instalación de cualquier sistema operativo Linux/Unix.
  • Es una buena alternativa a C, ya que no tienes que trabajar con punteros.
  • Alguna desventajas son:
    • Aunque es un lenguaje interpretado, un programa hecho en Perl se compila al principio de su ejecución, por lo que puede ser lento comparado con otros lenguajes similares (esto se soluciona si después trabajas con muchos datos).
    • Su código no es muy legible, comparado con otros lenguajes como Python (que también puede usarse para ejecutar scripts en servidores).
    • No tiene control de excepciones, y los posibles errores suelen tener una dificultad media encontrarlos.

  • Active Server Pages (ASP): 

  • es una tecnología del lado servidor de Microsoft para páginas web generadas dinámicamente, que ha sido comercializada como un anexo a Internet Information Server (IIS). EL estándard ASP permite poder utilizar cualquier lenguaje para la  programación, si bien Microsoft favorece que se utilice el VBScript, y en segundo término el JScript (versión del  estándard Javascript hecha  por  Microsoft). En teoría,  y  mediante  la  programación, es posible adaptar  versiones  de  lenguajes  como Pascal, C  y  otros, para utilizarlos  dentro de páginas ASP.
  • ¿Cuáles son las características de Active Server Pages?

    Ahora bien, en teoría la contraparte de ASP seria JSP (Java Server Pages) que parecen actuar iguales. No obstante, existen diferencias palpables, sobre todo al momento de que el usuario accede a la información.
    En el caso de la tecnología de Microsoft, el código es ejecutado (interpretado) por el servidor sobre la marcha. Por lo tanto, la carga de las webs será más rápida, pero tan solo la primera vez que se accede. ¿Por qué? La razón de esto, es que en Java el código solo se compila una sola vez y se almacena en un archivo .class. Esto no sucede en ASP, y el proceso debe realizarse siempre.
    En ASP se usan etiquetas, que van dentro de un archivo HTML y que son procesadas desde el lado del servidor. La mayoría de las instrucciones se encierran en las etiquetas “<% %>”. Las funciones del lenguaje son amplias, y pueden generar paginas dinámicas de todo tipo. Podrás acceder a contenido en base de datos, o añadir la posibilidad de enviar correo electrónico, todo desde un solo sitio web.

Ventajas y desventajas de usar ASP.NET

ASP.NET cuenta con gran cantidad de sitios web que lo respaldan debido a todas las ventajas que te ofrece. Y son estas las cuales fundamentan la razón por la cual millones de usuarios son fieles a este. No obstante, este marco de desarrollo también presenta algunas desventajas y todo ello lo detallamos a continuación.

Ventajas

Los principales beneficios que te ofrece ASP.NET son:

  • Capacidad de combinación con otros lenguajes: ASP.NET te ofrece todo lo necesario para que desarrolles aplicaciones web, redes sociales, webs empresariales y sistemas de gestión de contenido (CMS). Ello se debe a que te permite combinar su marco de desarrollo con XML, PHP y HTML para que crees webs interactivas con éxito y con un mantenimiento nada complicado.
  • Cuenta con soporte continuo: es una solución efectiva que te ofrece soporte actualizado por Microsoft para que programes con las últimas funciones.
  • Tiene soporte MVC: se trata del modelo vista controlador y es una arquitectura que separa la sección de desarrollo web de la interfaz de diseño. Esto te otorga mayor flexibilidad a la hora de trabajar en equipo, ya que mientras unos desarrollan código otros se dedican al diseño, sin que ninguno tenga que interrumpirse. Esto te ofrece escalabilidad y facilidad para ejecutar el mantenimiento del programa desarrollado.
  • Formularios web: es un marco de desarrollo que te permite crear aplicaciones web sencillas dentro de tus páginas. Tiene la ventaja de que desarrollas el código en una interfaz que posee la misma apariencia del producto final. También te da control para llevar a cabo grandes proyectos sin utilizar tanto código.
  • Acceso a funcionalidades del .net framework: significa que te facilita el trabajo con webservices, bases de datos, criptografía, entre otros recursos.
  • Comunicación estable con base datos SQL Server: te permite trabajar de manera cómoda con el sistema de gestión de bases de datos SQL Server ya que se conecta de manera óptima.
  • Solo se compila el ejecutable: significa que solo el producto final (programa desarrollado) es el que debes compilar para su ejecución.

Desventajas

Aunque ASP.NET tiene muchas ventajas, también encuentras algunos inconvenientes:

  • Menor rendimiento en comparación a Linux: el rendimiento y velocidad del sistema de archivos NTFS (New Technology System) de Microsoft Windows es menor comparado con el sistema de archivos de Linux.
  • Plataforma específica de desarrollo: ASP.NET necesita que desarrolles tu programación desde el Entorno de Desarrollo Integrado (IDE) Visual Studio. Sin embargo, otros marcos de desarrollo tienen mayor flexibilidad en este aspecto, por ejemplo PHP que te permite desarrollar desde cualquier editor de texto (Bloc de notas, Atom, etc.).
  • No es multiplataforma: este marco de desarrollo funciona solo con el sistema operativo Windows y presenta muchos problemas de compatibilidad con el resto de sistemas operativos. Para trabajar sin problemas, necesitas tener una PC con capacidad de trabajo en dicho sistema e instalar el servidor IIS de Microsoft. No obstante, esta limitación es un punto en contra, ya que otros sistemas de desarrollo se ejecutan en Linux, Windows o derivados de Mac OS.
  • Mayor tiempo de desarrollo: aunque solo necesitas compilar el programa que vas a ejecutar, esto te lleva más tiempo en comparación con otros marcos de desarrollo. Asimismo, le agrega más tiempo a todo el proceso de elaborar una solución web.
  • Escaso soporte comunitario: aunque ASP.NET cuenta con actualizaciones de seguridad constantes, no tiene foros de ayuda de colaboración desinteresada lo suficientemente amplios para colaborar en el desarrollo web.
  • Elevado consumo de recursos: el uso de ASP.NET necesita muchos recursos para su correcto funcionamiento y compilación de recursos programados, ello significa más memoria ram y velocidad de procesamiento del CPU.
Java Server Pages (JSP):
  •  es la tecnología para generar páginas web de forma dinámica en el servidor, desarrollado por Sun  Microsystems, basado  en  scripts  que utilizan una variante  del lenguaje Java. La tecnología JSP, o de JavaServer Pages, es una tecnología Java que permite a los programadores generar dinámicamente HTML, XML o algún otro tipo de página web. Esta tecnología permite al  código  Java y  a algunas  acciones  predefinidas  ser embebidas  en  el contenido  estático. La principal  ventaja de  JSP  frente a otros  lenguajes  es  que permite integrarse con  clases  Java (.class)  lo que permite separar  en  niveles  las  aplicaciones  web, almacenando  en  clases  java las  partes  que  consumen  más  recursos  así como las  que requieren más seguridad, y dejando la parte encargada de formatear el documento ‘html ‘ en el archivo jsp. Además Java se caracteriza por ser un lenguaje que puede ejecutarse en cualquier sistema, lo que sumado a jsp le da mucha versatilidad.
Java Server Pages (JSP, para abreviar) es una tecnología basada en Java que simplifica el desarrollo de páginas web con contenido dinámico. Con JSP, los diseñadores web pueden incorporar elementos dinámicos dentro de la página utilizando tanto porciones de código Java incrustadas, como unas cuantas etiquetas. Así, las páginas JSP tienen el aspecto de una página tradicional HTML, a la que se le ha introducido parte de código Java junto con unas etiquetas. De esta forma, cuando una página es solicitada por un usuario y procesada por un servidor HTTP, el código HTML pasará directamente al usuario, mientras que las porciones de código Java serán ejecutadas en el servidor cuando la solicitud haya sido recibida, para generar el contenido dinámico de la página. Cuando el usuario acceda al código de la página que le llega sólo verá HTML, sin poder acceder al código JSP subyacente
Un codigo JSP empieza con "<%" y terminan con "%>"

Ventajas y desventajas de JSP


Ventajas

La principal ventaja de JSP frente a otros lenguajes es que el lenguaje Java es un lenguaje de propósito general que excede el mundo web y que es apto para crear clases que manejen lógica de negocio y acceso a datos de una manera prolija. Esto permite separar en niveles las aplicaciones web, dejando la parte encargada de generar el documento HTML en el archivo JSP.

Otra ventaja es que JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en múltiples plataformas sin cambios. Es común incluso que los desarrolladores trabajen en una plataforma y que la aplicación termine siendo ejecutada en otra.

Etiquetas JSP para simplificar el código y dar mayor funcionalidad.Desarrollar sitios web utilizando etiquetas presenta ciertas ventajas como; facilitar el aprendizaje, facilitar el mantenimiento, fomentar la modularidad y la reutilización y simplificar el código y reducir el número de líneas necesarias.

Otras de las ventajas de JSP es que es un lenguaje totalmente escrito, fuerte capacidad de manipulación de gráficos, cargas de APIs: Interfaz de programación de aplicaciones.

También tenemos el Open source; código abierto es la expresión con la que se conoce al software distribuido y desarrollado libremente.
 La ventaja que también es fundamental de JSP es que tenemos el lenguaje java a nuestro alcance. JSP tiene robustez y es multiplataforma.

Desventajas

Una de las desventajas que JSP tiene es que no posee una interfaz, ya que la interfaz web es limitada, la codificación de interfaces elaboradas lleva muchas líneas de código, y la mayoría debe hacerse usando scripts (javascript). No tiene tipo VARIANT de variables, tampoco soporta Switchs o arrays con índices alfanuméricos, y la carga de la interfaz es más lenta que la de una aplicación de escritorio.
Otra desventaja que también tiene es que la mayor parte de la lógica de la aplicación se ejecuta en el servidor, por lo que se corre el riesgo de sobrecargar al mismo y, la aplicación no está disponible si ocurre algún problema con el servidor o con la conexión de red.

  •   Hipertext Preprocesor (PHP): 
  •  PHP  (acrónimo recursivo de  “PHP: Hypertext Preprocessor”, originado inicialmente del nombre PHP Tools, o Personal Home Page Tools) es un lenguaje de programación interpretado. Aunque fue concebido en el tercer trimestre de 1994 por Rasmus Lerdorf no fue hasta el día 8 de Junio de 1995 que fue lanzada la versión 1.0. Se utiliza entre otras cosas para la programación de páginas web activas, y se destaca por su capacidad de mezclarse con el  código  HTML. Aunque  su creación y  desarrol o se da  en  el  ámbito de  los sistemas  libres, bajo  la  licencia  GNU, existe además  un  compilador comercial  denominado (Zend Optimizer). El desarrollo del código abierto por un lado y el firme respaldo comercial por el  otro, han elevado  a PHP  a alcanzar una  popularidad más  que notable.
  • PHP es un lenguaje de programación destinado a desarrollar aplicaciones para la web y crear páginas web, favoreciendo la conexión entre los servidores y la interfaz de usuario.

    Entre los factores que hicieron que PHP se volviera tan popular, se destaca el hecho de que es de código abierto.

    Esto significa que cualquiera puede hacer cambios en su estructura. En la práctica, esto representa dos cosas importantes:

    1. es de código abierto, no hay restricciones de uso vinculadas a los derechos. El usuario puede usar PHP para programar en cualquier proyecto y comercializarlo sin problemas.
    2. está en constante perfeccionamiento, gracias a una comunidad de desarrolladores proactiva y comprometida

    • VENTAJAS DE PROGRAMAR EN PHP:
    • *Es un lenguaje multiplataforma.Completamente orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una Base de Datos.
    • *El código fuente escrito en PHP es invisible al navegador y al cliente ya que es el servidor el que se encarga de ejecutar el código y enviar su resultado HTML al navegador. Esto hace que la programación en PHP sea segura y confiable.
    • *Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.
    • *Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones).

    DESVENTAJAS DE PROGRAMAR EN PHP:
    *Como es un lenguaje que se interpreta en ejecución para ciertos usos puede resultar un inconveniente que el código fuente no pueda ser ocultado. 
    *La ofuscación es una técnica que puede dificultar la lectura del código pero no la impide y, en ciertos casos, representa un costo en tiempos de ejecución
    *El lugar mas seguro para ejecutar una aplicacion es en un servidor propio, por lo cual si un cliente o usuario requiere su codigo en su pc, tendriamos que dejar su codigo, sin manera de ocultarlo, aunque hay muchas aplicaciones que nos ayuda a encriptar el codigo fuente
    *Debes saber cuando menos HTML para poder hacer un trabajo medianamente funcional
    Si no lo configuras correctamente dejas abiertas muchas brechas de seguridad Se necesita instalar un servidor web.

    No hay comentarios.:

    Publicar un comentario