Table des matières

Notions de base

Quels mécanismes sont mis en œuvre 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 œuvre, 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 :

Côté serveur

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

Plusieurs possibilités existent pour réaliser de telles opérations :

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, si ce n'est au niveau de leur compatibilité avec les standards.

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, odt, ods…). 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 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 seriez probablement amené à vous identifier à chaque nouvelle page. Aujourd'hui d'autres techniques que le cookie sont développées pour répondre à cette question. Il n'en demeure pas moins que le cookie montre encore son utilité dans bien des cas.

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, ce qui constitue un risque de sécurité, suivant les informations stockées dans ce cookie.

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 œuvre un serveur proxy libre sous Linux : le très célèbre SQUID dans le chapitre qui lui est dédié : Squid et SquidGuard.