Dans cette leçon, nous examinerons la relation entre les clients et les serveurs. L'architecture Client/Serveur offre un nombre illimité de possibilités de communication, et c'est ce qui rend Internet possible . Nous aborderons une compréhension de base du modèle client/serveur qui sera ensuite utilisé pour appeler une API. Il n'entre pas dans le cadre de cette leçon de couvrir une ressource exhaustive sur l'architecture client/serveur ; nous nous concentrerons plutôt sur les principes fondamentaux de la communication client/serveur.
Vous pourrez :
Le modèle client-serveur des technologies de communication est un ensemble d'architecture d'applications distribuées et d'opérations réseau qui gère les charges de travail entre les fournisseurs d'un service, appelés serveurs , et le demandeur de service, appelés clients .
Bien que le modèle client-serveur puisse être utilisé par des programmes au sein d'un ordinateur individuel, nous nous concentrerons sur l'aspect qui concerne les environnements en réseau. Dans ce cas, le client établit une connexion au serveur via un réseau local (LAN), un réseau étendu (WAN) tel qu'Internet. Avez-vous déjà joué au Xbox Live ou utilisé le PlayStation Network ? Votre Xbox One est le client et lorsqu'elle se connecte au réseau, elle contacte les serveurs Xbox Live pour récupérer des ressources de jeu telles que des mises à jour, des vidéos et des démos de jeux.
Une architecture client-serveur multicouche typique que la plupart d'entre nous utilisent dans la vie quotidienne peut être présentée ci-dessous.
Un client est un périphérique matériel informatique ou un logiciel qui demande un service mis à disposition par un serveur. Le serveur est souvent (mais pas toujours) situé sur un ordinateur physique distinct.
Un serveur est un ordinateur physique dédié à l’exécution de services pour répondre aux besoins des clients. Selon le service en cours d'exécution, il peut s'agir d'un serveur de fichiers, d'un serveur de base de données, d'un serveur multimédia domestique, d'un serveur d'impression, d'un serveur de messagerie ou d'un serveur Web .
L'idée d'un client et d'un serveur communiquant sur un réseau est ce qui rend possible la visualisation de sites Web et l'interaction avec des applications Web (comme Gmail, Facebook, LinkedIn). Ce modèle est un moyen de décrire la relation donnant-donnant entre le client et le serveur dans une application Web et régit la manière dont les informations transitent entre les ordinateurs.
Voyons à quoi ressemble une application Web de base qui prend en charge une requête d'un client Web et la sert en conséquence.
Une application Web (Web app) est un programme d'application stocké sur un serveur distant et diffusé sur Internet via une interface de navigateur. Les services Web sont des applications Web par définition et de nombreux sites Web, mais pas tous, contiennent des applications Web. Tout composant de site Web qui remplit une fonction pour l'utilisateur est considéré comme une application Web. Le moteur de recherche de Google est une application Web, mais son concept fondamental n'est guère différent d'un annuaire téléphonique qui vous permet de rechercher des noms ou des numéros.
La plupart des applications Web utilisent en fait une interface de navigateur pour l'interaction, c'est-à-dire que les utilisateurs finaux demandent l'accès et demandent des informations/services à ces applications via une interface de navigateur Web moderne. Il existe des centaines de façons de créer et de configurer une application Web, mais la plupart d'entre elles suivent la même structure de base : un client Web, un serveur Web et une base de données.
Le client est ce avec lequel l'utilisateur final interagit. Le code « côté client » est en fait responsable de la plupart de ce que voit réellement un utilisateur. Pour demander certaines informations sous forme de page Web, le côté client peut être responsable de : comprend :
La plupart de ces tâches sont gérées par des technologies de type HTML/CSS/JavaScript pour structurer les informations, le style de la page et fournir des objets interactifs pour la navigation et la mise au point.
Un serveur Web dans une application Web écoute les requêtes provenant des clients. Lorsque vous configurez un serveur HTTP (HyperText Transfer Protocol - Language of Internet), nous le configurons pour écouter un numéro de port. Un numéro de port est toujours associé à l'adresse IP d'un ordinateur. Vous pouvez considérer les ports comme des canaux distincts sur un ordinateur que nous pouvons utiliser pour effectuer différentes tâches : un port peut surfer sur www.facebook.com tandis qu'un autre récupère votre courrier électronique. Ceci est possible car chacune des applications (le navigateur Web et le client de messagerie) utilise des numéros de port différents.
Une fois que vous avez configuré un serveur HTTP pour écouter un port spécifique, le serveur attend les requêtes des clients arrivant sur ce port spécifique. Après avoir authentifié le client, le serveur effectue toutes les actions indiquées par la requête et envoie toutes les données demandées via une réponse HTTP.
Les bases de données sont les fondements de l'architecture Web. Une base de données SQL/NoSQL ou un type similaire est un endroit où stocker des informations afin qu'elles puissent être facilement accessibles, gérées et mises à jour. Si vous créez un site de réseau social, par exemple, vous pouvez utiliser une base de données pour stocker des informations sur vos utilisateurs, vos publications, vos commentaires, etc. Lorsqu'un visiteur demande une page, les données insérées dans la page proviennent de la base de données du site, permettant des interactions utilisateur en temps réel avec des sites comme Facebook ou des applications comme Gmail.
Dans l'exemple d'image ci-dessus, nous pouvons voir la configuration mentionnée ci-dessus en action. Un navigateur envoie une requête à un serveur Web en appelant son domaine, c'est-à-dire www.google.com. En fonction de l'identité du demandeur, le serveur collecte les informations nécessaires pour une base de données SQL. Ces informations sont enveloppées sous forme de code HTML et renvoyées au client. Le navigateur Web lit les informations de structuration et de style intégrées dans HTML et affiche la page à l'utilisateur en conséquence.
Il existe de nombreux détails sur les architectures client/serveur et sur la manière dont elles se manifestent sur Internet. Nous nous concentrerons un peu plus sur les idées mises en évidence dans cette section en configurant un client et en effectuant des requêtes en Python. Ces compétences nous aideront à demander des données aux serveurs pour nos expériences analytiques. voici quelques ressources supplémentaires pour vous si vous souhaitez approfondir le modèle client-serveur et comment il est configuré pour de nombreuses architectures différentes.
Dans cette leçon, nous avons examiné les bases du modèle client-serveur et nous sommes concentrés sur la façon dont ce modèle est implémenté pour les applications Web. Nous avons examiné le rôle des clients Web, des serveurs Web et des bases de données contenant des informations sur les clients. Dans les leçons suivantes, nous verrons comment mettre en œuvre ces idées en utilisant Python !