‫Instructeur : Notre objectif
‫est donc de développer des applications
‫back-end avec Node et c'est donc probablement
‫une bonne idée d'avoir une compréhension de base du fonctionnement du
‫Web dans les coulisses, n'est-ce pas ?
‫Et ça va être une conférence vraiment complète.
‫Et alors plongeons-nous dedans.
‫Maintenant, afin de mieux comprendre comment fonctionne
‫réellement le Web, commençons par
‫poser la question : que se
‫passe-t-il réellement chaque fois que nous
‫tapons une URL
‫dans notre navigateur afin d'ouvrir une nouvelle page Web ?
‫Ou à chaque fois que nous demandons des données à une API ?
‫Ce qui est en fait assez
‫identique et concentrons-nous donc sur un exemple de site Web simple ici.
‫Eh bien, la réponse la plus simple est que
‫notre navigateur, également appelé client, envoie une requête au serveur
‫sur lequel la page Web est hébergée.
‫Et le serveur renverra alors une réponse,
‫qui contiendra la page Web que nous venons de demander.
‫Et ce processus s'appelle le modèle demande-réponse
‫ou encore l'architecture client-serveur.
‫Et tout ce dont nous
‫allons parler dans cette section tourne autour de ce concept fondamental.
‫D'accord, mais allons maintenant un peu plus loin, car ce
‫n'est probablement pas vraiment nouveau pour vous à ce
‫stade, n'est-ce pas ?
‫Disons donc que nous voulons accéder à
‫Google Maps en écrivant google. com/maps dans notre navigateur comme URL.
‫Et chaque URL obtient un HTTP ou HTTPS, qui
‫correspond au protocole qui sera utilisé
‫sur la connexion.
‫Et nous en reparlerons un peu plus tard dans cette vidéo.
‫Ensuite, nous avons le nom de domaine ici,
‫qui est google. com dans
‫ce cas, et aussi après une barre oblique, la soi-disant
‫ressource à laquelle nous
‫allons accéder, et dans ce cas, /maps.
‫Maintenant, ce que vous devez savoir ici, c'est que le
‫nom de domaine comme google. com n'est pas réellement
‫la véritable adresse du serveur auquel nous essayons d'accéder
‫mais juste un joli nom qui est facile à mémoriser pour nous.
‫Nous avons donc besoin d'un moyen de convertir le nom de
‫domaine en l'adresse réelle du
‫serveur et cela se fait via un DNS.
‫DNS signifie donc Domain Name Server, qui
‫sont des serveurs spéciaux qui ressemblent
‫fondamentalement aux annuaires téléphoniques d'Internet.
‫Ainsi, la première étape qui se produit lorsque nous ouvrons un
‫site Web est que le navigateur envoie une requête à un DNS
‫et ce serveur spécial fera alors simplement correspondre l'adresse
‫Web que nous avons saisie dans le navigateur
‫à la véritable adresse IP du serveur.
‫Très bien.
‫Et en fait, cela
‫se produit via votre fournisseur de services Internet ou votre FAI, mais
‫les détails complets n'ont pas vraiment d'importance pour nous.
‫Ce que vous devez retenir
‫de cette partie, c'est que le domaine n'est
‫pas l'adresse réelle et qu'un DNS le convertira en cette adresse IP
‫réelle, qu'un navigateur peut ensuite appeler après l'avoir renvoyée à
‫notre navigateur.
‫Voici donc à quoi ressemble l'adresse
‫réelle, donc elle a toujours le protocole, mais vient ensuite l'adresse IP.
‫Et aussi le port auquel nous avons accédé sur le serveur.
‫Et le numéro de port sert uniquement
‫à identifier un service spécifique exécuté sur un serveur et
‫vous pouvez donc le considérer comme une sous-adresse.
‫Rappelez-vous comment nous avons écouté le port 8000
‫sur notre serveur Web lorsque nous l'avons configuré dans l'intersection, c'est
‫exactement ce qu'est ce port.
‫Veuillez également noter que le numéro de port n'a
‫rien à voir avec la ressource Google Maps à
‫laquelle nous souhaitons accéder.
‫Cette ressource sera en fait envoyée
‫dans la requête HTTP comme nous le verrons dans un instant.
‫D'accord, et ceci conclut la première étape.
‫Ainsi, une fois que nous avons la
‫vraie adresse web, une connexion socket TCP est
‫établie entre le navigateur et
‫le serveur, qui sont maintenant enfin connectés.
‫Et cette connexion est généralement maintenue active pendant
‫tout le temps nécessaire au transfert de
‫tous les fichiers du site Web.
‫Maintenant, quels sont nos TCP et IP ?
‫Eh bien, TCP est le protocole de contrôle de transmission et
‫IP est le protocole Internet,
‫et ensemble, ce sont des protocoles de communication
‫qui définissent exactement comment les données circulent sur le Web.
‫Ce sont
‫donc essentiellement le système de contrôle fondamental d'Internet,
‫car, encore une fois, ce sont eux qui établissent les règles
‫sur la façon dont les données se déplacent sur Internet.
‫Et ne vous inquiétez pas, nous en apprendrons un peu plus sur TCP/IP un
‫peu plus tard dans cette vidéo.
‫Quoi qu'il en soit, il est maintenant temps de faire enfin notre demande.
‫Et la requête que nous faisons
‫est une requête HTTP où HTTP signifie HyperText Transfer Protocol.
‫Ainsi, après TCP/IP, HTTP est encore un autre protocole de communication.
‫Et au fait, un protocole de communication est
‫simplement un système de règles
‫qui permet à deux ou plusieurs parties de communiquer.
‫Et dans le cas de HTTP, il s'agit simplement d'un protocole
‫qui permet aux clients et aux serveurs Web de communiquer
‫en envoyant des requêtes et des messages de
‫réponse du client au serveur et inversement.
‫Maintenant, un message de demande ressemblera à quelque chose comme ceci.
‫Ainsi, le début du message est la partie la
‫plus importante appelée la ligne de départ, qui contient la méthode
‫HTTP utilisée dans la
‫requête, puis la cible de la requête et la version HTTP.
‫Donc, à propos des méthodes HTTP, il en existe de nombreuses,
‫mais les plus importantes sont
‫get pour simplement demander des données, poster pour envoyer des données
‫et mettre et patcher pour modifier essentiellement les données.
‫Vous voyez donc qu'une requête HTTP au serveur n'est pas
‫seulement pour obtenir des données, mais nous pouvons également envoyer des données.
‫Très bien?
‫Maintenant, ne vous inquiétez pas si tout cela semble un peu
‫trop pour vous à ce stade.
‫Nous utiliserons bien sûr ces éléments
‫tout au long du cours, ce qui
‫est en fait la seule raison pour laquelle je vous dis cela.
‫Quoi qu'il en soit, à propos de la
‫cible de la requête, c'est là que le serveur pense que
‫nous voulons accéder à la ressource de cartes dans cet exemple.
‫Vous vous en souvenez ?
‫Nous avions donc /maps dans notre URL et maintenant il est envoyé
‫en tant que cible dans la requête
‫HTTP afin que le serveur puisse ensuite déterminer quoi en faire.
‫Et s'il est vide, donc s'il ne s'agissait que d'une barre oblique, en
‫gros, nous accéderions à la racine du site
‫Web qui serait simplement Google. com dans cet exemple.
‫Ensuite, la partie suivante de la demande sont les en-têtes de demande
‫qui sont juste quelques informations que nous
‫envoyons sur la demande
‫elle-même, et il y a des tonnes d'en-têtes
‫différents disponibles comme quel navigateur est utilisé pour
‫faire la demande, à quel moment, la langue de l'utilisateur et beaucoup, beaucoup d'autres.
‫Enfin, dans le cas où nous envoyons des données
‫au serveur, il y aura également un
‫corps de requête contenant ces données, provenant par exemple d'un formulaire HTML.
‫C'est donc la requête HTTP.
‫Maintenant, bien sûr, ce ne
‫sont pas nous, les développeurs, qui écrivons
‫manuellement ces requêtes, mais il est toujours extrêmement
‫important que vous compreniez à quoi ressemblent une requête HTTP et une
‫réponse, car vous allez travailler beaucoup avec elles, d'accord ?
‫De plus, je tiens à mentionner qu'il existe également HTTPS, comme
‫vous le savez probablement.
‫Et la principale différence entre HTTP et HTTPS est que
‫HTTPS est crypté à l'aide de TLS ou SSL, qui sont encore
‫d'autres protocoles, mais je ne
‫vais pas vous ennuyer avec ceux-ci.
‫Mais outre ces cryptages supplémentaires, la
‫logique entre les requêtes et les réponses HTTP
‫s'applique toujours au HTTPS.
‫Très bien, notre demande atteint maintenant le serveur, qui y
‫travaillera jusqu'à ce que notre site Web soit prêt
‫à être renvoyé.
‫Et il le renverra en utilisant, comme vous pouvez
‫le deviner, une réponse HTTP.
‫Et le message de réponse HTTP ressemble en
‫fait assez à la requête.
‫Donc aussi avec une ligne de départ, des en-têtes et un corps.
‫La ligne de départ a, en plus de la version HTTP,
‫un code d'état et un message.
‫Donc, en gros, pour faire
‫savoir au client si la demande a abouti ou non.
‫Ce 200, par exemple, signifie ok, et
‫celui que tout le monde connaît est le code d'état
‫404 qui signifie introuvable.
‫Et c'est donc de là que vient ce code
‫404 que vous connaissiez déjà.
‫Ensuite, les en-têtes de réponse ou les informations
‫sur la réponse elle-même.
‫Donc, comme avant, et il y en a une tonne
‫disponible et nous pouvons également créer nos propres en-têtes.
‫Maintenant, ce qui est différent avec les
‫en-têtes de réponse, c'est que c'est en fait le
‫développeur back-end comme vous qui les spécifie et les renvoie dans la réponse.
‫Très bien.
‫Enfin, la dernière partie de la réponse est,
‫encore une fois, le corps, qui est en fait présent dans
‫la plupart des réponses.
‫Et c'est aussi le développeur qui renvoie spécifiquement
‫le corps dans la réponse.
‫Et en fait, nous l'avons déjà fait à l'intersection
‫en utilisant la réponse. fin, tu te souviens?
‫Et le corps doit généralement contenir le code HTML du site
‫Web que nous avons demandé ou, par exemple, des données
‫JSON provenant d'une API ou quelque chose comme ça.
‫Nous avons donc parlé en détail
‫des parties les plus
‫importantes ici, qui sont la requête HTTP et la réponse.
‫Mais dans notre exemple imaginaire, nous n'avons fait qu'une seule
‫requête sur Google. com et a obtenu une réponse.
‫Cependant, s'il s'agit d'un site Web auquel nous essayons
‫d'accéder, il y aura beaucoup, beaucoup plus de demandes et de réponses.
‫Et c'est parce que lorsque nous faisons la première
‫demande, tout ce que nous obtenons n'est que le fichier HTML initial,
‫ce fichier sera ensuite analysé pour tous les actifs dont
‫il a besoin pour créer l'ensemble du
‫site Web comme les JavaScripts, les fichiers CSS, les fichiers image ou autres les atouts.
‫Et pour chacun de ces
‫différents fichiers, le navigateur fera alors une nouvelle requête HTTP au serveur.
‫Donc, fondamentalement, tout ce va-et-vient entre
‫le client et le serveur qu'il vient d'expliquer
‫se produit pour
‫chaque fichier inclus dans le site Web.
‫Il peut cependant y avoir plusieurs demandes et réponses
‫en même temps.
‫Mais le montant est en
‫fait limité car, sinon, la connexion commencerait à ralentir.
‫D'accord, et enfin, lorsque tous les fichiers sont arrivés, le site
‫Web est affiché
‫dans le navigateur selon les spécifications HTML, CSS et JavaScript
‫que vous connaissez peut-être déjà.
‫Et maintenant, en tant que pièce finale de
‫ce puzzle, parlons à nouveau de TCP/IP et
‫voyons comment les données de requête et de réponse sont
‫réellement envoyées sur le Web.
‫Nous avons donc dit auparavant que TCP et IP sont
‫les protocoles de communication qui définissent la
‫façon dont les données circulent sur le Web.
‫Maintenant, je ne vais pas entrer dans beaucoup de détails ici,
‫mais voici ce que vous devez savoir.
‫Tout d'abord, le travail de TCP est de diviser les
‫demandes et les réponses en milliers de petits morceaux appelés paquets avant
‫qu'ils ne soient définis.
‫Ensuite, une fois arrivés à destination, tous les
‫paquets seront réassemblés dans la
‫demande ou la réponse d'origine afin que
‫le message arrive à destination le plus
‫rapidement possible, ce qui ne serait pas possible si
‫nous envoyions le site Web en un seul gros morceau.
‫Ce serait comme essayer de traverser
‫le trafic de danse avec le plus gros bus
‫que vous puissiez imaginer.
‫Donc pas une bonne idée.
‫Maintenant, à la deuxième partie, le travail du protocole
‫IP est d'envoyer et de router tous ces
‫paquets via Internet.
‫Cela garantit donc que tous arrivent à
‫destination en utilisant les adresses IP sur chaque paquet.
‫Et encore une fois, il ne s'agit que d'un très large
‫aperçu de ce qui se passe réellement dans les coulisses du
‫Web, car il s'agit en fait de beaucoup trop
‫d'informations dont vous n'avez réellement
‫besoin pour devenir un excellent développeur back-end.
‫Mais j'espère que vous avez toujours trouvé
‫cette information utile et intéressante, et aussi pas trop déroutante.
‫Maintenant, dans la vidéo suivante, nous allons ensuite
‫faire quelques requêtes HTTP afin que vous vous familiarisiez un peu plus
‫avec le protocole.