Objectif : créer un serveur HTTP simple qui fonctionne sur localhost:8080.
Fonctionnalités souhaitées :
- ouvrir un port et écouter les connexions
- accepter les requêtes HTTP GET
- parser la requête HTTP
- gérer des routes simples :
- "/" → page accueil
- "/about" → page à propos
- "/time" → retourner l'heure actuelle
- renvoyer des réponses HTTP correctes
- gérer les erreurs (404)
- servir des fichiers statiques (HTML)
Contraintes techniques :
- langage : C++
- utiliser les sockets TCP
- compatible Linux / macOS
- code clair et bien structuré
- expliquer chaque partie du code
- utiliser une architecture simple (plusieurs fichiers si nécessaire)
Mini HTTP Server in C++
A simple educational HTTP server built in C++ using TCP sockets. This project was created to learn low-level networking, HTTP basics, and clean C++ project structure.
Features
TCP socket server
Runs on localhost:8080
Handles HTTP GET requests
Parses HTTP request line
Simple routing :
/ → home page
/about → about page
/time → current server time
Returns proper HTTP responses
Handles 404 Not Found
Serves static HTML files
Tech Stack : C++ TCP sockets Linux / macOS compatible Makefile build system
Project Structure : src/ # source files include/ # header files public/ # static HTML files docs/ # extra documentation Build make Run ./server
Then open: http://localhost:8080
Test with curl : curl http://localhost:8080/ curl http://localhost:8080/about curl http://localhost:8080/time curl http://localhost:8080/unknown
Learning Goals :
Understand TCP socket programming
Learn how HTTP requests and responses work
Practice modular C++ code organization
Work collaboratively with Git and GitHub
Possible Improvements : Support more HTTP methods Better request parsing MIME type detection Serve CSS and JavaScript files Add logging Add unit tests Handle multiple clients Use threads or select()
Authors Built by Samu and Jordan