Le protocole HTTP
09/02/2005
 Christian CALECA 
Liste des cours

Introduction

Notions ] [ Le Protocole ] [ informations cachées ] [ Scripts côté client ] [ Le Proxy ] [ Squid/SquidGuard ]

Il ne sera pas question ici de décortiquer en profondeur les rouages du HTTP. Nous allons plutôt nous intéresser à certains aspects du "surf". En effet,  s'il constitue la pratique la plus courante sur le Net, (avec la messagerie), il n'en présente pas moins beaucoup de côtés qui peuvent sembler "mystérieux".

Evitons déjà une confusion

Même s'il est clair que HTTP et HTML voient leurs destins intimement liés, il s'agit bien de deux choses différentes...

HTTP est résolument orienté "fourniture de documentation". Entendons par là que le but recherché est clairement (du moins initialement) de permettre à un client de trouver le document qui l'intéresse parmi la multitude d'informations stockées sur des serveurs dont le rôle est de publier ces documents à l'intention de qui les cherche. HTTP génère un flux de données pratiquement exclusivement dans le sens du serveur vers le client.

Aujourd'hui, la situation est un peu moins claire. Les usagers de l'Internet prennent une part de plus en plus active dans la création de contenu. Historiquement, la mise à jour du contenu d'un serveur HTTP se fait par un autre protocole : FTP (File Transfert Protocol). Cette méthode présente deux inconvénients :

Microsoft a ouvert le feu avec FrontPage, outil de création de documents HTML très intuitif, permettant de mettre en ligne ses documents sur un serveur HTTP "maison", pourvu des fameuses "extensions FrontPage". Il s'agit d'Internet Information Server, assez connu pour ses trous de sécurité. L'extrème simplicité d'emploi du couple FrontPage/IIS est malheureusement handicapée par ces deux points fondamentaux:

Des alternatives libres  apparaissent, qui tendent à intégrer à HTTP des fonctions de transfert de fichiers du client vers le serveur, ainsi que des mécanismes de gestion efficace des mises à jour. Ces solutions manquent toutefois encore de maturité et présentent elles aussi de graves inconvénients pour la sécurité des serveurs à accès public.

Regardons en arrière

Historiquement, il a existé avant l'explosion du couple HTTP/HTML un autre outil permettant de servir simplement et efficacement des documents, il s'agissait du système "Gopher": 
Du nom de l'écureuil américain, aussi appelé « spermophile », vivant dans un dédale de galeries. Le logiciel permettait de se promener dans le labyrinthe de l'Internet. Gofer signifie aussi en argot américain « Go for », qui veut dire « va chercher », et désignant un garçon de courses. (© Rheingold).
Que les amoureux de l'histoire du Net se reportent au "jargon français", (d'où la définition ci-dessus a été tirée). Disons simplement que ce protocole n'a pas survécu parce qu'il était "propriétaire". En effet il appartenait à l'université du Minnesota, qui menaçait de réclamer des royalties pour son emploi. La réplique fut immédiate... Gopher est mort. [1]

Regardons en avant

Aujourd'hui, HTTP est certainement le protocole le plus utilisé sur le Net et probablement le plus simple. C'est aussi certainement celui à qui on demande le plus. N'oublions pas qu'il est initialement conçu pour transporter du texte, avec des hyper liens. Or, que ne lui faisons nous pas transporter... Avec l'avènement du haut débit, les pages s'alourdissent et embarquent chaque jour des "fioritures" de plus en plus élaborées.

Le plan du site :

notions protocole informations script proxy squid http


Notions ] [ Le Protocole ] [ informations cachées ] [ Scripts côté client ] [ Le Proxy ] [ Squid/SquidGuard ]

[1] Vous savez comment sont ces idéalistes libertaires : Il suffit que l'on cherche à leur imposer une marque de propriété pour qu'immédiatement, ils réalisent un système de remplacement  libre et souvent plus efficace que l'original. D'autres exemples biens connus, comme les formats GIF (propriétaire) et PNG (libre), certains systèmes d'exploitation que je ne nommerai pas (observez bien le pluriel) et d'autres comme Linux, FreeBSD, OpenBSD...