{"id":26,"date":"2008-02-20T23:28:59","date_gmt":"2008-02-20T22:28:59","guid":{"rendered":"https:\/\/arliguy.net\/2008\/02\/20\/http-et-telnet-pour-tester-rapidement-un-serveur-http\/"},"modified":"2008-02-20T23:28:59","modified_gmt":"2008-02-20T22:28:59","slug":"http-et-telnet-pour-tester-rapidement-un-serveur-http","status":"publish","type":"post","link":"https:\/\/arliguy.net\/2008\/02\/20\/http-et-telnet-pour-tester-rapidement-un-serveur-http\/","title":{"rendered":"HTTP et Telnet : pour tester rapidement un serveur HTTP"},"content":{"rendered":"
Voir rapidement les headers d\u2019une reponse HTTP d\u2019un serveur web peut s\u2019av\u00e9rer tr\u00e8s pratique, pour cela, une r\u00e9ponse rapide : telnet.<\/p>\n
Le protocole HTTP r\u00e9pond \u00e0 la RFC 2616<\/a> du W3C.<\/a><\/p>\n Pour se connecter \u00e0 un serveur, faire la ligne de commande suivante :<\/p>\n par exemple :<\/p>\n Une fois connect\u00e9, on va demander un document. On va utiliser la m\u00e9thode GET. Par exemple sur la racine du site (ie \/ ) :<\/p>\n Il est important<\/strong> de pr\u00e9ciser le protocole que l\u2019on va utiliser apr\u00e8s le document demand\u00e9 (ici on demande du HTTP\/1.0, ca aurait pu \u00eatre du HTTP\/1.1).<\/p>\n Il est primordial<\/strong> de placer 2 <CRLF> (ie des retours \u00e0 la ligne) apr\u00e8s la commande GET, pour signaler au serveur que la commande est compl\u00e8te.<\/p>\n On peut construire des requ\u00eates plus compliqu\u00e9es, en enchainant les Headers, par exemple :<\/p>\n Les m\u00e9thodes d\u2019autorisation pour acc\u00e9der \u00e0 certaines zone d\u2019un serveur HTTP r\u00e9pondent \u00e0 la RFC 2617<\/a> du W3C.<\/a><\/p>\n Lorsqu\u2019une zone du serveur est prot\u00e9g\u00e9e par cette m\u00e9thode, la demande d\u2019un document de cette zone renvoie une r\u00e9ponse comme suit :<\/p>\n Le Header<\/em> important est WWW-Authenticate<\/strong>. Si l\u2019utilisateur n\u2019est pas d\u00e9j\u00e0 authentifi\u00e9 pour le Realm<\/em> “RealmName<\/strong>“, une fen\u00eatre pop-up apparaitra et demandera le login\/password de l\u2019utilisateur.<\/p>\n Pour s\u2019authentifier en utilisant Telnet sur un serveur HTTP avec l\u2019autorisation \u2019Basic\u2019, il faut ajouter un Header<\/em> “Authorization”<\/strong>, suivi d\u2019une chaine encod\u00e9e BASE64 compos\u00e9e du login et du password. La structure de cette chaine est :<\/p>\n Si l\u2019on veut s\u2019identifier comme l\u2019utilisateur marc<\/em> qui a le password antoine<\/em>, on obtient l\u2019encodage BASE64 suivant : bWFyYzphbnRvaW5l [1].<\/p>\n La requ\u00eate \u00e0 construire pourra donc \u00eatre :<\/p>\n Note :<\/u> Attention \u00e0 \u00e9crire Basic et non BASIC !<\/p>\n [1] obtenu gr\u00e2ce \u00e0 la commande perl suivante : %> perl -MMIME::Base64 -e ‘print encode_base64(“marc:antoine”)’<\/p>\n","protected":false},"excerpt":{"rendered":" Voir rapidement les headers d\u2019une reponse HTTP d\u2019un serveur web peut s\u2019av\u00e9rer tr\u00e8s pratique, pour cela, une r\u00e9ponse rapide : telnet. Le protocole HTTP r\u00e9pond \u00e0 la RFC 2616 du W3C. Telnet Pour se connecter \u00e0 un serveur, faire la ligne de commande suivante : > telnet serveur num_port par exemple : %> telnet www.voila.fr … Continuer la lecture de HTTP et Telnet : pour tester rapidement un serveur HTTP<\/span> Telnet<\/h2>\n
> telnet serveur num_port<\/pre>\n
%> telnet www.voila.fr 80<\/pre>\n
GET \/ HTTP\/1.0 <CRLF><CRLF><\/pre>\n
GET \/ index.html HTTP\/1.0 <CRLF>Accept : text\/html, image\/gif <CRLF>\r\n\r\nUser-Agent : Mozilla\/4.0 (compatible ; MSIE 4.0 ; Linux X11 2.2.17) <CRLF><CRLF><\/pre>\n
Autorisation<\/h2>\n
HTTP\/1.0 401 Authorization RequiredDate: Wed, 23 Jan 2002 15:12:30 GMT\r\n\r\nServer: Apache\/1.3.20 (Unix) (Red-Hat\/Linux) ApacheJServ\/1.1.1 mod_ssl\/2.8.4 OpenSSL\/0.9.6\r\n\r\nWWW-Authenticate: BASIC realm=\"RealmName\"\r\n\r\nContent-Type: text\/html\r\n\r\nX-MTracker-Version: v4.0 build 49.5\r\n\r\nExpires: Thu, 01 Jan 1970 00:00:00 GMT\r\n\r\nLast-Modified: Wed, 23 Jan 2002 15:12:30 GMT\r\n\r\nCache-Control: no-cache must-revalidate\r\n\r\nPragma: no-cache<\/pre>\n
Autorisation et Telnet<\/h2>\n
login:password<\/pre>\n
GET \/servlet\/protected\/content\/ HTTP\/1.0 <CRLF>\r\n\r\nAuthorization: Basic bWFyYzphbnRvaW5l <CRLF><CRLF><\/pre>\n