Niveau :
Résumé : telnet www.net http
Il existe toujours de bonnes raisons pour connaître les protocoles ou tout au moins connaitre les commandes de base. Dans le cas du HTTP, c'est assez simple. Le protocole HTTP 1.0 peut être résumé en une ligne :
$ telnet www.com http > GET /toto.html
Et c'est tout, la page http://www.com/toto.html est renvoyée telle quelle.
Pour quelques options supplémentaires, il faut préciser la version de http désirée (HTTP/1.0 ou HTTP/1.1).
Le HTTP 1.0 est tout de même dépassé de nos jours. Les sites web étant très souvent mutualisés sur les mêmes serveurs, il vous faut connaître le HTTP 1.1. La base reste assez simple (attention au dernier retour à la ligne) :
$ telnet www.com http > GET /toto.html HTTP/1.1 > Host: www.com >
Et voilà, vous avez quasiment le même résultat précédé de quelques en-têtes. Ou un résultat différent s'il y avait plusieurs sites différents hébergés sur www.com. N'oubliez pas ce petit truc, c'est bien pratique pour tester un site dont l'entrée DNS n'est pas encore déclarée correctement. Il suffit de faire le telnet directement sur l'ip.
Notez qu'avec wget vous pouvez faire l'équivalent :
$ wget --header="Host: www.com" "http://127.0.0.1/toto.html"
On peut maintenant faire un petit peu plus compliqué et ajouter un peu d'authentification
$ telnet www.com http > GET /toto.html HTTP/1.1 > Host: www.com > Authorization: Basic dXNlcjpwYXNzd29yZA== >
Ici le texte d'authentification correspond à l'encodage en base64 de la chaine user:password, chose qu'on obtient de la façon suivante :
$ perl -MMIME::Base64 -e 'print encode_base64("user:password")'
Ou comme ceci :
$ echo -n "user:password" | openssl base64
On obtient la même chose avec wget :
$ wget --user=user --password=password "http://www.com/toto.html"
ou
$ wget --http-user=user --http-password=password "http://www.com/toto.html"
ou encore
$ wget "http://user:password@www.com/toto.html"
Une dernière chose qu'on ne peut faire avec wget, tester l'existence d'une url (ou sa bonne réponse par le serveur).
$ telnet www.com http > HEAD /toto.html HTTP/1.1 > Host: www.com >
Comments