Dans le cours : Créer des API RESTful

Comprendre le protocole HTTP

Bonjour à tous et bienvenue dans ce cours consacré aux API Restful. Afin de bien démarrer ce cours, nous allons voir d'abord quelques basics et notamment ici, le protocole HTTP. Comme son nom l'indique « HyperText Transfer Protocol », c'est un protocole de transfert au format texte. Nous allons transporter du texte entre deux entités sur un même réseau. Et pourquoi « HyperText » ? C'est parce que nous allons agrémenter ce texte de quelques métadonnées que nous allons appeler des « entêtes ». Nous allons le voir un peu plus tard. D'un point de vue historique, il faut bien comprendre d'où vient internet et d'où vient HTTP. Qu'n 68, ce sont les débuts d'internet avec quatre ordinateurs connectés avec un réseau que nous allons appeler l' « Arpanet ». En 69, c'est la création de Telnet, donc Telnet, c'est déjà les premiers prémices d'échange entre un client et un serveur. En 71, c'est la création du protocole FTP avec 23 ordinateurs connectés, FTP qui est un protocole de transfert de fichiers. C'est déjà plutôt intéressant puisqu'on arrive déjà à transmettre de la donnée assez forte. En 72, on commence vraiment à moderniser internet avec le début des e-mails et ensuite en 73, là véritablement, c'est la création de TCP/IP. Nous avons ensuite, un peu plus de 20 plus tard, la standardisation d'HTTP en première version avec le RFC 1945. Ça, c'est vraiment la définition des bases, des premières syntaxes, de la sémantique. Ça va définir qu'est-ce que c'est qu'une requête et cette standardisation va rajouter quelques fonctionnalités intéressantes comme le « caching » et l'authentification. Nous allons avoir en 2015, le RFC 7541 avec la version deux d'HTTP qui rajoute notamment des fonctionnalités assez intéressantes comme la compression des données, le mode Server Push qui permet cette fois-ci au serveur d'envoyer des données vers le client et d'autres fonctionnalités intéressantes comme le « pipelining » des requêtes ou le « multiplexing » TCP. Qui va notamment permettre avec une seule connexion client-serveur d'envoyer plusieurs requêtes HTTP. Nous le verrons un peu plus tard. Et en 96 est apparu le Draft de l'HTTP 3 qui est en fait une version qui est vraiment beaucoup plus moderne aujourd'hui et beaucoup plus adaptée au monde d'aujourd'hui notamment, le monde très mobile. Grâce au protocole Quic, cette version trois d'HTTP rend maintenant beaucoup plus performant les requêtes HTTP client-serveur et elle répond notamment aux problèmes de « Head-of-line blocking » que je vous invite à parcourir sur Google par exemple pour vous informer car ce n'est pas l'objet de ce cours aujourd'hui. Sachez que HTTP 3 devient de plus en plus courant aujourd'hui sur les sites web ou sur les applications web. Les navigateurs les plus récents et les plus modernes le supportent maintenant assez largement et les frameworks et les technologies commencent également à s'y faire à cette nouvelle version d'HTTP 3. Nous allons également revenir rapidement sur les modèles TCP et modèles OSI pour bien comprendre où se situe le protocole HTTP. Nous avons à gauche le modèle TCP/IP et à droite le modèle OSI. Clairement, le protocole HTTP se situe au niveau des couches les plus hautes de ces modèles ; notamment, au niveau applicatif. C'est-à-dire très proche des logiciels. Au même niveau que FTP ou Telnet. Nous allons avoir TCP, UDP plutôt au niveau transport sur des niveaux un peu plus bas à titre de comparaison et également, le protocole IP plutôt au niveau réseau. Et enfin au plus bas, très proche de la partie matérielle, nous allons avoir Ethernet, les cartes réseau ou encore les cables avec les fiches RG45. Pour bien comprendre le principe du protocole HTTP, il faut bien comprendre que nous avons d'un côté un client qui est ici notre navigateur et la deuxième partie qui va être un serveur web. Le principe du protocole HTTP est de standardiser les échanges entre les deux. Dans un premier temps, nous allons avoir le navigateur qui envoie une requête HTTP à ce serveur web. La requête est souvent composée d'une URL, peut avoir du contenu dans le corps du message qui va être du texte et peut être agrémenté de plusieurs entêtes. Ce serveur web va récupérer cette requête, il va traiter la requête en récupérant du contenu additionnel, en mettant en forme les données ou en générant lui-même de nouvelles entêtes. Et enfin, une fois qu'il a terminé, le serveur va renvoyer une réponse au navigateur. Le navigateur va récupérer cette réponse et la traiter. Dans la plupart des cas, ça va être en fait une page web avec de l'HTML CSS que le navigateur va simplement afficher à l'utilisateur. Nous avons maintenant les bases d'HTTP, nous pouvons approfondir le sujet des API Rest.

Table des matières