Un paragraphe pour les cookies ?

ArthurAuguste Messages postés 107 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 17 février 2018 - 7 déc. 2011 à 08:41
ArthurAuguste Messages postés 107 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 17 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:

"Cookie: WT_FPC=id\r\n"
"Cookie: WT_FPC:id\r\n"
"Set-Cookie: WT_FPC=id\r\n"
"Set-Cookie: WT_FPC:id\r\n"

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

5 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 déc. 2011 à 10:05
Bonjour,

La norme http dit que tu dois faire GET / HTTP/1.1
le domaine est passé dans le champ HOST

Cordialement,

Maxime
0
ArthurAuguste Messages postés 107 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 17 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
0
ArthurAuguste Messages postés 107 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 17 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
0
JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
8 déc. 2011 à 20:25
Cookie est bien un header http.

Tu peux jetter un oeil à la RFC (ouais, c'est assez indigeste à lire, mais des fois c'est utile): http://www.ietf.org/rfc/rfc2109.txt

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 ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ArthurAuguste Messages postés 107 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 17 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
0
Rejoignez-nous