HTTP et Telnet : pour tester rapidement un serveur HTTP

Voir rapidement les headers d’une reponse HTTP d’un serveur web peut s’avĂ©rer trĂšs pratique, pour cela, une rĂ©ponse rapide : telnet.

Le protocole HTTP répond à la RFC 2616 du W3C.

Telnet

Pour se connecter Ă  un serveur, faire la ligne de commande suivante :

> telnet serveur num_port

par exemple :

%> telnet www.voila.fr 80

Une fois connecté, on va demander un document. On va utiliser la méthode GET. Par exemple sur la racine du site (ie / ) :

GET / HTTP/1.0 <CRLF><CRLF>

Il est important de prĂ©ciser le protocole que l’on va utiliser aprĂšs le document demandĂ© (ici on demande du HTTP/1.0, ca aurait pu ĂȘtre du HTTP/1.1).

Il est primordial de placer 2 <CRLF> (ie des retours Ă  la ligne) aprĂšs la commande GET, pour signaler au serveur que la commande est complĂšte.

On peut construire des requĂȘtes plus compliquĂ©es, en enchainant les Headers, par exemple :

GET / index.html HTTP/1.0 <CRLF>Accept : text/html, image/gif <CRLF>

User-Agent : Mozilla/4.0 (compatible ; MSIE 4.0 ; Linux X11 2.2.17) <CRLF><CRLF>

Autorisation

Les mĂ©thodes d’autorisation pour accĂ©der Ă  certaines zone d’un serveur HTTP rĂ©pondent Ă  la RFC 2617 du W3C.

Lorsqu’une zone du serveur est protĂ©gĂ©e par cette mĂ©thode, la demande d’un document de cette zone renvoie une rĂ©ponse comme suit :

HTTP/1.0 401 Authorization RequiredDate: Wed, 23 Jan 2002 15:12:30 GMT

Server: Apache/1.3.20 (Unix)  (Red-Hat/Linux) ApacheJServ/1.1.1 mod_ssl/2.8.4 OpenSSL/0.9.6

WWW-Authenticate: BASIC realm="RealmName"

Content-Type: text/html

X-MTracker-Version: v4.0 build 49.5

Expires: Thu, 01 Jan 1970 00:00:00 GMT

Last-Modified: Wed, 23 Jan 2002 15:12:30 GMT

Cache-Control: no-cache must-revalidate

Pragma: no-cache

Le Header important est WWW-Authenticate. Si l’utilisateur n’est pas dĂ©jĂ  authentifiĂ© pour le RealmRealmName“, une fenĂȘtre pop-up apparaitra et demandera le login/password de l’utilisateur.

Autorisation et Telnet

Pour s’authentifier en utilisant Telnet sur un serveur HTTP avec l’autorisation ’Basic’, il faut ajouter un Header “Authorization”, suivi d’une chaine encodĂ©e BASE64 composĂ©e du login et du password. La structure de cette chaine est :

login:password

Si l’on veut s’identifier comme l’utilisateur marc qui a le password antoine, on obtient l’encodage BASE64 suivant : bWFyYzphbnRvaW5l [1].

La requĂȘte Ă  construire pourra donc ĂȘtre :

GET /servlet/protected/content/ HTTP/1.0 <CRLF>

Authorization: Basic bWFyYzphbnRvaW5l <CRLF><CRLF>

Note : Attention Ă  Ă©crire Basic et non BASIC !

[1] obtenu grĂące Ă  la commande perl suivante : %> perl -MMIME::Base64 -e ‘print encode_base64(“marc:antoine”)’

Laisser un commentaire