Equivalent de Telnet sous WinXP en plus agréable

Equivalent de Telnet sous WinXP en plus agréable - Divers - Programmation

Marsh Posté le 03-08-2005 à 10:01:42    

Salut,
 
Je suis en train de faire des tests HTTP, et je voulais un peu voir comment ça fonctionnait.
 
D'où l'idée de faire un telnet.
 
Le problème, c'est qu'en lancant Telenet sous WinXP en ligne de commande, rien n'apparaît. Puis ensuite, le résultat est peu exploitable.
 
Connaissez vous il un client du même ype que Telenet, si possible avec une interface graphique et léger? Et si possible gratuit.
 
Merci.


Message édité par Yoyo@ le 03-08-2005 à 13:59:05
Reply

Marsh Posté le 03-08-2005 à 10:01:42   

Reply

Marsh Posté le 03-08-2005 à 13:55:31    

Putty

Reply

Marsh Posté le 03-08-2005 à 14:27:37    

hyperTerminal [:petrus75] (ou un truc comme ça, c'est livré avec Windows)


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 03-08-2005 à 19:04:36    

Merci.
 
je viens de télécharger Putty, mais je ne parviens pas à le faire marcher ou alors ne comprends pas comment ca marche.
 
Normalement, ce que je voudrais: je tape n'importe quelle URL plus Port = 80, et ca me retourne le résultat de la requête... Mais là, a priori, ça ne marche pas, alors qu'avec Telnet, ça marche... Ai je raté une marche?
 
Personnellement, c'est comme ça que j'essaie d'utiliser Putty:
Je mets mon URL dans "Host Name" et "80" dans port. Ensuite, je choisis "Telenet" comme protocole...

Reply

Marsh Posté le 04-08-2005 à 09:23:33    

je ne sais pas si c'est une faute de langage, mais c'est le nom d'hôte que tu dois mettre dans host name, pas l'URL
 
Par ailleurs, le protocole utilisé n'est pas telnet, mais raw. Le protocole telnet, c'est pour ouvrir un shell sur un serveur telnet ...
 
Je te donnes un exemple :
- serveur www.google.fr
- port 80
- protocole raw
- et la tu tapes
GET / HTTP/1.1
Host: www.google.fr
 
 

Reply

Marsh Posté le 04-08-2005 à 11:32:18    

Merci beaucoup, si il y avait confusion entre hostname et URL, c'est que cette confusion était aussi présente dna sma tête, vu que je n'arrivais pas à faire marcher le truc. En fait, c'était le protocole (HTTP/1.1) qu'il me manquait.
 
Mais j'ai toujours un problème... Explication:
 
Le but pour moi est de tester un serveur Apache local. Mais le problème, c'est qu'avec IE, la requête marche bien alors qu'avec Putty, le serveur me renvoie un "400".
 
Voici le log fourni par Apache:
 

Code :
  1. 127.0.0.1 - - [04/Aug/2005:11:18:48 +0200] "GET /myFile.html HTTP/1.1" 200 99
  2. 127.0.0.1 - - [04/Aug/2005:11:19:14 +0200] "GET /myFile.html HTTP/1.1" 400 20


 
LEs deux requêtes (IE puis Putty) sont exactement les mêmes.
 
Voici ce que me donne error.log concernant la requête Putty:
 

Code :
  1. [Thu Aug 04 11:19:16 2005] [error] [client 127.0.0.1] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /myFile.html


 
Bien entendu, la requête IE ne génère pas d'erreur...
 
Et ensuite, Putty me retourne un "Connection closed by remote host".
 
Bizarre, non?

Reply

Marsh Posté le 04-08-2005 à 11:55:27    

Non,
regarde les rfc si tu veux en savoir plus :)
les logs d'apache ne contiennent pas toute la requete. Une ligne Host: est indispensable au protocole HTTP/1.1

Reply

Marsh Posté le 04-08-2005 à 11:56:40    

Voici à quoi ressemble une requete standard
 
GET / HTTP/1.1
Host: localhost:1234
User-Agent: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7.5) Gecko/20041109 Firefox/1.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
 
(ici Firefox)

Reply

Marsh Posté le 04-08-2005 à 12:17:51    

mcjoedassin a écrit :

Voici à quoi ressemble une requete standard
 
GET / HTTP/1.1
Host: localhost:1234
User-Agent: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7.5) Gecko/20041109 Firefox/1.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
 
(ici Firefox)


La plupart de ces paramètres sont facultatifs, donc requête "standard", c'est vite dit. Usuelle, peut-être ... (et pour lire les réponses, c'est pas forcément conseillé de laisser le gzip,deflate :D)

Reply

Marsh Posté le 04-08-2005 à 12:20:29    

s/standard/usuelle/
c'était pour donner un ordre d'idée
seul le Host est obligatoire a priori. Maintenant certains sites vérifient également le User-Agent par exemple ...


Message édité par mcjoedassin le 04-08-2005 à 12:21:58
Reply

Marsh Posté le 04-08-2005 à 12:20:29   

Reply

Marsh Posté le 04-08-2005 à 12:28:43    

non, même le Host est faculatatif. Il n'est pas forcément nécessaire de rappeler à quelle machine tu es connecté, si tu es déjà dessus :/
Mais comme toujours, la réponse que tu vas obtenir dépendra de la configuration des serveurs et des sites

Reply

Marsh Posté le 04-08-2005 à 12:32:35    

Bon, en fait, je viens un peu de consulter les RFC (quelle big doc)  
 
Et en faisant un:
 

Code :
  1. GET /myFile.html HTTP/1.1
  2. HOST: 127.0.0.1:7963


 
Ca marche...
 
Mais je peux également inclure un HOST vide si dans mon URI, je mets une chemin absolu.
 
Donc:
 

Code :
  1. GET 127.0.0.1:7963/myFile.html HTTP/1.1
  2. HOST:


 
Marche également...
 
Mais là où je me suis fait avoir, c'est que Telnet à la base ne demande pas de mettre la requête complète, juste l'URI... Alors qu'ici, on doit ecrire la requeête avec tous les champs nécessaires.
 
Ce que je ne comprends pas, c'est à quoi ca sert de se connecter avec Putty grace à l'écran initial Host/Port?
 
Puisque finalement, tout est reprécisé dans la requête? Ne pourrrait on pas lancer une requête sans passer par cette connexion intiale?
 
D'autre part, Apache ne me fait pas part du fait que Putty s'est connecté...
 
Enfin, comment faire pour avoir le corps complet des requêtes arrivant sur Apache? N'y a til pas moyen de le faire facilement? Ou alors, il faut peut etre que je modifie mon httpd.conf?
 
 
 
 

Reply

Marsh Posté le 04-08-2005 à 12:35:28    

faire :

GET /myFile.html HTTP/1.1

une fois que tu es connecté sur le serveur fonctionnera tout aussi bien sur la majorité des serveurs ... Je ne vérifierai pas dans les RFC si c'est juste un comportement laxiste des serveurs ou non, mais pour l'instant, je n'ai pas eu d'ennui avec ce genre de requête :/

Reply

Marsh Posté le 04-08-2005 à 12:39:27    

theshockwave a écrit :

faire :

GET /myFile.html HTTP/1.1

une fois que tu es connecté sur le serveur fonctionnera tout aussi bien sur la majorité des serveurs ... Je ne vérifierai pas dans les RFC si c'est juste un comportement laxiste des serveurs ou non, mais pour l'instant, je n'ai pas eu d'ennui avec ce genre de requête :/


 
bah nan, ca ne marche pas en faisant juste un GET de la sorte, et c'est bien le sujet de la suite de mon topic... C'est Apache même qui m'a dit "je n'accepte pas, vas voir les RFC", cf mon post plus haut avec mon error.log

Reply

Marsh Posté le 04-08-2005 à 13:36:14    

theShOcKwAvE> non. Tu n'as pas du tester. un exemple : google
 
Yoyo@> tout dépend de la configuration d'apache (les VirtualHosts).
Si t'as un VirtualHost * tu peux te connecter en mettant n'importe quoi.
 
En fait le truc est que tu peux donner plusieurs noms d'hôtes à une même machine. Donc ton client se connecte à une même IP et pourtant il va sur deux sites différents. Le serveur voit un nom d'hôte, il te sert la page correspondante.
 
Par ailleurs, si la commande Host est obligatoire pour HTTP/1.1, elle est facultative pour HTTP/1.0. Par exemple, si tu fais
GET / HTTP/1.0
 
La plupart des sites de donneront la page que tu veux, mais certains sites n'accepterons qu'avec une commande Host.
 
Enfin, il y a une dernière syntaxe qui est le format "proxy" qui te permet d'écrire :
GET http://www.google.fr/ HTTP/1.0
 
voir même carrément
GET http://www.google.fr/ HTTP/1.1
 
C'est peut-être ça dont tu voulais parler ...

Reply

Marsh Posté le 04-08-2005 à 13:40:36    

mcjoedassin a écrit :

theShOcKwAvE> non. Tu n'as pas du tester. un exemple : google
 
Yoyo@> tout dépend de la configuration d'apache (les VirtualHosts).
Si t'as un VirtualHost * tu peux te connecter en mettant n'importe quoi.
 
En fait le truc est que tu peux donner plusieurs noms d'hôtes à une même machine. Donc ton client se connecte à une même IP et pourtant il va sur deux sites différents. Le serveur voit un nom d'hôte, il te sert la page correspondante.
 
Par ailleurs, si la commande Host est obligatoire pour HTTP/1.1, elle est facultative pour HTTP/1.0. Par exemple, si tu fais
GET / HTTP/1.0
 
La plupart des sites de donneront la page que tu veux, mais certains sites n'accepterons qu'avec une commande Host.
 
Enfin, il y a une dernière syntaxe qui est le format "proxy" qui te permet d'écrire :
GET http://www.google.fr/ HTTP/1.0
 
voir même carrément
GET http://www.google.fr/ HTTP/1.1
 
C'est peut-être ça dont tu voulais parler ...


 
Merci pour ces renseignements.
 
Je suis justement en train d'étudier tout ça concernant Apache (les VirtualHost et autres). Et d'ailleurs, c'est pour ça que je voulais un client sur mon ordi (genre Telnet) qui puisse me montrer ce qu'il se passe dessous.
 
Pour ma part, concernant Apache et les VirtualHost (enfin, peut être que ma question ne concerne pas les VirtualHost, je n'en sais rien)
 
Si je tape dans mon browser: http://www.hardware.fr, qu'est ce qu'il se passe? Est ce que le serveur de hfr va voir que j'ai demandé http://www.hardware.fr, oa alors n'en saura t il rien, car finalement, le DNS aura remplacé www.hardware.fr par l'IP du serveur hfr?  

Reply

Marsh Posté le 04-08-2005 à 13:48:46    

le browser envoit en HTTP/1.1 avec le nom d'hôte qu'il extrait de l'URL.

Reply

Marsh Posté le 04-08-2005 à 13:52:54    

Ah oui, ca veut dire que hfr va recevoir qqchose du type:
 

Code :
  1. GET / HTTP/1.1
  2. HOST: www.hardware.fr


 
En fait, IE ira taper à la bonne adresse grace au DNS, mais il aura entre temps extrait de l'URI le nom d'host qu'il mettra dans HOST, c'est ca?
 
 

Reply

Marsh Posté le 04-08-2005 à 14:17:41    

ouip
http://forum.hardware.fr/hardwarefr/...
 
sera transformé en
http => protocole http, port 80 par défaut
forum.hardware.fr => nom d'hôte
forum.hardware.fr + DNS => adresse IP
/hardwarefr/... => page à demander
 
quand tu passes par un proxy c'est pareil sauf que
- tu fais le GET sur l'URL complete
- tu te connectes sur l'IP: port du proxy


Message édité par mcjoedassin le 04-08-2005 à 14:18:03
Reply

Marsh Posté le 04-08-2005 à 14:18:04    

mcjoedassin a écrit :

theShOcKwAvE> non. Tu n'as pas du tester. un exemple : google


 
J'ai pris  une mauvaise habitude avec mon serveur personnel, alors :whistle:

Reply

Marsh Posté le 04-08-2005 à 14:22:39    

mcjoedassin a écrit :

ouip
http://forum.hardware.fr/hardwarefr/...
 
sera transformé en
http => protocole http, port 80 par défaut
forum.hardware.fr => nom d'hôte
forum.hardware.fr + DNS => adresse IP
/hardwarefr/... => page à demander
 
quand tu passes par un proxy c'est pareil sauf que
- tu fais le GET sur l'URL complete
- tu te connectes sur l'IP: port du proxy


 
Ouh là, si on commence à rajouter des proxies...
 
Quand tu me parles de proxy (je n'y connais rien, je sais juste que c'est une passerelle et que le lien n'est pas direct), veux dire : au cas ou le serveur hardware.fr ne serait pas atteint directement, mais à travers un autre serveur (le proxy). En fait, ca veut dire que le DNS donnera l'IP du proxy quand mon browser lui demandera hardware.fr, c'est ca?

Reply

Marsh Posté le 04-08-2005 à 14:31:40    

regarde c'est très simple - rien a voir avec le DNS :
direct ca donne :
 
$ telnet forum.hardware.fr 80
GET / HTTP/1.1
Host: forum.hardware.fr
 
HTTP/1.1 200 OK  
...
 
et via un proxy :
 
$telnet proxy 8080
GET http://forum.hardware.fr/ HTTP/1.1
Host: forum.hardware.fr
 
HTTP/1.1 200 OK
...

Reply

Marsh Posté le 04-08-2005 à 14:53:24    

Merci!
 
Ta façon de m'expliquer, c'est
 $ telnet = la comande que je tape
 GET... = ce que telnet va générer comme requête pour moi?
 
Si c'est le cas, alors en faisant: $telnet proxy 8080, comment mon proxy connait il l'URI ou je veux aller?

Reply

Marsh Posté le 04-08-2005 à 15:00:29    

oui. Si tu étais sur une ligne de commande tu ferais

telnet hote service


 
ensuite telnet ici ne génère rien. Il envoit juste les données que tu tapes et reçoit direct les données du serveur, qu'il t'affiche. En fait la commande telnet permet deux choses : de connecter à un serveur telnet en utilisant le protocole adéquat OU le fonctionnement présent à savoir des envois de messages.
 
Justement, pour savoir où il doit aller, le proxy regarde ton GET et il voit http://serveur/file donc il sait qu'il doit se connecter au serveur et chercher le fichier file

Reply

Marsh Posté le 04-08-2005 à 15:28:35    

D'accord, en relisant ton explication plus haut, je pense que j'ai compris:
 
je me connecte au proxy grace à Telnet, en connaisance de cause et je demande au proxy de se connecter sur hardware.fr, c'est ca? Au final, hardware.fr ne saura pas qui est le client original, il ne verra que l'IP du proxy?

Reply

Marsh Posté le 04-08-2005 à 15:33:13    

Oui, sauf que...
certains proxy rajoutent une ligne dans la requete, genre  
 
GET machin
Host: bidule
X-Forwarded-For: 1.2.3.4   <- ton adresse IP
 
de plus toutes tes connexions passent par un proxy, donc finalement, pour la confidentialité, ça se discute.
 
Les proxy seraient plutôt utiles dans une entreprise qui a un réseau local et qui souhaite que ses employés aient accès au web. Du coup, il relient le proxy à Internet + au réseau local, et comme ça les employés peuvent voir les pages web via proxy.


Message édité par mcjoedassin le 04-08-2005 à 15:41:01
Reply

Marsh Posté le 04-08-2005 à 15:49:41    

D'accord!
 
Par contre,tu me dis que toutes mes connexions passent par proxy (ce qui me parait dans le fond évident), comment ca se fait que du coté d'Apache, quand on regarde la tête de la requête, on voit l'IP de la source et non pas celle du proxy?
 
Par exemple, un ami se connectait chez moi, et c'était son IP que je voyais dans les logs....


Message édité par Yoyo@ le 04-08-2005 à 15:50:11
Reply

Marsh Posté le 04-08-2005 à 15:54:10    

tes connexions passent par un proxy si tu as configuré ton navigateur pour qu'il en soit ainsi !

Reply

Marsh Posté le 04-08-2005 à 15:57:47    

Bah non, je n'ai rien configuré de tel.
 
D'ailleurs, si je voulais que mes connexions passent par un proxy, il me faudrait trouver un proxy, ce qui est une démarche volontaire et payante, non?
 
Donc, le commun des mortels ne passe pas par proxy?

Reply

Marsh Posté le 04-08-2005 à 16:00:54    

Citation :

D'ailleurs, si je voulais que mes connexions passent par un proxy, il me faudrait trouver un proxy, ce qui est une démarche volontaire et payante, non?


Tu peux trouver des listes de proxy gratuits sur Internet éventuellement, si tu veux voir comment ça marche. Ca te ralentit plus qu'autre chose...
 

Citation :

Donc, le commun des mortels ne passe pas par proxy?


La plupart, ceux qui se connectent de chez eux ...
Maintenant d'une entreprise, ce n'est pas pareil !

Reply

Marsh Posté le 04-08-2005 à 16:43:00    

OK, parfait!
 
Je dois m'absenter quelques jours, mais merci pour toutes ces réponses.
 
J'étudierai tout ça dès mon retour,
 
:hello:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed