Le protocole HTTP: Un protocole client serveur


Le protocole HTTP est une implémentation de type client serveur des plus simples qui soit. Le client est généralement votre navigateur web (mozilla, konqueror...) mais l'objectif de cet article est de vous donné toutes les bases pour écrire vos propres clients. Celui-ci envoie une requête à un serveur (apache ...) qui lui répond. C'est un protocole en mode texte, généralement utilisé sur une connexion TCP, dédié au transfert de ressource. Il n'est pas dédié à l'échange de fichiers même si dans la pratique c'est souvent le cas avec les sites web. Il devient donc extrêmement simple d'étudier son fonctionnement en utilisant le programme telnet. Pour se connecter au serveur web de linuxmag, il suffit de faire :

telnet www.linuxmag-france.org 80

Le port 80 est celui généralement utilisé par le serveur pour recevoir une connexion. Vous retrouverez cette valeur si vous jetez un oeil dans le fichier /etc/services. Une fois la connexion établie, vous pouvez envoyer votre requête HTTP :

GET / http/1.0 (Suivi d'une ligne blanche)

et si tout se passe bien vous recevrez une réponse de ce type

HTTP/1.1 200 OK
Date: Mon, 26 Aug 2002 14:03:19 GMT
Server: Apache/1.3.23 (Unix) Debian GNU/Linux PHP/4.1.2
X-Powered-By: PHP/4.1.2
Connection: close
Content-Type: text/html; charset=iso-8859-1



...