Que signifient les termes « côté client » et « côté serveur » ? | Côté client et côté serveur

Le côté client et le côté serveur décrivent l'endroit où le code de l'application web s'exécute.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Comprenez le modèle client-serveur
  • Apprenez les types de processus qui ont lieu sur les clients et les serveurs
  • Découvrez les rapports entre les clients et les serveurs et les applications frontend et backend
  • Découvrez comment l'utilisation d'une architecture sans serveur affecte les processus côté serveur

Copier le lien de l'article

Que faut-il entendre par « côté client » et « côté serveur » ?

Côté client et côté serveur sont des termes de développement web qui décrivent où s'exécute le code de l'application. Les développeurs web parlerons également de frontend vs. backend pour la même réalité, bien que le côté client/serveur et le frontend/backend ne soient pas tout à fait les mêmes. Dans une architecture sans serveur, le fournisseur sans serveur héberge et attribue des ressources à tous les processus côté serveur, et les processus s'intensifient à mesure que l'utilisation des applications augmente.

Qu'est-ce que le modèle client-serveur ?

Une grande partie de l'Internet est basée sur le modèle client-serveur. Dans ce modèle, les appareils des utilisateurs communiquent via un réseau avec des serveurs situés au centre pour obtenir les données dont ils ont besoin, au lieu de communiquer entre eux. Les appareils des utilisateurs finaux tels que les ordinateurs portables, les téléphones intelligents et les ordinateurs de bureau sont considérés comme des "clients" des serveurs, comme s'ils étaient des clients qui obtiennent des services d'une entreprise. Les dispositifs clients envoient des demandes aux serveurs pour des pages web ou des applications, et les serveurs fournissent des réponses.

Le modèle client-serveur est utilisé parce que les serveurs sont généralement plus puissants et plus fiables que les appareils des utilisateurs. Ils sont aussi constamment entretenus et maintenus dans des environnements contrôlés pour s'assurer qu'ils sont toujours en marche et disponibles ; bien que des serveurs individuels puissent tomber en panne, il y a généralement d'autres serveurs qui sauvegardent leurs contenus. Pendant ce temps, les utilisateurs peuvent allumer et éteindre leurs appareils, ou les perdre ou les casser, et cela n'affectera pas le service Internet pour les autres utilisateurs.

Les serveurs peuvent desservir plusieurs dispositifs clients à la fois, et chaque dispositif client envoie des requêtes à plusieurs serveurs au cours de l'accès et de la navigation sur l'internet.

Plusieurs clients et serveurs interagissent :

Relation Many-to-many dans le modèle client-serveur

Chaque client communiquera avec plusieurs serveurs, et vice versa.

Supposons qu'un utilisateur navigue sur Internet et tape « netflix.com » dans la barre de son navigateur. Il en résulte une demande aux serveurs DNS pour l'adresse IP de netflix.com, et les serveurs DNS répondent à cette demande en fournissant l'adresse IP au navigateur. Ensuite, le navigateur de l'utilisateur fait une demande aux serveurs Netflix (en utilisant l'adresse IP) pour le contenu qui apparaît sur la page, comme les images miniatures du film, le logo Netflix et la barre de recherche. Les serveurs Netflix transmettent cette requête au navigateur, qui charge la page sur le périphérique client.

Que signifie "côté client" ?

Dans le développement web, le "côté client" désigne tout ce qui, dans une application web, est affiché ou se déroule sur le client (dispositif de l'utilisateur final). Cela inclut ce que l'utilisateur voit, comme du texte, des images et le reste de l'interface utilisateur, ainsi que toutes les actions qu'une application effectue dans le navigateur de l'utilisateur.

Les langages de balisage comme HTML et CSS sont interprétés par le navigateur côté client. En outre, de nombreux développeurs contemporains incluent des processus côté client dans leur architecture d'application et s'interdisent de tout faire du côté serveur ; la logique commerciale pour les pages web dynamiques*, par exemple, s'exécute généralement côté client dans une application web moderne. Les processus côté client sont presque toujours écrits en JavaScript.

Dans l'exemple de netflix.com ci-dessus, le HTML, le CSS et le JavaScript qui dictent comment la page principale de Netflix apparaît à l'utilisateur sont interprétés par le navigateur du côté client. La page peut également répondre à des "événements" : Par exemple, si la souris de l'utilisateur survole l'une des vignettes du film, l'image s'agrandit et les vignettes adjacentes se déplacent légèrement d'un côté pour faire place à l'image plus grande. Il s'agit d'un exemple de processus côté client ; le code de la page web elle-même répond à la souris de l'utilisateur et déclenche cette action sans communiquer avec le serveur.

Le côté client est également connu sous le nom de frontend, bien que ces deux termes ne signifient pas exactement la même chose. Le côté client fait uniquement référence à l'endroit où les processus s'exécutent, tandis que le frontend fait référence aux types de processus qui s'exécutent côté client.

**Une page web dynamique est une page web qui n'affiche pas le même contenu pour tous les utilisateurs et qui change en fonction des données founies par l'utilisateur. La page d'accueil de Facebook est une page dynamique ; la page de connexion à Facebook est pour la plupart statique.

Que signifie "côté serveur" ?

Tout comme pour le côté client, "côté serveur" signifie tout ce qui se passe sur le serveur, et non sur le client. Dans le passé, la quasi-totalité de la logique opérationnelle s'exécutait du côté serveur, ce qui incluait de rendre des pages web dynamiques, d'interagir avec les bases de données, d'authentifier l'identité et de lancer des notifications.

Le problème de l'hébergement de tous ces processus du côté du serveur est que chaque requête impliquant l'un d'entre eux doit à chaque fois parcourir tout le chemin du client au serveur. Cela introduit une grande latence. C'est pourquoi les applications contemporaines exécutent plus de code du côté client ; un cas d'utilisation est le fait de rendre des pages web dynamiques en temps réel en exécutant des scripts dans le navigateur qui apportent des modifications au contenu qu'un utilisateur voit.

Comme pour "frontend" et "client-side", "backend" est également un terme qui désigne les processus qui se déroulent sur le serveur, bien que "backend" ne se réfère qu'aux types de processus et "côté-serveur" à l'endroit où les processus s'exécutent.

Qu'est-ce que le scripting côté client ? Qu'est-ce que le scripting côté serveur ?

Le scripting côté client signifie simplement l'exécution de scripts, tels que JavaScript, sur le périphérique client, généralement dans un navigateur. Toutes sortes de scripts peuvent être exécutés du côté client s'ils sont écrits en JavaScript, car JavaScript est universellement pris en charge. Les autres langages de script ne peuvent être utilisés que si le navigateur de l'utilisateur les prend en charge.

Les scripts côté serveur s'exécutent sur le serveur plutôt que sur le client, souvent afin de fournir un contenu dynamique aux pages web en réponse aux actions de l'utilisateur. Les scripts côté serveur n'ont pas besoin d'être écrits en JavaScript, puisque le serveur peut prendre en charge plusieurs langues.

Les scripts sont exécutés côté client et côté serveur.

Scripting côté client et scripting côté serveur

Les données circulent entre le client et le serveur, et les scripts peuvent s'exécuter des deux côtés.

Comment fonctionnent les processus côté serveur dans une architecture sans serveur ?

Dans l'informatique sans serveur, tous les processus côté serveur ou backend fonctionnent toujours sur des serveurs au lieu de dispositifs clients, mais ils ne sont pas déployés sur un serveur ou un ensemble de serveurs spécifique. Les processus backend sont décomposés en fonctions, qui s'exécutent à la demande, et s'adaptent automatiquement. Les développeurs peuvent toujours créer toutes les fonctionnalités qui s'exécutent normalement côté serveur dans une architecture sans serveur.

Cloudflare Workers s'exécute-t-il côté serveur ou côté client ?

Les Cloudflare Workers sont des fonctions JavaScript sans serveur qui s'exécutent à la demande, et ils fonctionnent sur le réseau périphérique que Cloudflare utilise pour la mise en cache du réseau RDC, entre le client et le serveur d'origine. Cela permet aux développeurs de créer des backends sans serveur qui, bien que techniquement côté serveur, sont situés le plus près possible du dispositif client, réduisant ainsi la latence et permettant aux applications de répondre plus rapidement aux interactions des utilisateurs.

Pour vous lancer avec Cloudflare Workers, consultez notre documentation pour les développeurs.