Cet article vous a plu?
0
Cet article vous a plu?
0

Comparaison et différences entre le script côté client et le script côté serveur

Le Web a toujours été basé sur un principe simple : tous les types de contenu sont fournis par les serveurs Web et peuvent être récupérés par les clients via HTTP ou FTP. Les clients sont des navigateurs dont les plus connus sont Mozilla Firefox ou Google Chrome. Ceux-ci peuvent être installés et utilisés sur le système de l’utilisateur. Les serveurs Web comme Apache et NGINX sont en revanche des composants de projets Web ; ils sont aussi installés et exécutés dans cet environnement et permettent au client respectif d’accéder au contenu.

Alors qu’un contenu statique, comme par exemple les éléments HTML classiques ou les images, est simplement et facilement transmis et affiché, le contenu dynamique lui, comme par exemple un wiki, une liste déroulante (drop-down list) ou une application Web, fonctionne uniquement à l’aide de scripts. Ils doivent être exécutés et interprétés avec un langage de script approprié, et peuvent être réalisés côté serveur ou côté client. C’est pour cette raison que l’on distingue le script côté serveur (server side scripting) du script côté client (client side scripting).

Qu’est-ce que le script côté serveur ?

Le script côté serveur est une technique utilisée pour développer des sites Internet avec des éléments dynamiques et des applications Web. Elle est basée sur l’utilisation de scripts, qui fonctionnent sur le serveur Web en utilisant les langages de scripts appropriés lorsqu’un client demande le contenu correspondant. Le rôle des scripts est souvent de collecter les données appropriées à partir d’une base de données et de les intégrer dans le projet Web. L’utilisateur accède à eux via des pages HTML, où le code source des scripts est complètement masqué. L’utilisation de scripts côté serveur requiert que le client envoie plusieurs demandes au serveur Web pour fournir à l’utilisateur de nouvelles informations. Cela signifie une forte utilisation des capacités du serveur, qui affecte le temps de réponse du serveur Web, et d’autre part qu’une connexion existante au serveur soit indispensable pour l’utilisation du site Internet.

Au début du World Wide Web, le script côté serveur a été exécuté presque exclusivement en écrivant des programmes de développeurs en C et Perl ainsi que des scripts de ligne de commande. Ces applications sont exécutées par le système d’exploitation serveur, et le résultat peut être transmis du serveur Web au navigateur à l’aide de l’interface de passerelle commune (CGI).De nombreux serveurs Web modernes peuvent maintenant exécuter directement des scripts en utilisant par exemple des modules appropriés. Le langage de script côté serveur le plus couramment utilisé de nos jours est le langage de programmation PHP qui a été publié en 1995 et est basé sur C et Perl. Le tableau ci-dessous présente une sélection des langages de programmation utilisés pour les scripts côté serveur :

 

ASP.NET

Java

Ruby

Développeur

Microsoft

Sun Microsystems

Yukihiro Matsumoto entre autres

Licence

propriètaire

GNU GPL

BSD

Année d‘édition

2002

1995

1995

Plateforme

Windows

indépendant

indépendant

Paradigmes de programmation

Orienté objet

Orienté objet

Multi paradigme

 

Perl

PHP

Python

Développeur

Larry Wall entre autres

Rasmus Lerdorf

Guido van Rossum, Python Software Foundation

Licence

GNU GPL et licence artistique

Licence PHP entre autres

Python Software Foundation License

Année d‘édition

1987

1995

1991

Plateforme

indépendant

indépendant

indépendant

Paradigmes de programmation

Procédural, modulaire et partiellement orienté objet

Impératif, fonctionnel, orienté objet

Multi paradigme

Qu’est-ce que le script côté client ?

La technique de script côté client est également utilisée par les développeurs Web pour réaliser des projets avec un contenu dynamique. Contrairement à la variante côté serveur, les scripts programmés sont exécutés et traités par le client plutôt que par le serveur. Pour cela, il est nécessaire soit d’intégrer les scripts dans le document HTML ou XHTML, soit de les écrire dans un fichier séparé qui est associé au document. Si désormais l’utilisateur appelle une page Web ou une application avec un tel script côté client, le serveur Web envoie le document HTML ainsi que le script au navigateur qui exécute et présente le résultat final. Les scripts côté client peuvent également contenir des instructions concrètes pour le navigateur Web, comme déterminer comment il doit réagir aux actions de l’utilisateur, par exemple en cliquant sur un bouton. Souvent, le client n’a pas besoin de rétablir une connexion au serveur Web.  

Etant donné que les scripts sont exécutés dans le navigateur de l’utilisateur, l’utilisateur a la possibilité de voir le code source contrairement aux scripts côté serveur. En contrepartie, l’interprétation des scripts requiert que le langage de script correspondant soit compris par le navigateur Web. Il existe plusieurs extensions de navigateur disponibles qui peuvent bloquer les scripts puisque par exemple les pop-ups et les outils de web-tracking qui sont basés sur le script côté client, peuvent avoir un impact négatif sur les temps de chargement.

Le langage de script côté client le plus important est JavaScript. Il a été développé par Netscape qui est le prédécesseur de Mozilla, et publié en 1995 avec la version précédente du navigateur Netscape Navigator 2.0, alors connu à cette époque sous le nom de LiveScript. Il a été diffusé rapidement et est devenu le langage de script universel de tous les navigateurs Web pertinents. Vous pouvez aussi recourir à Shockware Flash (SWF), il comporte cependant des inconvénients importants. Le langage orienté objet est un composant essentiel de Flash Player d’Adobe, qui a longtemps été la référence pour les vidéos sur le Web. Son utilisation est aujourd’hui de plus en plus rare en raison de diverses vulnérabilités et de nouvelles technologies comme HTML5. Enfin au début du Web, les applets Java et de Microsoft Silverlight ont aussi bénéficiés d’une grande popularité.

Théoriquement n’importe quel autre langage de script peut être utilisé pour le script côté client, cependant les développeurs de tous les navigateurs pertinents doivent décider de les soutenir. Il existe cependant des solutions alternatives qui autorisent les scripts côté client avec d’autres langages. Pour cela, le code respectif peut être interprété et exécuté en tant que JavaScript à l’aide d’un transpileur ou compilateur source à source (Transpiler en anglais) comme par exemple CoffeeScript ou TypeScript.

Script côté client vs. script côté serveur

Le lieu d’exécution des scripts a un impact sur la structure des projets Web. Plus les scripts sont transférés dans le navigateur responsable pour traitement, plus le site Internet ou l’application devient alors « rationalisé » pour le serveur. Cela réduit considérablement la charge sur les ressources du serveur, mais il peut cependant provoquer une perte de performance pour l’utilisateur. En outre, les développeurs sont confrontés à une complexité accrue quand seul JavaScript côté client est utilisé, car cela nécessite de répliquer de nombreux mécanismes de framework puissants comme ASP.NET MVC. D’autres problèmes peuvent survenir parce-que le script côté client nécessite que le navigateur prenne en charge tous les langages de script et les fonctionnalités installées par l’utilisateur, sans aucune application de blocage.

Afin de ne pas surcharger le client ou le serveur, vous devez utiliser une bonne combinaison de scripts côté serveur et de scripts côté client et fournir des mesurer supplémentaires telles que la mise en cache du contenu statique et de techniques modernes comme AJAX pour assurer un meilleur temps de chargement possible pour votre projet Web. Ce dernier est l’abrégé de « Asynchronous JavaScript and XML » et décrit la possibilité de transfert de données asynchrones entre le client et le serveur. Sans avoir à recharger la page, le serveur Web peut répondre aux demandes et aux entrées des utilisateurs quasiment en temps réel et échanger des données avec le navigateur. Google Suggest (c’est-à-dire les suggestions de recherche qui s’affichent automatiquement pendant la rédaction d’un terme de recherche dans Google) est l’exemple classique de la mise en œuvre de la technologie AJAX.

Réseau HTTP Navigateur