Implémentation d’un serveur HTTP en C++98 (projet Common Core 42).
- Serveur non bloquant multi-clients (poll).
- Parsing de configuration type Nginx simplifié.
- Méthodes HTTP gérées :
GET,POST,DELETE. - Fichiers statiques, autoindex, pages d’erreur.
- Upload de fichiers.
- Exécution CGI (
.pl,.py,.sh) avec gestion de timeout. - Gestion basique des connexions persistantes (keep-alive).
srcs/: implémentations C++.include/: headers.conf/webserv.conf: configuration principale d’exemple.var/www/: contenus statiques et pages d’erreur.var/cgi-bin/: scripts CGI de test.
Prérequis:
c++compatible C++98make
Build:
makeNettoyage:
make clean
make fcleanLe binaire attend obligatoirement un fichier de configuration :
./webserv conf/webserv.confPorts utilisés par la config fournie :
8080: contenu statique8081: upload (POST/DELETE)8082: CGI
Arrêt serveur : Ctrl+C.
curl -i http://127.0.0.1:8080/curl -i -X POST --data-binary @README.md http://127.0.0.1:8081/./test_cgi.shOu avec URL explicite :
./test_cgi.sh http://127.0.0.1:8082- Projet académique 42, orienté apprentissage de la programmation réseau bas niveau.
- Le comportement exact dépend du fichier de configuration chargé.