Skip to content

Pau993/Taller01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Servidor Web con Soporte para Múltiples Solicitudes No Concurrentes

En este taller, exploraremos el funcionamiento de un servidor web capaz de manejar múltiples solicitudes de forma secuencial (no concurrente). El servidor leerá archivos desde el disco local y responderá con cualquier archivo solicitado, incluyendo:

Páginas HTML Archivos JavaScript Hojas de estilo CSS Imágenes Este ejercicio permitirá comprender cómo un servidor procesa peticiones y sirve contenido estático de manera eficiente.

Descripción de la aplicación 📖

La aplicación web diseñado como una plataforma visualmente atractiva y funcional, ideal para explorar y gestionar diversos archivos. Su objetivo es proporcionar una interfaz intuitiva y moderna que permita a los usuarios interactuar con elementos como JavaScript, CSS, HTML e imágenes de manera rápida y sencilla. La aplicación combina un diseño elegante con animaciones suaves y una experiencia de usuario optimizada.

Diagrama de Arquitectura

  • Usuario (User):

Es quien realiza solicitudes HTTP a través de un navegador web.

  • Navegador (Browser):

Actúa como intermediario entre el usuario y el servidor HTTP. Realiza solicitudes HTTP al servidor en busca de recursos como archivos HTML, JavaScript, CSS o imágenes.

  • Servidor HTTP (HttpServer):

Es el servidor que recibe y procesa las solicitudes HTTP enviadas por el navegador. Se encuentra dentro de un "grupo genérico", lo que indica que puede formar parte de una infraestructura más amplia.

El navegador envía varias solicitudes HTTP al servidor en el puerto 35000 para diferentes rutas:

  • /script.js: Solicitud para obtener un archivo de JavaScript.
  • /index.html: Solicitud para cargar el archivo principal de la página web.
  • /estilos.css: Solicitud para cargar el archivo de estilos CSS.
  • /Imagen/Chill.jpg: Solicitud para obtener una imagen ubicada en una ruta específica.

El servidor procesa estas solicitudes y responde con los recursos correspondientes desde su sistema de archivos.

image

Diagrama de Clase

Este diagrama describe la estructura básica y las responsabilidades principales de la clase HttpServer, que está diseñada para manejar solicitudes HTTP y servir archivos estáticos.

image

Comenzando 🚀

Las siguientes instrucciones le permitirán obtener una copia del proyecto en funcionamiento en su máquina local para fines de desarrollo y prueba.

Tecnologías usadas ⚙️

  • Maven : Gestor de dependencias y automatización de construcción para Java.
  • JavaScript : Lenguaje de programación para interactividad en la web.
  • Java : Lenguaje de programación robusto para backend y aplicaciones empresariales.
* Versión Maven: 3.9.9
* Versión Java: 21

Instalación 📦

Realice los siguientes pasos para clonar el proyecto en su máquina local.

git clone https://github.com/Pau993/Taller01.git
cd Taller01
git checkout Taller01
mvn clean compile

Ejecutando la aplicación ⚙️

Para ejecutar la aplicación, ejecute el siguiente comando:

mvn exec:java '-Dexec.mainClass=edu.eci.arep.App'

El anterior comando limpiará las contrucciones previas, compilará y empaquetará el código en un jar y luego ejecutará la aplicación.

Diríjase a su navegador de preferencia y vaya a la siguiente dirección: http://localhost:35000/ para ver la aplicación en funcionamiento.

Ejecutando las pruebas ⚙️

Para ejecutar las pruebas, ejecute el siguiente comando:

Las pruebas realizadas en este proyecto se enfocan en la validación y verificación de requisitos relacionados con el proceso de gestión de solicitudes, asegurando su correcto funcionamiento y cumplimiento de especificaciones.

mvn test

image

Descripción de las pruebas

  • testHandleApiRequestSaludo 🛠️

Verifica que la solicitud a la ruta /api/saludo responde con HTTP 200 OK y contiene el mensaje JSON esperado.

  • testHandleApiRequestFecha 📅

Valida que la solicitud a /api/fecha devuelve HTTP 200 OK y contiene una clave "fecha" en la respuesta.

  • testHandleApiRequestNotFound ❌

Comprueba que una ruta inexistente, como /api/desconocido, devuelve HTTP 404 Not Found.

  • testHandleApiPostRequest 📤

Evalúa que una solicitud POST a /api/enviar con un cuerpo JSON sea procesada correctamente y responda con HTTP 200 OK y el mensaje

Características principales: ⚙️

  1. Interfaz moderna y responsiva:
  • Un diseño minimalista con un esquema de colores que incluye degradados de tonos morados, creando una experiencia visual sofisticada.
  • Totalmente adaptable a diferentes dispositivos gracias a su diseño responsivo.
  1. Gestión de archivos: ⚙️
  • Incluye botones interactivos que permiten abrir y visualizar archivos clave como:
  • Archivos JavaScript (script.js).
  • Hojas de estilo CSS (estilos.css).
  • Documentos HTML (index.html).
  • Imágenes (Chill.jpg).

Muestra de la aplicación 🧩

image

Autores ✒️

Licencia 📄

This project is licensed under the MIT License - see the LICENSE.md file for details

Agradecimientos 🎁

Agradecimientos al profeso Daniel Benavides por brindarme sus conocimientos.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published