Este proyecto consiste en la implementación de un servidor HTTP en Java utilizando el patrón de diseño Singleton. El servidor es capaz de manejar conexiones TCP, implementar el protocolo HTTP y realizar multithreading para atender múltiples solicitudes simultáneamente.
-
Protocolo HTTP: El servidor implementa los protocolos HTTP/1.1 según las especificaciones de los documentos RFC 7230, RFC 7231 y RFC 7232.
-
Conexiones TCP: Utiliza sockets de servidor para establecer conexiones TCP con los clientes.
-
Multithreading: El servidor es capaz de manejar múltiples solicitudes simultáneamente gracias a la utilización de hilos (threads).
-
Patrón Singleton: Se utiliza el patrón Singleton para garantizar que solo exista una instancia del servidor en todo el sistema.
Para el desarrollo de este proyecto, se consultaron diversas fuentes de documentación, entre ellas:
- Video tutorial series: Java HTTP Server Tutorial by CoderFromScratch
- RFC 7230: Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
- RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
- RFC 7232: Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
- Medium article: Creating a HTTP Server in Java by Robert Finn
Estas fuentes fueron fundamentales para comprender los detalles del protocolo HTTP, la implementación del servidor y las mejores prácticas en Java para el manejo de conexiones TCP y multithreading.