Webserv est un serveur HTTP écrit en C++98 inspiré de NGINX. Le serveur prend en charge les méthodes HTTP GET, POST, PUT et DELETE et peut être configuré pour gérer plusieurs connexions simultanément.
En plus des fonctionnalités mentionnées, Webserv prend également en charge les cookies, l'upload de fichiers et les CGI.
Pour utiliser Webserv, il vous suffit de compiler le projet en exécutant la commande suivante :
make
Vous pouvez ensuite démarrer le serveur en exécutant la commande suivante, en remplaçant <config.conf>
par le chemin vers le fichier de configuration de votre serveur :
./webserv <config.conf>
Pour une config host=localhost & port=3490 entrez cette adresse dans le navigateur
http://localhost:3490
La configuration de Webserv se fait via des fichiers .conf
, qui sont stockés dans le dossier conf/
par défaut. Vous pouvez configurer l'adresse et le port du serveur, le nom du serveur, le dossier contenant les pages d'erreur, la taille maximale du corps de requête et les routes disponibles.
Voici un exemple de fichier de configuration :
server {
logs full; # Niveau de logs (none/full/short/count)
host localhost; # Adresse du serveur
port 3490; # Port ouvert du serveur
server_name default; # Nom du serveur
error err/; # Dossier contenant le template error
body_limit 10M; # Taille MAX du corp de requete (M/K/ )
# Définie une route
location / {
methods GET, POST, DELETE; # Méthodes permises (GET/POST/DELETE/PUT)
index index.html; # Index
root www/; # Root
cgi .php, cgi/php-cgi-ubuntu; # L'extension du cgi et son chemin
cgi .py, cgi/py-cgi; # D'autres CGI ...
}
location /upload {
methods POST, DELETE, PUT;
root www/uploads/;
}
}
# Il est possible d'ajouter d'autres serveurs à la suite ...
Webserv est livré avec un mini script python
modifiable pour envoyer des requêtes au serveur. Vous pouvez l'utiliser pour tester le fonctionnement du serveur en envoyant une requête à l'adresse localhost:3498
par exemple :
./request.py
Webserv prend en charge les méthodes HTTP suivantes :
GET
POST
PUT
DELETE
-
Serveur HTTP 1 Un serveur HTTP simple en C++
-
Serveur HTTP 2 Connaissances basique
-
Sockets 2 Connexion multiple avec 'select()'
-
Sockets 3 Fonctionnement des sockets