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

Notions de base

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

Quels mécanismes sont mis en oeuvre dans le surf ?

HTTP est donc un protocole somme toute assez simple par lui même. Ce qui complique la compréhension de l'ensemble des processus mis en oeuvre, c'est toute " l'intelligence " qui est ajoutée, tant du côté serveur que du côté client.

Au départ, un client envoie une requête à un serveur HTTP et celui-ci y répond. Toute la difficulté vient de deux aspects qui sont indépendants du protocole HTTP lui-même :

serveur HTTP

Côté serveur

Lorsqu'une requête arrive sur le serveur, elle peut concerner :

Ces technologies sont dites "Server Side", c'est à dire que les traitements sur l'information sont effectués sur le serveur.

L'avantage du "server side" est que le code HTML reçu par le client est du HTML pur, ce qui veut dire qu'à priori, tout navigateur peut l'afficher correctement, sans trop de précautions particulières de la part de l'auteur du site.

L'inconvénient est que le serveur voit sa charge augmenter dans des proportions qui peuvent être considérables et qu'en cas de connexion lente, la navigation devient vite pénible, lorsqu'il y a beaucoup de traitement d'informations introduites par le client, comme des calculs exécutés à partir de données issues d'un formulaire.

Côté client

De ce côté là aussi, des traitements d'informations peuvent être utiles :

Là encore, les données peuvent être traitées, de diverses manières.

Les avantages sont de deux sortes :

Les inconvénients viennent des incompatibilités entre navigateurs et des trous de sécurité introduits par des exécutables téléchargés sur le client, issus d'origines qui peuvent être malveillantes.

Il n'est pas forcément aisé pour un surfeur de faire précisément la part des choses dans tous ces mécanismes qui peuvent se combiner avec plus ou moins de complexité (et de bonheur) au fil des sites visités.

Pour vous aider à mieux vous y retrouver, des exemples simples sont donnés plus loin.

Quelques notions supplémentaires

Le codage MIME

(Multipurpose Internet Mail Extension. Format de messages de l'Internet permettant de découper un message en plusieurs parties et d'y inclure des données non-ASCII, à savoir du son, des images..)
Définition empruntée au "Jargon Français".

HTTP, un peu comme SMTP, ne sait pas nativement transporter autre chose que du texte. Il est bien connu de tous que le web propose aussi autre chose, comme des images (jpg, gif, png...), des animations et des documents aux formats plus ou moins particuliers (pdf, mpg, doc, xls...). Client et serveur doivent se mettre d'accord sur un moyen de coder ces information (serveur) et de les décoder (client) pour les afficher quand c'est possible, ou en proposer le téléchargement. Dans tous les cas, ces données non textuelles doivent être codées et décodées de façon cohérente.

Les cookies

Les cookies ne sont pas une mauvaise invention, c'est leur utilisation qui est parfois détournée à des fins perversement contestables.

Contrairement à ce que l'on peut penser, Il n'existe pas de mémoire dans la navigation web.  Plus exactement, la notion de "session" n'existe pas (mais ça vient).  Pour bien comprendre, prenons un exemple simple : Vous entrez sur un site privé qui nécessite une authentification (nom d'utilisateur et mot de passe) A priori, sans l'aide des cookies, vous serez probablement amené à vous identifier à chaque nouvelle page.

Le principe est simple : Une fois authentifié, le serveur va déposer chez vous un "cookie" contenant des informations qu'il peut ensuite aller relire à chaque ouverture d'une nouvelle page, pendant toute la durée de vie de ce cookie. 

Normalement, il n'y a que le serveur qui a déposé un cookie qui peut aller le relire (éventuellement un autre serveur du même domaine). Malheureusement, certains ont trouvé des moyens pour extorquer aux clients des cookies dont ils ne sont pas à l'origine.

Le passage par un proxy

Nous allons profiter de l'occasion pour tordre le cou à une confusion trop souvent répandue entre deux méthodes qui permettent toutes deux l'accès au Net pour un réseau local :

Pour l'exemple  nous mettrons en oeuvre un serveur proxy libre sous Linux : le très célèbre SQUID. Comme, à l'usage, je constate que ce site sert quelquefois de "mode d'emploi", nous en profiterons pour développer un peu la mise en oeuvre de ce serveur.


Accueil ] [ Suivante ]