Skip to content

Gilberto-Galan/Mini-Server-HTTP

Repository files navigation

🌐 Mini HTTP Server (C++17)

C++17 Platform License Winsock2 Build Author

Servidor HTTP basico en C++ para Windows que sirve archivos estaticos desde la carpeta www.

✅ Requisitos

  • Windows
  • g++ (MinGW/TDM-GCC) disponible en PATH

Para validar que tienes g++:

g++ --version

🗂️ Estructura del proyecto

mini-http/
|-- main.cpp
|-- HttpServer.h
|-- HttpServer.cpp
|-- HttpRequest.h
|-- HttpRequest.cpp
|-- HttpResponse.h
|-- HttpResponse.cpp
|-- tasks.json
|-- launch.json
`-- www/
    |-- index.html
    |-- styles.css
    `-- app.js

🛠️ Compilar

Desde la carpeta del proyecto:

g++ -std=c++17 -pthread main.cpp HttpServer.cpp -lws2_32 -o MiniHttpServer.exe

💡 Nota: en Windows es obligatorio enlazar -lws2_32 para sockets.

▶️ Ejecutar

.\MiniHttpServer.exe

Si todo va bien veras:

Servidor escuchando en puerto 8080

🌍 Probar en navegador

Abrir:

Esto carga index.html y sus recursos:

  • /styles.css
  • /app.js

🧪 Probar por terminal

curl.exe -i http://127.0.0.1:8080/
curl.exe -i http://127.0.0.1:8080/styles.css
curl.exe -i http://127.0.0.1:8080/app.js

⏹️ Detener el servidor

En la terminal donde esta corriendo:

Ctrl + C

🚨 Problemas comunes

  1. Error de enlazado undefined reference to __imp_listen o __imp_accept

    • ❌ Falta -lws2_32 en el comando de compilacion.
  2. El navegador no carga cambios de CSS o JS

    • 🔄 Recarga forzada con Ctrl + F5.
  3. Puerto 8080 ocupado

    • 🔁 Cambia el puerto en main.cpp.

⚡ Flujo rapido

g++ -std=c++17 -pthread main.cpp HttpServer.cpp -lws2_32 -o MiniHttpServer.exe
.\MiniHttpServer.exe

👤 Autor

Gilberto Galán — Mini HTTP Server en C++17 para Windows.

📄 Licencia

Distribuido bajo la licencia MIT. © 2026 Gilberto Galán.

About

Un servidor HTTP minimalista implementado desde cero en C utilizando sockets Unix. Diseñado para demostrar el funcionamiento de redes de bajo nivel y el protocolo HTTP/1.1.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors