Servidor de archivos estáticos en Java con sockets

Aprende a crear un servidor de archivos estáticos en Java con sockets: estructura modular, lectura de peticiones HTTP, respuestas 200/404, detección de MIME, seguridad y pruebas.

20 sept 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Crear un servidor de archivos estáticos en Java usando sockets es una excelente manera de entender los fundamentos de HTTP y la gestión de E/S en red. La idea central consiste en escuchar conexiones entrantes, leer la petición HTTP para identificar el archivo solicitado y devolver su contenido como respuesta HTTP. Si el archivo no existe, se devuelve un 404 Not Found.

Estructura del proyecto: crea un proyecto Java con clases separadas para mantener el código limpio: Main, Server, FileUtil, RequestUtil, ResponseUtil y SystemUtil. Añade una carpeta de recursos normalmente en src/main/resources y dentro de ella una carpeta static que será la raíz para archivos HTML, CSS, imágenes y otros recursos estáticos.

Clase Main: su único propósito es arrancar el servidor. Llama al método run de la clase Server con el puerto deseado, por ejemplo 9090.

Clase Server: es el núcleo. Crea un ServerSocket para escuchar en el puerto, localiza la carpeta static en los recursos y genera un mapa concurrente que asocia rutas relativas solicitadas por el cliente con los Path absolutos en disco. En un bucle infinito acepta conexiones, extrae la URL solicitada con RequestUtil y responde mediante ResponseUtil. Esta separación permite búsquedas rápidas de archivos y un manejo claro de entrada y salida.

FileUtil: recorre recursivamente la carpeta static usando Files.walk y construye un ConcurrentHashMap donde las claves son rutas relativas amigables para URL como index.html o css/style.css y los valores son los Path absolutos. Para construir la clave se normaliza el separador de archivos y se genera una ruta con barras hacia delante.

RequestUtil: lee la primera línea de la petición HTTP entrante y extrae la parte correspondiente a la ruta solicitada. Es suficiente con analizar el primer renglón del encabezado que contiene el método, la ruta y la versión del protocolo.

ResponseUtil: envía la respuesta HTTP al cliente. Primero escribe la línea de estado y los encabezados necesarios, por ejemplo status 200, control de cache y luego una línea en blanco seguida por el contenido del archivo. Implementa sobrecargas para enviar un array de bytes o un Path leído directamente a bytes. Es recomendable añadir encabezado Content Type y Content Length para que el navegador interprete correctamente el recurso.

SystemUtil: simple utilitario que devuelve el nombre del sistema operativo para manejar diferencias en el separador de rutas entre Windows y sistemas Unix like.

Mejoras y consideraciones prácticas: añade detección de tipo MIME para Content Type, maneja streaming de archivos grandes en lugar de leer todo en memoria, incorpora un thread pool para atender múltiples conexiones simultáneas y protege contra path traversal validando y normalizando rutas. También puedes implementar cacheo inteligente y soporte para conexiones persistentes si lo deseas.

Seguridad: valida las rutas solicitadas para evitar accesos fuera de la carpeta static, limita permisos de archivos, y registra solicitudes sospechosas. Para una solución empresarial cuenta con prácticas de ciberseguridad y pruebas de pentesting para endurecer el servidor y sus dependencias.

Ejecutar y probar: lanza la clase Main, verás un mensaje indicando el puerto en consola. Coloca un archivo index.html en la carpeta static y navega a https://localhost:9090/index.html para verificar que el servidor devuelve y renderiza el contenido. Si el recurso no existe, se devolverá un 404 Not Found.

En Q2BSTUDIO transformamos este tipo de soluciones técnicas en proyectos productivos y seguros. Somos una empresa de desarrollo de software que ofrece aplicaciones a medida y software a medida para empresas que necesitan soluciones escalables. Si necesitas desarrollar una aplicación personalizada podemos ayudarte con experiencia en múltiples plataformas y arquitecturas, mira nuestro servicio de desarrollo de aplicaciones y software a medida en desarrollo de aplicaciones multicanal.

Ofrecemos además servicios de inteligencia artificial e integración de agentes IA para automatizar tareas y extraer valor de los datos. Si te interesa aplicar modelos de IA a tus procesos consulta nuestra oferta de inteligencia artificial en soluciones de inteligencia artificial para empresas. También cubrimos ciberseguridad, pentesting y protección de infraestructuras, servicios cloud aws y azure, servicios inteligencia de negocio y visualización con power bi.

Palabras clave y servicios: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi son áreas en las que Q2BSTUDIO aporta experiencia y soluciones a la medida de tus necesidades. Si tu proyecto requiere integración con AWS o Azure, o necesitas automatizar procesos y optimizar despliegues cloud, podemos asesorarte y ejecutar la solución.

Resumen final: un servidor estático con sockets en Java es educativo y útil para casos simples. Para producción considera usar un servidor HTTP completo o mejorar la implementación con MIME, streaming, concurrencia y medidas de seguridad. Cuando necesites llevar tu idea a un producto robusto y seguro, Q2BSTUDIO puede acompañarte desde la arquitectura hasta la puesta en marcha y la operación continua.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat