2.1.2.1 Fonctionnement du protocole HTTP

Connexion (initié par le client) : La connexion se fait, à travers une connexion TCP-IP, en mentionnant le nom du serveur ou son numéro IP, ainsi le numéro de port donné dans l'adresse. Dans le cas où ce dernier n'est pas spécifié, le port 80 est utilisé par défaut.

Si HTTP fonctionne le plus souvent sous TCP, il peut tout aussi bien être implémenté à l'aide de n'importe quel autre service en mode connecté.

Requêtes

Le client envoie une requête de document qui consiste en une ligne écrite en caractères ASCII se terminant par "CR LF" (Carriage Return, Line Feed). Cette requête n'est autre que le mot "GET", un espace et l'adresse du document, en omettant la partie de l'HTTP : l'hôte et le port.

L'adresse du document ne doit comporter qu'un seul mot, tout autre mot est ignoré. La fonctionnalité du processus de recherche repose sur la capacité à transformer une adresse donnée en une recherche d'index. Ex. :

  • GET /index.html HTTP /1.0
    Le client peut envoyer des informations en-tête supplémentaires pour informer le serveur de sa configuration et les formats qu'il accepte. Toutes les informations en-tête sont données ligne par ligne, chaque ligne avec le nom d'en-tête et la valeur associée. Ex. :

  • Connection: Keep-Alive

  • User-Agent: Mozilla/2.02Gold (WinNT; I)

  • Host: www.ora.com

  • Accept: image/gif, image/pjpeg, */*

Après la requête et les en-têtes, le client peut envoyer des données additionnelles (le corps de la requête).

Réponse

Le format de réponse est tout aussi simple, il débute par une ligne d'état contenant la version du protocole utilisé par le serveur, ainsi qu'un code résultat et éventuellement un message. Ce premier flux d'informations est constitué de caractères ASCII. Ex. :

  • HTTP /1.0 200 Document follows
    Ceci, suivi par une série d'en-têtes dont les plus importants sont "type du contenu", qui décrit le type de l'objet qui est donné, et "longueur du contenu", qui indique la longueur du document. Les entêtes se terminent par des lignes vides. Ex. :

  • Date: Fri, 20 Sep 1996 08:17:58 GMT

  • Server: NCSA/1.5.2

  • Last-modified: Mon, 17 Jun 1996 21:53:08 GMT

  • Content-type: text/html

  • Content-length: 2482

Le serveur peut maintenant envoyer n'importes quelles données. Après l'envoi du document, le serveur coupe la connexion.

Déconnexion

La connexion TCP-IP est coupée par le serveur quand tout le document a été transmis. Le client peut avorter le transfert en coupant lui-même la connexion avant la fin du transfert, dans ce cas le serveur n'enregistrera aucune erreur.