Serveur http 1.1 simple v2.xx (windows & gnu/linux compatible)

Soyez le premier à donner votre avis sur cette source.

Vue 13 652 fois - Téléchargée 1 948 fois

Description

Il s'agit d'un serveur HTTP 1.1 simplifié qui offre le support de la commande cliente GET uniquement. Il met en oeuvre les fonctions standards associées au 'socket' d'une manière, je l'espere, assez pédagogique.

Du point de vue de l'utilité, ce serveur http ne remplace pas un Apache, mais permet tout a fait d'herberger un site web sans script. Ce serveur est tres robuste aux tentatives d'attaque courament pratiquées sur Internet au niveau du port 80.

N'hesitez pas à me contacter si vous rencontrer des problemes avec de code source, chose que je ne vous souhaite pas bien sur !

Cordialement,
Xterminhate.

Source / Exemple :


Le code source est contenu dans le fichier zip.

Le code est fortement documenté (en anglais) .

Une documentation supplémentaire en html générée par Dowygen est également fournie.

Conclusion :


Auteur
------

Xterm-In'Hate ( xterminhate@wanadoo.fr )

N'hésitez pas à me contacter si vous rencontrez des problemes à la compilation/édition des liens ou à la configuration/éxecution.

Version
-------

v2.07

Fichiers
--------

Le code source du serveur Http est contenu dans les fichiers suivants :

x_HttpServer.h
x_HttpServer.cpp

Le code source du service Windows NT est contenu dans les fichiers suivants :

sdk_Service.h
sdk_Service.cpp

Le code source du programme principal pour Windows est contenu dans les fichiers suivants :

x_https.cpp

Le code source du programme principal pour Linux est contenu dans le fichier suivant :

x_httpd.cpp

Le fichier de configuration :

x_httpd_config.cfg

Description
-----------

Comment utiliser la classe x_HttpServer :

Instancier l'objet x_HttpServer et appeler la fonction membre x_HttpServer::Run(). L'execution de la fonction membre s'interrompe lorsque un signal SIGINT est positionné (CTRL+C ou Kill-9).

L'objet x_HttpServer necessite un fichier de configuration x_httpd_config.cfg. Ce fichier doit être placé dans le répertoire %WINDIR% (c:\windows par défaut) pour windows ou /etc/ pour linux.

Compilation
-----------

Sous Windows, precisez à l'éditeur des liens l'utilisation de la librairie WS2_32.LIB pour permettre l'accès aux fonctions socket.

Debug
-----

L'objet x_HttpServer crée un fichier de log. Si _DEBUG est défini alors l'objet x_HttpServer insère des messages de debug dans le fichier de log. Attention, dans le fichier x_HttpServer.cpp, une instruction désactive _DEBUG, n'oubliez pas de la mettre en commentaire le cas échéant.

Execution
---------

Le service s'installe, se démarre et s'arrète à l'aide des fichiers de commande (batch). Ces fichiers doivent être placé dans le même répertoire que l'executable.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

piranhaworld
Messages postés
12
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
9 juillet 2007

Bonjour,

Pas mal d'erreur ? la compilation.. toute on un rapport avec les "templates"

Premiere d'un longue s?rie (mais je pense les autres en d?coulent)

x_HttpServer.cpp:963: error: explicit specialization of "fUnconditionalSocketDisconnection<x_Socket>::fUnconditionalSocketDisconnection()" must be introduced by "template <>"

j'ai rajout? "template <>" devant, j'ai ensuite :

x_HttpServer.cpp:963: error: specialization of "fUnconditionalSocketDisconnection<x_Socket>::fUnconditionalSocketDisconnection() [with x_Socket = x_Socket]" after instantiation
x_HttpServer.cpp:963: error: invalid function declaration

Une id'e?
wizard512
Messages postés
470
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
11 mai 2013

Je ramène ma fraise :p
Mais je me rapelle qu'il y a moyen de configuré ( truquer )
un serveur apache pour sens servire de proxy ossi....

Bref vive Apache ;P
xterminhate
Messages postés
371
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
23 septembre 2009

Salut, j'ai reçu de ta part une question par email. Je retire si possible ces deux derniers commentaires une fois ton probleme traité.

Merci,
Xterm-in'Hate.
Axoltl
Messages postés
11
Date d'inscription
mercredi 8 septembre 2004
Statut
Membre
Dernière intervention
19 janvier 2007

salut xterminate désolé de se cross-post mais voila j'aimerais te poser des questions sur les sources dites [WIN32 & LINUX] THREADS C++ .
Mais l'ajout de commentaire sur cette page plante lamentablement a chaque fois que je veux l'utiliser...

Au secours NIX fait kelk choz stp...

Comment puis-je te contacter pour ne pas gonfler tout le monde avec un post qui n'a rien a voir avec ton serveur http?
xterminhate
Messages postés
371
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
23 septembre 2009

Salut trascal, a vrai dire j'ai choisi l'anglais pour les commentaires de sorte à rendre le code lisible par un maximum de personnes interessées... et je n'ai pas de version en français!

Je viens de relire mon source (le x_HttpServer.h dans la partie GNU/linux). Est-ce que au moins tu arrives à décoder les commentaires dans ce fichier ? Si c'est le cas, c'est deja pas mal.

Dans tous les cas, n'hésites pas à me contacter en private (xterminhate@wanadoo.fr) si tu veux des explications ciblées pour telle ou telle partie du source.

Sinon, Babelfish est ton ami : http://babelfish.altavista.com/.

Bon courage.

Cordialement,
xter.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.