Tecnología Web Backend

Arquitectura de aplicaciones web, servidores y desarrollo del lado del servidor

Objetivos de Aprendizaje

Arquitectura de Aplicaciones Web

Frontend (Cliente)

HTML CSS JavaScript React/Angular/Vue

Backend (Servidor)

PHP Java/JSP Node.js Python

Base de Datos

MySQL PostgreSQL MongoDB Oracle

Patrones de Arquitectura

Arquitectura Monolítica

Aplicación única que contiene toda la funcionalidad en un solo despliegue.

Ventajas:
  • Desarrollo simple
  • Fácil despliegue
  • Testing sencillo
Desventajas:
  • Escalabilidad limitada
  • Tecnología única
  • Mantenimiento complejo

Arquitectura de Microservicios

Aplicación dividida en servicios pequeños e independientes.

Ventajas:
  • Escalabilidad independiente
  • Tecnologías diversas
  • Desarrollo paralelo
Desventajas:
  • Complejidad de red
  • Gestión distribuida
  • Testing complejo

Servidores Web y Funcionamiento Server Side

Tipos de Servidores Web

Apache HTTP Server

Servidor web de código abierto más utilizado mundialmente.

  • Módulos extensibles
  • Configuración flexible
  • Soporte multiplataforma
  • Comunidad activa

Nginx

Servidor web de alto rendimiento y proxy reverso.

  • Alto rendimiento
  • Bajo consumo de memoria
  • Balanceador de carga
  • Proxy reverso

IIS (Internet Information Services)

Servidor web de Microsoft para Windows Server.

  • Integración con Windows
  • Soporte .NET
  • Interfaz gráfica
  • Seguridad integrada

Procesamiento del Lado del Servidor

1

Solicitud del Cliente

El navegador envía una petición HTTP al servidor

2

Procesamiento del Servidor

El servidor ejecuta código backend y consulta bases de datos

3

Generación de Respuesta

Se genera HTML dinámico con los datos procesados

4

Respuesta al Cliente

El servidor envía la respuesta HTTP al navegador

Lenguajes y Frameworks Backend

PHP
Java/JSP
Node.js
Python

PHP - Hypertext Preprocessor

Lenguaje de scripting del lado del servidor especialmente diseñado para desarrollo web.

Características

  • Sintaxis similar a C
  • Integración con HTML
  • Amplia compatibilidad con bases de datos
  • Gran comunidad y documentación
  • Hosting económico y accesible

Frameworks Populares

  • Laravel: Framework elegante y expresivo
  • Symfony: Componentes reutilizables
  • CodeIgniter: Framework ligero y simple
  • Zend/Laminas: Framework empresarial

Ejemplo de Código PHP

<?php
// Conexión a base de datos
$pdo = new PDO('mysql:host=localhost;dbname=mi_db', $user, $pass);

// Consulta de datos
$stmt = $pdo->prepare('SELECT * FROM usuarios WHERE activo = ?');
$stmt->execute([1]);
$usuarios = $stmt->fetchAll();

// Mostrar datos
foreach ($usuarios as $usuario) {
    echo "<h3>" . htmlspecialchars($usuario['nombre']) . "</h3>";
    echo "<p>" . htmlspecialchars($usuario['email']) . "</p>";
}
?>

Java/JSP - Java Server Pages

Tecnología que permite crear páginas web dinámicas usando Java en el servidor.

Características

  • Orientado a objetos
  • Multiplataforma (JVM)
  • Fuertemente tipado
  • Alto rendimiento
  • Seguridad robusta

Tecnologías Relacionadas

  • Servlets: Clases Java para web
  • Spring Boot: Framework de aplicaciones
  • Hibernate: ORM para Java
  • Apache Tomcat: Servidor de aplicaciones

Ejemplo de JSP

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.List" %>

<html>
<head>
    <title>Lista de Usuarios</title>
</head>
<body>
    <h1>Usuarios Registrados</h1>
    
    <%
        List<Usuario> usuarios = (List<Usuario>) request.getAttribute("usuarios");
        for (Usuario usuario : usuarios) {
    %>
        <div>
            <h3><%= usuario.getNombre() %></h3>
            <p><%= usuario.getEmail() %></p>
        </div>
    <% } %>
</body>
</html>

Node.js

Entorno de ejecución de JavaScript en el servidor basado en el motor V8 de Chrome.

Características

  • JavaScript en el servidor
  • Asíncrono y orientado a eventos
  • NPM - Gestor de paquetes
  • Alto rendimiento I/O
  • Comunidad activa

Frameworks Populares

  • Express.js: Framework web minimalista
  • Koa.js: Framework moderno y ligero
  • NestJS: Framework escalable
  • Fastify: Framework de alto rendimiento

Python

Lenguaje de programación de alto nivel, interpretado y de propósito general.

Características

  • Sintaxis clara y legible
  • Tipado dinámico
  • Amplia biblioteca estándar
  • Multiplataforma
  • Comunidad grande

Frameworks Web

  • Django: Framework completo
  • Flask: Microframework flexible
  • FastAPI: Framework moderno y rápido
  • Pyramid: Framework minimalista

Desarrollo de Aplicaciones Web

Aplicaciones Web con PHP

1. Configuración del Entorno

  • Instalación de XAMPP/WAMP/LAMP
  • Configuración de Apache y MySQL
  • Editor de código (VS Code, PhpStorm)

2. Estructura del Proyecto

  • Organización de archivos y carpetas
  • Separación de lógica y presentación
  • Configuración de rutas

3. Conexión a Base de Datos

  • PDO para conexiones seguras
  • Prepared statements
  • Manejo de errores

4. Implementación de Funcionalidades

  • CRUD (Create, Read, Update, Delete)
  • Autenticación y autorización
  • Validación de formularios

Aplicaciones Web con JSP

1. Configuración del Entorno

  • Instalación de JDK
  • Configuración de Apache Tomcat
  • IDE (Eclipse, IntelliJ IDEA)

2. Estructura del Proyecto Web

  • Directorio WEB-INF
  • Archivo web.xml
  • Organización de JSP y Servlets

3. Desarrollo de Servlets

  • Manejo de peticiones HTTP
  • Procesamiento de formularios
  • Gestión de sesiones

4. Creación de JSP

  • Scriptlets y expresiones
  • JSTL (JSP Standard Tag Library)
  • Integración con bases de datos

Laboratorio 9: Despliegue de Aplicaciones Web Backend

Objetivos del Laboratorio

  • Configurar entornos de desarrollo para PHP y JSP
  • Desarrollar aplicaciones web funcionales
  • Implementar conexiones a bases de datos
  • Realizar despliegue en servidores web
  • Probar y validar el funcionamiento

Actividades Prácticas

Aplicación PHP

Desarrollo de un sistema de gestión de usuarios con PHP y MySQL

  • Registro y login de usuarios
  • CRUD de perfiles
  • Validación de formularios
  • Sesiones y seguridad

Aplicación JSP

Sistema de inventario usando JSP, Servlets y base de datos

  • Gestión de productos
  • Reportes dinámicos
  • Interfaz web responsive
  • Integración con JDBC

Despliegue

Configuración y despliegue en servidores de producción

  • Configuración de Apache/Tomcat
  • Optimización de rendimiento
  • Configuración de seguridad
  • Monitoreo y logs

Resumen Semana 9

Arquitectura Web

Comprensión de la estructura de aplicaciones web modernas y patrones arquitectónicos como monolitos y microservicios.

Servidores Web

Conocimiento del funcionamiento de servidores como Apache, Nginx e IIS, y el procesamiento del lado del servidor.

Lenguajes Backend

Dominio de PHP y JSP para desarrollo de aplicaciones web dinámicas con conexión a bases de datos.

Desarrollo Práctico

Implementación de aplicaciones completas con funcionalidades CRUD, autenticación y despliegue en producción.