Projet Webserv
Un serveur HTTP haute performance et non bloquant en C++98. Inspiré de Nginx, il utilise epoll() pour le multiplexage et supporte le CGI, le téléchargement de fichiers et la gestion des requêtes conforme aux normes RFC.

Overview
Créer un serveur web personnalisé à partir de zéro permet de comprendre ce que les frameworks modernes abstraient souvent : la gestion des connexions, le parsing des requêtes, le respect du protocole et la performance sous charge. Inspiré de Nginx, ce projet implémente une architecture scalable basée sur epoll pour gérer efficacement plusieurs connexions simultanées.
Architecture & fonctionnalités
Développé en C++ (C++98), le serveur repose sur des sockets non bloquants combinés à une boucle d’événements multiplexée pour des performances élevées. Il prend en charge les méthodes HTTP principales (GET, POST, DELETE), un système de configuration flexible inspiré de Nginx (routes, ports, pages d’erreur), ainsi que l’exécution CGI pour du contenu dynamique (PHP, Python). Des fonctionnalités supplémentaires incluent l’upload de fichiers sécurisé et une validation stricte des requêtes.
Ce que nous avons appris
Ce projet nous a permis de comprendre en profondeur le fonctionnement interne des serveurs web : gestion des connexions simultanées, respect du protocole HTTP et optimisation des performances avec une architecture orientée événements. Il a renforcé nos compétences en programmation bas niveau, gestion des sockets et débogage de systèmes complexes, tout en mettant en évidence les compromis entre performance, scalabilité et complexité du code.
key features & compétences
- Design événementiel avec epoll
- Parsing HTTP proche des RFC
- Chemin CGI pour contenu dynamique
- Compétences transférables infra & plateforme
Prêt à construire quelque chose de similaire ?
Que vous ayez besoin d'un site performant, d'automatisation ou de designs qui convertissent — je collabore avec des personnes au Maroc et à l'international pour livrer des résultats mesurables.
Démarrer votre projet