Implémentation d'un serveur HTTP en C++98 capable de gérer des requêtes web de manière non bloquante, similaire à NGINX.
- Compilateur C++ avec support C++98
- Make
- Système Unix-like (Linux/MacOS)
git clone [votre-repo]
cd webserv
makewebserv/
├── srcs/ # Fichiers sources
├── includes/ # Headers
├── config/ # Fichiers de configuration
├── www/ # Contenu web statique pour les tests
├── Makefile
└── README.md
- Serveur HTTP non-bloquant
- Support des méthodes GET, POST, DELETE
- Configuration personnalisable (ports, routes, etc.)
- Gestion des fichiers statiques
- Support CGI (PHP, Python)
- Gestion des uploads de fichiers
- Pages d'erreur personnalisables
Le serveur peut être configuré via un fichier de configuration. Exemple:
server {
listen 8080;
server_name example.com;
root /var/www/html;
location / {
methods GET POST;
index index.html;
autoindex on;
}
}- Création du Makefile
- Configuration de base du serveur
- Implémentation du socket non-bloquant
- Gestion basique des connexions
- Parser de requêtes HTTP
- Générateur de réponses HTTP
- Gestion des headers
- Gestion des méthodes HTTP (GET, POST, DELETE)
- Gestion des fichiers statiques
- Configuration dynamique
- Pages d'erreur
- Support CGI
- Upload de fichiers
- Directory listing
- Redirections
Pour tester le serveur:
# Démarrer le serveur
./webserv [config_file]
# Test basique avec curl
curl http://localhost:8080
# Test avec un navigateur
# Ouvrez http://localhost:8080 dans votre navigateur- Le serveur peut rester disponible sous forte charge
- Toutes les opérations I/O sont non-bloquantes
- La gestion des erreurs doit être robuste
- Le code doit être conforme à la norme C++98
Ce projet est développé par:
- agilibert
- clarily
- [yilin] (https://github.com/ychun816)
42