ArthurAuguste
Messages postés107Date d'inscriptionlundi 7 février 2011StatutMembreDernière intervention17 février 2018
-
7 déc. 2011 à 08:41
ArthurAuguste
Messages postés107Date d'inscriptionlundi 7 février 2011StatutMembreDernière intervention17 février 2018
-
9 déc. 2011 à 12:13
Bonjour,
Depuis quelques jours j'essaie de simuler une connexion à un site (par exemple: developpez.com) par programme en C avec les sockets tout en me faisant passer pour firefox.
Sur le send() j'envoie les paramètres suivants:
"GET http://windows.developpez.com/ HTTP/1.1\r\n"; // URL appelée
// header du buffer
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
"Accept-Encoding: qzip, deflate\r\n";
"Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
"Connection: keep-alive\r\n";
"Host: web.developpez.com\r\n";
"User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2\r\n";
"\r\n" // ligne vide => fin du header
ensuite je boucle sur le recv() et ça marche, je reçois un header de réponse ainsi que la 1ère page du site dans mon buffer qu'au fur et à mesure des boucles je recopie dans un fichier.
Seulement je ne simule pas exactement ce que fait firefox car quand je regarde avec la console web de firefox ce que fait firefox sur le send(), il m'indique qu'en même temps qu'un buffer identique au mien ci-dessus il envoie un cookie tout simple: WT_FPC:id
Je voudrais en faire autant mais j'ignore sous quelle forme ce cookie est envoyé. J'ai fait plusieurs essais en rajoutant dans mon header ci-dessus une des lignes ci-dessous juste avant la ligne vide:
Mais aucun de ces essais ne fonctionne car je ne reçois plus rien sur le recv().
J'en conclus que ma syntaxe doit-être mauvaise ou que je l'ai insérée au mauvais endroit ou qu'il faut rajouter quelque chose (un sous-titre, un paragraphe?...)
Quelqu'un aurai-il une idée.
Merci
ArthurAuguste
Messages postés107Date d'inscriptionlundi 7 février 2011StatutMembreDernière intervention17 février 2018 7 déc. 2011 à 13:59
Excuse-moi, mais je ne comprends pas la réponse. Si tu regardes mon message précédent j'ai bien le HTTP/1.1 au bout du GET et le domaine dans le champ HOST !!!
D'ailleurs je dis que ça marche sans problème tant que je ne cherche pas à faire comme firefox c'est à dire à rajouter le cookie. Ma question portait sur comment insérer le cookie dans le header ?
Si je n'ai pas compris ce que tu voulais dire, peux-tu expliciter STP ?
Merci
ArthurAuguste
Messages postés107Date d'inscriptionlundi 7 février 2011StatutMembreDernière intervention17 février 2018 8 déc. 2011 à 08:52
Complément d'infos
En fait quand je dis dans mon 1er message qu'avec le cookie positionné là où je le mets je ne reçois plus rien, ce n'est pas tout à fait exact (je n'avais pas attendu assez longtemps) car au bout de exactement 5mn je reçois le message:
408 Request Time-out
Server timeout waiting for the HTTP request from the client
Qu'est-ce que le serveur attend de moi ? Je rappelle que j'ai simplement voulu simuler ce que je vois que firefox fait via sa console web!
Merci
Il y'a un exemple qui a l'air pas trop mal entre les pages 11 et 12.
Un autre conseil: comme tu as un protocol en mode texte (HTTP donc), tu peux sans autre debuger avec telnet. C'est des fois pratique pour tester tes requêtes. Des fois pas ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
ArthurAuguste
Messages postés107Date d'inscriptionlundi 7 février 2011StatutMembreDernière intervention17 février 2018 9 déc. 2011 à 12:13
Merci pour l'adresse du site, très intéressant. Cependant l'exemple donné ne montre que l'envoi du cookie seul, ce que je n'arrive pas à voir c'est s'il faut faire un envoi spécifique pour transmettre le cookie seul ou si on peut le mettre avec le reste du header (qui contient les autres éléments: agent, host, etc...). La console de firefox semble dire que firefox envoie tout en même temps le reste du header avec le cookie, or moi quand je le fais le serveur reste en attente de recevoir une requête jusqu'au déclenchement du time-out alors que si je ne mets pas le cookie dans le header le serveur répond en envoyant la première page.
Merci