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 :
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.
HTML5 et CSS3 et suivants intègrent désormais la plupart des fonctionnalités qui étaient autrefois prises en charge par des plug-ins, javascript, bien qu'étant à ce jour (25/03/2025) un machin pas très propre, augmente encore les possibilités, à la condition que le navigateur soit «récent». Dans la pratique il y a toujours intérêt à utiliser la dernière version proposée.
Pour vous aider à mieux vous y retrouver, des exemples simples sont donnés plus loin.
(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 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.
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.