Si vous avez l’œil très aiguisé lorsque vous regardez les adresses web dans la barre supérieure de votre navigateur, vous aurez probablement remarqué la toute première partie de l’adresse d’un site web, les lettres « HTTP » ou « HTTPS ». Mais qu’est-ce que le protocole HTTP et comment fonctionne-t-il ? Jetons un coup d’œil à la colle qui maintient l’unité du Web.

HTTP : la version courte

HTTP est un acronyme qui signifie « protocole de transfert hypertexte ». Décortiquons un peu ce terme, en commençant par la partie « protocole ». En technologie, un protocole est l’ensemble des règles que les machines doivent respecter pour « dialoguer » entre elles. Par exemple, les protocoles VPN déterminent comment les VPN interagissent avec les serveurs. Le protocole HTTP est beaucoup moins spécifique que cela et définit plutôt les règles de fonctionnement de l’internet.

Il ne s’agit pas d’une exagération. Sans HTTP, il n’y aurait pas de communication sur le World Wide Web. En effet, HTTP régit la communication entre les serveurs web et les clients web – la partie « transfert ». Les serveurs web sont l’endroit où vous vous connectez pour pouvoir consulter des sites ; par exemple, vous êtes actuellement en contact avec le serveur web de Journal du Freenaute pour pouvoir lire cet article.

Pour accéder à un serveur web, vous avez besoin d’un client web. La plupart du temps, ce client est votre navigateur, mais il peut s’agir de n’importe quel type d’application. Par exemple, si vous avez cliqué sur cet article à partir de l’application mobile Facebook, le navigateur intégré à l’application Facebook est votre client web. L’interaction client-serveur est à peu près l’essence même de l’internet, et HTTP en fait partie intégrante.

La dernière partie de l’acronyme HTTP est la partie « hypertexte », qui correspond au type de fichiers transmis, presque toujours par le biais de fichiers HTML. Ces types de fichiers sont les éléments constitutifs du web car ils ne se contentent pas d’afficher un langage, ils peuvent également être reliés entre eux. C’est différent des types de fichiers que vous avez sur votre appareil, qui ne peuvent généralement pas faire cela.

Le fonctionnement du protocole HTTP en quelques mots

HTTP est un protocole qui s’exécute sur la couche dite applicative de l’internet, au-dessus de la couche internet, où se trouvent les véritables rouages du web, comme les adresses IP. La couche applicative est l’endroit où se trouvent les navigateurs et les applications que vous utilisez tous les jours, et HTTP en fait partie intégrante.

Le principe est le suivant : votre navigateur, le client, envoie une requête HTTP sur le réseau, qui est traitée par le serveur du site auquel vous voulez accéder. Le site renvoie ensuite une réponse HTTP, qui est – si tout s’est bien passé – la page que vous vouliez voir. Le navigateur affiche alors la réponse.

Décomposer les requêtes HTTP

Bien sûr, il y a un peu plus que cela. Une requête HTTP est en fait constituée de plusieurs parties, chacune jouant un rôle important dans l’affichage du site. Parmi les parties les plus importantes de toute requête figurent la méthode HTTP, les en-têtes de la requête et le corps de la requête.

La méthode correspond généralement à l’action que l’on demande à HTTP d’effectuer, c’est-à-dire récupérer des informations ou les fournir (les commandes « GET » et « POST », respectivement, bien qu’il en existe beaucoup d’autres). Les en-têtes de requête HTML sont un peu plus difficiles à expliquer, mais considérez-les comme des enveloppes : chacune d’entre elles contient l’adresse de la destination, l’adresse de l’expéditeur, ainsi que tout un tas d’autres informations, comme le type de boîte aux lettres (navigateur) et des informations sur le cryptage.

Le corps du message HTML « remplit » l’enveloppe avec des informations telles que les informations de connexion ou toute autre information dont le serveur a besoin pour afficher la page ; parfois, il est vide et l’enveloppe, l’en-tête de la demande, suffit.

Réponses HTTP

Une fois la requête reçue, le serveur Web commence à travailler sur sa réponse, qui se compose également de trois parties : le code d’état HTTP, l’en-tête de réponse et le corps de la réponse. L’en-tête et le corps de la réponse ressemblent beaucoup à leurs homologues dans les demandes, sauf que le corps de la réponse contiendra beaucoup plus d’informations, comme les fichiers contenant les informations nécessaires à l’affichage d’une page Web.

Les codes d’état sont intéressants, car nous les avons probablement tous rencontrés sans savoir de quoi il s’agissait. Il s’agit de trois chiffres qui peuvent commencer par les nombres 1 à 5. Chaque série représente quelque chose. Ainsi, tout code à trois chiffres commençant par 2 signifie un succès (la page s’affiche sans problème), tandis qu’un code commençant par 4 signifie une erreur, comme le tristement célèbre code 404 : page not found.

Ce système d’appel et de réponse est la base de tout ce que nous faisons sur l’internet. Bien qu’il soit plus compliqué que ce que nous avons décrit ci-dessus, ceci couvre les bases. Bien entendu, la question de la sécurité de cette communication se pose.

Sécurité HTTP

C’est là que se pose le problème du protocole HTTP : à aucun moment les informations ne sont cryptées ou protégées de quelque manière que ce soit. Il s’agit purement d’une demande et d’une réception, il n’y a aucune étape où la sécurité est ajoutée. Quiconque est en mesure d’intercepter les messages peut voir ce qui est envoyé, ce qui inclut des choses comme les numéros de carte de crédit ou les informations sur les comptes.

D’une certaine manière, c’est comme lorsque vous parlez à un voisin par-dessus la clôture qui sépare vos propriétés : vous êtes chacun dans votre propre zone, mais si quelqu’un se tient suffisamment près, il peut entendre chaque mot que vous dites.

Comme vous pouvez l’imaginer, c’est une très mauvaise nouvelle pour la plupart des internautes, et une très bonne nouvelle pour les personnes qui s’en servent. Pour remédier à cela, un nouveau type de HTTP a été mis en place, appelé HTTPS, où le « S » final signifie « sécurisé ». Ce type de HTTP crypte les informations, ce qui fait qu’il est beaucoup plus difficile pour quiconque de les écouter, pour ainsi dire.

Actuellement, il est de moins en moins courant de voir ce que l’on appelle le HTTP « ordinaire » n’importe où, car au cours des dernières années, presque tous les sites dignes de ce nom sont passés au HTTPS. Certains, pour des raisons qui varient selon le propriétaire du site, ont résisté à ce changement. Il est préférable de les éviter, ou au moins d’utiliser un VPN pour protéger les informations sensibles.

Cela dit, bien que HTTPS soit une mise à niveau essentielle, c’est tout ce qu’il est, une mise à niveau. Le protocole HTTP alimente l’internet depuis sa création et nous ne pensons pas que cela va changer de sitôt.