HTTP

Introduction

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 ».

Les créateurs de sites web rivalisent d'ingéniosité pour réaliser des pages sophistiquées, qui mettent en œuvre beaucoup de techniques périphériques au protocole lui-même. Nous ne détaillerons pas toutes ces techniques, nous essayerons simplement de les présenter et de les démystifier…

On parle beaucoup du respect de la vie privée sur le Net. Nous verrons d'un peu plus près les petites indiscrétions qui sont pratiquées par ci par là.

Nous verrons également comment les documents sont demandés et reçus, quelle est la part de travail du navigateur du client et celle du serveur du fournisseur d'informations.

Nous verrons également quelles techniques sont utilisées pour accélérer la navigation, aussi bien du côté du client (cache local) que de celui du fournisseur d'accès (serveurs proxy).

Le serveur proxy mérite quelque attention. En effet, c'est un peu le couteau suisse de l'interconnexion entre un réseau local et le Net, beaucoup de réseaux locaux d'entreprise n'offrent l'accès au Net qu'à travers un proxy, pour diverses raisons dont nous verrons les plus importantes.

Evitons déjà une confusion

  • HTTP (Hyper Text Transfert Protocol) est un protocole destiné à transférer du texte (ou des fichiers quelconques, s'ils sont définis par un format MIME) depuis un serveur vers un client. Initialement, il s'agissait bien de texte, sans illustrations, avec juste quelques possibilités d'enrichissement. Ceux qui utilisent un système GNU/Linux pourront essayer un navigateur en mode texte comme Lynx ;
  • HTML (Hyper Text Markup Language) est un langage de description de document. Outre les possibilités d'enrichissement du texte comme les attributs gras, italique, souligné, les différents niveaux de titre, il offre la bien connue possibilité de définir des « hyperliens » entre documents ou parties de documents.

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 :

  • Ce n'est pas d'une très grande souplesse d'usage ;
  • Lorsqu'un site est maintenu par plusieurs auteurs, la gestion des mises à jour peut devenir délicate.

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 Services, assez connu pour ses trous de sécurité, du moins à ses débuts. L'extrême simplicité d'emploi du couple FrontPage/IIS est malheureusement handicapée par ces deux points fondamentaux:

  • Cette solution, propriétaire, oblige à n'utiliser que les technologies Microsoft, si l'on désire profiter de tous les avantages offerts ;
  • Les difficultés à maitriser la sécurité de cette solution, surtout sur un serveur public.

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 parfois de graves inconvénients pour la sécurité des serveurs à accès public. Aussi, nous passons d'une époque où le contenu d'une page HTML était écrit « en dur » de façon statique, avec un outil spécialisé ou non, à une époque où le html est généré à la volée par le serveur, de façon dynamique, à partir d'informations stockées dans des bases de données où dans des fichiers texte, comme c'est le cas pour ce site. Dans un tel cas, les données sont mise à jour par des formulaires HTML et envoyés au serveur par la méthode « POST » que nous verrons plus loin.

Du point de vue du client, peu importe que les pages soient statiques où dynamiques, ce qu'il reçoit est toujours du HTML.

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, voir aussi le Wikipédia). 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 l'on demande le plus. N'oublions pas qu'il est initialement conçu pour transporter du texte, avec des hyperliens. 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, nécessitant des « plug-ins » généralement propriétaires (Flash, Shockwave, Real, etc.).

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…