Aller au contenu principal
Retour à l’index

03Projet

Dépôt

Webserv

Serveur HTTP/1.1 conforme RFC, en C++ pur

Serveur web écrit de zéro en C++, sans bibliothèque externe : parsing HTTP/1.1 conforme à la RFC 7230, multiplexing d'entrées-sorties et exécution de scripts CGI.

Contexte

Réimplémenter un serveur web à partir de la RFC, c'est découvrir tout ce que les frameworks masquent : le parsing des en-têtes, les connexions persistantes, la sémantique exacte de chaque code de statut. La vraie difficulté est ailleurs : gérer plusieurs clients simultanés sur un seul thread impose de ne jamais bloquer, donc de piloter l'ensemble par `select()` et de tenir soi-même l'état de chaque connexion. Le serveur se configure par un fichier au format proche de celui de nginx.

Fonctionnalités

  • 01Serveur HTTP/1.1 complet et conforme à la RFC
  • 02Multiplexing I/O avec select() sur un thread unique
  • 03Gestion de clients multiples simultanés
  • 04Support CGI (PHP, Python, scripts shell)
  • 05Parsing de fichiers de configuration flexible
  • 06Gestion complète des codes d’erreur HTTP

Captures

01 / 07
Webserv01 / 07
Capture d’écran de Webserv (1/7)