Server-side
# Server-side

L'expression server-side (côté serveur) fait référence à des opérations qui sont effectuées par le serveur dans la communication entre client et serveur dans un réseau $informatique^,^,^,.$ Il ne faut pas confondre cette expression avec le nom de la nouvelle licence de MongoDB (depuis octobre 2018).

## Concepts généraux

Généralement, un serveur est une application informatique, telle qu'un serveur web, qui fonctionne sur un serveur distant, auquel l'utilisateur accède depuis l'endroit où il se trouve via un ordinateur, un smartphone ou tout autre appareil. Des opérations peuvent être exécutées côté serveur car requérant l'accès à des informations ou des fonctionnalités qui ne sont pas disponibles du côté du client, ou parce que l'exécution de telles opérations côté client serait lente, peu fiable, ou présenterait des problèmes de sécurité.

Les programmes client et serveur peuvent être des programmes communément disponibles tels que des serveurs web et navigateurs web commerciaux ou gratuits, qui communiquent les uns avec les autres au moyen de protocoles standardisés. Ou bien des développeurs peuvent écrire leur propre protocole de communication entre client et serveur, qui ne peut qu'être utilisé pour les faire communiquer ensemble.

Côté serveur, les opérations sont à la fois celles qui sont menées en réponse aux requêtes des clients, et celles qui ne sont pas orientées vers les clients telles que des tâches de maintenance.

## Sécurité informatique

Dans le contexte de la sécurité informatique, les vulnérabilités ou les attaques dites côté serveur désignent celles qui se produisent sur un système informatique serveur plutôt que sur le côté client, ou bien celles qui se produisent entre les deux. Par exemple, un attaquant pourrait exploiter une vulnérabilité à injection SQL dans une application web à des fins malveillantes pour modifier ou d'obtenir un accès non autorisé à des informations dans la base de données du serveur. Aussi, un attaquant pourrait s'introduire dans un système serveur en exploitant les vulnérabilités sous-jacentes du système d'exploitation, afin d'être en mesure d'accéder à la base de données et aux autres fichiers de la même manière que les administrateurs autorisés de du serveur.

## Exemples

Dans le cas de projets d'informatique distribuée comme SETI@home et Great Internet Mersenne Prime Search, bien que la majeure partie des opérations se produisent du côté client, les serveurs sont chargés de coordonner les clients, en leur envoyant des données à analyser, en recevant et stockant les résultats, en fournissant des fonctionnalités de création de rapports pour les administrateurs de projet, etc. Dans le cas d'une application utilisateur dépendante d'Internet comme Google Earth, la requête et l'affichage des données de la carte se produit côté client, tandis que le serveur est responsable du stockage permanent des données de carte, de la résolution des requêtes de l'utilisateur en données de cartes à retourner au client, etc.

Dans le cadre du World Wide Web, les langages informatiques communément rencontrés côté serveur comprennent:

* C# ou Visual Basic dans les environnements ASP.NET
* Java
* Perl
* PHP
* Python
* Ruby

Cependant, les applications et services web peuvent être implémentés dans presque tous les langages informatiques, tant qu'ils sont en mesure de renvoyer des données (éventuellement par l'intermédiaire de programmes) aux navigateurs web respectueux des standards, dans des formats de données que ces derniers peuvent interpréter.

