SERVEUR HTTP EVOLUTIF PHP,MYSQL,PERL....

cs_Xs Messages postés 368 Date d'inscription mercredi 14 novembre 2001 Statut Membre Dernière intervention 1 septembre 2008 - 23 juin 2004 à 11:55
zeboss31 Messages postés 14 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 1 février 2010 - 14 oct. 2012 à 11:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23928-serveur-http-evolutif-php-mysql-perl

zeboss31 Messages postés 14 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 1 février 2010
14 oct. 2012 à 11:06
Bonjour, à quoi sert le fichier "enteteHTTP.dll" ?
VPNVB Messages postés 58 Date d'inscription dimanche 7 août 2005 Statut Membre Dernière intervention 20 août 2008
14 août 2007 à 18:12
Salut

Merci pour se Serveur Web
il est tré simplifier et Tré Functionaile
je veux te contacter en Persone
ou je peux trouver ton Email SVP ?
adnane60 Messages postés 1 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 26 février 2005
26 févr. 2005 à 17:34
est ce que vous pouvez me bien données une explication sur le serveurapche
cs_Belt Messages postés 47 Date d'inscription jeudi 13 juin 2002 Statut Membre Dernière intervention 3 juillet 2006
13 déc. 2004 à 22:24
bof... c'est sur que si tu ve être très précis et attendre genre 0.9s alors d'accord mais sinon ca sert qu'a ralonger le code !
parker_ Messages postés 2 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 13 décembre 2004
13 déc. 2004 à 21:19
Ca serait qd meme mieux de mettre un select .
C est quand meme plus propre que de mettre un sleep..
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
22 nov. 2004 à 23:18
j'avais donc raison, mais à quoi pense ces jeune programmeur ? sans doute a la même chose que nous quand on étai jeune :-)
cs_Belt Messages postés 47 Date d'inscription jeudi 13 juin 2002 Statut Membre Dernière intervention 3 juillet 2006
22 nov. 2004 à 23:10
bah non puisqu'il faux sans cesse attendre pour de nouveaux clients !! et le Sleep est OBLIGATOIRE sinon ton processeur sera utilisé à 100% et donc au bout de quelques connexion en // bah ton serveur il crève
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
22 nov. 2004 à 19:02
je ne me rappelle plus du code, cela dit, autre qu'une boucle infinit serai chose impossible voir très casse tête. Le sleep doit être pour soulager le proc ?!
parker_ Messages postés 2 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 13 décembre 2004
22 nov. 2004 à 12:30
Y aurait pas un meilleur moyen que de faire une boucle infinie et un sleep dans le accept
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
16 nov. 2004 à 18:31
j'ai appris récemment comment faire un serveur http et on m'a redirigé vers http://www.salemioche.com/. Voilà, pour commencer je pense que ce serai déjà pas mal (moi même je vais essayé de m'en servir)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 nov. 2004 à 23:17
vala, une tout petite recherche et c'était réglé:

ftp://ftp.isi.edu/in-notes/rfc2616.txt

le point 6 de cette RFC décrit très précisément le standard des réponses, et donc la façon dont en-tête et contenu sont séparés.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 nov. 2004 à 23:07
"la gestion des chaine de carractere est bien plus simple en php, c++ c'est vraiment basic de se coter la!"

le C++ a hérité des chaînes du C. PHP est codé en C. PHP n'a donc fait qu'implémenter des fonctions faciles qui traitent les chaînes C classiques. Ce qui veut dire (en substance ^^) qu'il t'appartient quand tu programmes en C++ de coder toi-même tes classes de gestion de chaînes de caractères. Ceci dit, tu es déjà TRÈS bien aidé par la classe standard string (en-tête <string>, à ne pas confondre avec <cstring>, qui est en fait l'ancien <string.h> du C).


pour récupérer un document web (entendons: via le protocol HTTP), tu dois utiliser des "sockets". càd que tu vas utiliser soit une librairie de sockets portable, soi directement winsocks sous windows par exemple, ou équivalent pr un autre OS, et utiliser les méthodes de cette librairie pour
1/ te connecter au serveur web via l'IP et le port (l'IP peut aussi être un nom de domaine: hostname en fait)
2/ envoyer une requête "HTTP-compliant", càd qui respecte les normes définies par la dernière RFC HTTP. tu pourras trouver de la doc là dessus assez aisément, ne fut-ce que dans les exemples de sockets PHP, en général ils utilisent HTTP 1.0 et c'est assez simple.
3/ récupérer la réponse du serveur, toujours via ta librairie de sockets, et traiter cette réponse comme bon te semble.


L'avantage, c'est que le protocol HTTP est très simple. Cela vient en partie du fait que c'est un protocol qui n'utilise pas de connexions persistantes: tu veux une page: tu te connectes, tu demandes, tu reçois, point. T'en veux une autre? tu te reconnectes etc... Ça veut dire que tu n'as absolument pas besoin de garder des traces des précédentes communications etc: c'est plus facile.

Tu auras probablement juste un souci (le même que moi): la réponse du serveur contient des en-têtes HTTP suivis du contenu effectif, et je n'ai jamais trouvé de référence qui me disait comment séparer ces deux parties (faut dire que je suis vrmnt un boulet quoi :p ça doit être bête comme chou mais j'ai aps été fichu de trouver, ni de chercher correctement)
rosemarie302 Messages postés 3 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 15 novembre 2004
15 nov. 2004 à 22:39
slt ta source et pas mal du tout!
moi je vien de la programmation php et la j'essay de me mettre au c++ avec dev-cpp5 enfin 4.5.5.9 un truc dans le genre, mais impossible de trouver comment recuperer une page html sur un serveur pour la traiter ensuite.
et comme je voi que tu est a l'ecoute du monde s'aurais tu me dire comment on recupere une page html pour traiter son contenue?? parce que j'ai beau cherhcer impossible de trouver une source claire et surtout qui compile.

et pourrai ton envisager de jumeller c++ et php pour la programmation avec un module php, parce que la gestion des chaine de carractere est bien plus simple en php, c++ c'est vraiment basic de se coter la!

du genre le programme ce lance, et execute un script en php (page php) et recupaire les donner a la fin...

merci davance pour ton aide

menfin deja si tu peut me dire comment recuperer une page html et dl un image sa serai super. merci
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
29 oct. 2004 à 13:11
Shellut
Moi j'essay de faire mon propre serveur http, et j'ai jeter un oeil sur celui-ci, déjà il me met une belle erreur au démarrage, et ensuite je trouve la source très mal commenter. C'est dommage. 5/10
simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006
3 oct. 2004 à 18:33
Salut !

Moi aussi, j'essaie de faire mon petit serveur HTTP.

Pour l'instant, il gère les méthodes GET, HEAD et POST.
J'utilise PHP.exe pour lire mes pages PHP, mais j'ai un pb: dès que j'ouvre une page PHP utilisant les sessions, PHP.exe crée une session mais en ouvre une autre (vide )lors de l'avancée du client dans le site.

Du peux m'expliquer pourquoi ?
theXman Messages postés 37 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 11 mars 2006
28 juin 2004 à 05:56
ca fait plaisir de voir des bonnes sources OPEN pour win.
pas le temps de regarder pour l'instant, mais BON COURAGE

++
cs_yAAm Messages postés 45 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 22 février 2006
24 juin 2004 à 16:42
0040233E cmp byte ptr [eax],2Eh
00402341 jne 00402345
Tel est la ligne (3E) qui sur laquelle le programme a planté invalid handle value . .. apres une connexion en telnet sur 127.0.0.1 .
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
24 juin 2004 à 15:21
gosh, me sens bête ^^ désolé pour ça.
du reste, y a qd même un problème assez sérieux au niveau de la gestion des requêtes avec des caractères spéciaux (%yz). ça doit pas être bien compliqué à coder, mais la gestion des chaînes de caractères c'est tjs :(.

à ce propos, tu as oublié un free() après ton malloc() dans la fonction executer_requete, vers le début du code tu alloues de la mémoire pour l'fichier_url si j'ai bonne mémoire, et puis j'ai pas vu le free (mais peut-être suis-je à nouveau bête ^^ j'ai plus le code devant moi)
cs_Belt Messages postés 47 Date d'inscription jeudi 13 juin 2002 Statut Membre Dernière intervention 3 juillet 2006
24 juin 2004 à 15:13
Faut regarder exemple_config.ini !!
---> Pour ton problème c'est parce que il manque le ";" à la fin du chemin il faut écrire :
[MODULES]
ks=C:\HTTPTest\ks.exe;
[FINMODULES]
[MySql]
[FINMySql]

et là ca marchera !!

Je suis en train de travailler dessus alors hésite pas à me donner des idées, mais bon d'abord je m'occupe de la commande POST et de sécurisé
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
24 juin 2004 à 14:55
bon, ben ça fait 2h que je chipote dans le code et... j'ai des problèmes.

Moi je voudrais pouvoir accéder à des répertoires avec un espace dans le nom, et donc j'ai écrit un bout de code pour remplacer les %20 par des espaces (je devrais en fait remplacer les %yz par des 0xyz mais soit), de tte façon, même si la modification est bien fait (j'ai vérifié ds la console), ça marche pas. et puis en fait, j'ai l'impression que c'est l'accès à un autre répertoire qui bloque :(

ah puis j'ai aussi écrit un module vite fait:

#include
using namespace std;

int main(int argc, char *argv[])
{
cout << "<html>\n<head>\n<title>KiruaScript HTTP Server Module</title>\n</head>\n\nks script working!\n\n</html>" << endl;
return 0;
}


j'ai compilé ça dans ks.exe, et j'ai mis ça dans config.ini:

[MODULES]
ks=C:\HTTPTest\ks.exe
[FINMODULES]
[MySql]
[FINMySql]

et ça dans serveur.ini:

RACINE=C:/HTTPTest

et quand j'appelle un fichier vide (0 octet) nommé index.ks comme ceci:

http://127.0.0.1/index.ks, je reçois une page vide :( (enfin, juste un caractère, mais pas affichable, dans le bloc note, c'est un espace).

pourtant ça marchait impec avec des pages htm/html classiques ou même des fichiers images / flash etc, j'ai testé avec un site flash justement, et il n'y a pas de problème, donc c'est pas une question de caractère qui passe mal dans le contenu à renvoyer :(

viens de tester avec "blabla" dans mon fichier index.ks, et ça renvoie "blabla ". argmf :(

je fais qq ch de travers? et tous les résultats de test là, c'est en ayant enlevé le bout de code-bidouille que j'avais écrit donc, ça vient pas de là.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
24 juin 2004 à 13:04
ouéééééééééé ça marche :-D j'ai juste dû couper Apache, c'est tout.
Hmmm, je pense que je vais m'amuser avec ton serveur, cette idée de module perso en C++ me réjouit ^^ tu mettras les màj ici n'est-ce pas? ah, puis arrange-toi pr que ton serveur devienne pas trop populaire, parce que ça m'énerverait que des hackers s'intéressent aux failles de sécurité ;-)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
24 juin 2004 à 13:01
raah, j'ai Erreur au démarrage, zuut, j'ai trop envie de le tester ton serveur! j'adorerais pvr écrire mes modules en PHP :) ce serait trop bon et d'après ton fichier Notice.txt, c'est vrmnt easy game! hmm, t'as pas une idée du pq j'ai une erreur?

dans serveur.ini j'ai: RACINE=C:(pas le droit d'aller jusque programe files à cause de l'espace)

j'ai pas touché à config.ini.

Est-ce que ça peut être à cause de Apache qui est lancé en même temps?
cs_Belt Messages postés 47 Date d'inscription jeudi 13 juin 2002 Statut Membre Dernière intervention 3 juillet 2006
23 juin 2004 à 12:25
Ouais c'est clair que dans ma prochaine version je règlerais ce "problème" mais bon pour une utilisation "normale" ça suffit, il devrait pas y avoir de buffer overflow. Merci pour ta note !
cs_Xs Messages postés 368 Date d'inscription mercredi 14 novembre 2001 Statut Membre Dernière intervention 1 septembre 2008
23 juin 2004 à 11:55
Ah j'aimerai bien que ton logiciel soit utilisé : comme ca je pourrai m'entrainer au BO :D

Il est plus qu'indispensable que tu corriges les problemes de taille fixe, etc...

mais sinon c'est une bonne source : 8/10
Rejoignez-nous