Saltar a contenido

Herramientas

Servidor Web

Un servidor web es un software que forma parte del servidor y tiene como misión principal devolver recursos (HTML, CSS, JS, JSON, imágenes, etc.) cuando recibe peticiones HTTP (GET, POST, DELETE, ...) por parte de los usuarios.

El producto más implantado es Apache Web Server, creado en 1995, el cual destaca por:

  • Software libre y multiplataforma
  • Sistema de módulos dinámicos (PHP, Python, Perl ...)
  • Utiliza el archivo .htaccess para su configuración

En la actualidad, Apache está perdiendo mercado respecto a Nginx. Se trata de un producto más moderno (2004) y que, en determinados escenarios, tiene mejor rendimiento que Apache.

Para saber más...

Aunque estas herramientas se trabajan en el módulo de Despliegue de Aplicaciones Web, es recomendable que visites la siguiente comparativa servidores web

Servidor de Aplicaciones

  • Software que ofrece servicios adicionales a los de un servidor web:
    • Clustering1
    • Balanceo de carga2
    • Tolerancia a fallos
  • Tomcat es el servidor de aplicaciones open-source y multiplataforma de referencia para una arquitectura Java.
    • Contiene un contenedor Web Java que interpreta Servlets y JSP.

Lenguajes en el servidor

Las aplicaciones que generan las páginas web se programan en alguno de los siguientes lenguajes:

  • PHP
  • JavaEE: Servlets / JSP
  • Python
  • ASP.NET (Visual Basic .NET / C#)
  • Ruby
  • ...

JavaEE

Java Enterprise Edition es la solución de Java para el desarrollo de aplicaciones empresariales. Ofrece una arquitectura muy completa y compleja, escalable y tolerante a fallos. Está planteada para aplicaciones para grandes sistemas.

JavaEE

JavaEE.

PHP

  • Lenguaje de propósito general diseñado para el desarrollo de páginas web dinámicas
  • En un principio, lenguaje no tipado.
  • Actualmente en la versión 8.3 . Se recomienda al menos utilizar una versión superior a la 7.0.
  • Código embebido en el HTML
  • Instrucciones entre etiquetas <?php y ?>
    • Para generar código dentro de PHP, podemos usar la instrucción echo
  • Multitud de librerías y frameworks:
    • Laravel, Symfony, Codeigniter, Zend

Su documentación es bastante completa

El siguiente mapa mental muestra un resumen de sus elementos:

PHP

PHP.

Durante las siguientes unidades vamos a estudiar PHP en profundidad.

Python

  • Lenguaje de propósito general que se utiliza ampliamente en el desarrollo web, análisis de datos, inteligencia artificial y más.
  • Lenguaje tipado dinámicamente, lo que permite mayor flexibilidad en la escritura de código.
  • La versión más reciente es Python 3.11, y se recomienda utilizar al menos la versión 3.6.
  • Código estructurado mediante indentación, sin necesidad de etiquetas específicas.
  • Para generar salida en Python, podemos usar la instrucción print().
  • Dispone de una gran cantidad de librerías y frameworks:
    • Django, Flask, FastAPI, Pyramid.

.NET

  • Plataforma de desarrollo creada por Microsoft que permite la construcción de aplicaciones web, de escritorio y móviles.
  • Utiliza lenguajes como C# y VB.NET, que son tipados de forma estática.
  • La versión más reciente es .NET 7, y se recomienda utilizar al menos la versión 5.0.
  • Código organizado en clases y métodos, sin necesidad de etiquetas específicas para su inclusión en HTML.
  • Para generar contenido dinámico en .NET, se pueden utilizar mecanismos como Response.Write().
  • Cuenta con numerosos frameworks y bibliotecas:
    • ASP.NET Core, Blazor, Entity Framework, Xamarin.

Actividad

  • ⚓ AR 102. (RA1 / CE1a CE1b CE1c CE1f CE1g / IC1 / 3p) - Desde el departamento de proyectos nos solicitan que investigues las tecnologías empleadas en cliente y servidor necesarias para el desarrollo de la aplicación encargada por la empresa "Docentes Asociados S.A.". Para ello, no dudes en consultar cuáles son las que usan tus webs de referencia.

  1. El clustering es una técnica de análisis de datos que agrupa un conjunto de datos en grupos o clusters basados en la similitud entre los datos dentro de cada grupo, sin necesidad de etiquetas predefinidas. 

  2. El balanceo de carga es una técnica utilizada para distribuir de manera equitativa el tráfico y las solicitudes de trabajo entre múltiples servidores o recursos, asegurando así un rendimiento óptimo y evitando la sobrecarga de un solo servidor.