Skip to content

WebServ est un serveur HTTP en C++98, inspiré de NGINX.

Notifications You must be signed in to change notification settings

Echo24h/webserv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logs console Webserv

Serveur HTTP en C++98 inspiré de NGINX (Mac & Linux)

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.

Utilisation:

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

Config:

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 ...

Test:

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

Methodes:

Webserv prend en charge les méthodes HTTP suivantes :

GET
POST
PUT
DELETE

Ressources