Langage serveur

Un article de Wikipédia, l'encyclopédie libre.

Un langage serveur, ou plus précisément un langage de script côté serveur (de l'anglais : server-side scripting) est un langage de programmation qui interagit avec un serveur HTTP pour produire une page Web dynamique. L'utilisation d'un langage serveur est nécessaire pour utiliser une base de données, indispensable pour la majorité des scripts complexes. Il est le contraire d'un langage client (comme le JavaScript), qui est interprété sur l'ordinateur du visiteur.

L'avantage d'un langage serveur est qu'il permet d'adapter le site à l'utilisateur d'après ses besoins, ses autorisations ou d'autres informations provenant d'une base de données, tout cela sans nécessiter le support d'une technologie supplémentaire par le client.

Sommaire

[modifier] Fonctionnement

Lorsqu'une page Web statique est consultée par un visiteur, le serveur HTTP se contente de transmettre au client le code source de celle-ci, sans l'interpréter. C'est ensuite au navigateur du client d'interpréter le code reçu, constitué généralement d'XHTML ou d'HTML, de CSS, et parfois de JavaScript.

Dans le cas d'une page utilisant un langage serveur, le serveur HTTP fait interpréter la page avant de la transmettre au client. Par exemple, si une page en PHP comprend la ligne <?php echo date("d/m/Y"); ?>, le serveur HTTP fournit à l'interpréteur PHP la page, qui remplace alors cette ligne par la date du jour, puis la redonne au serveur HTTP qui la transmets au client. Ainsi, le code source de la page telle qu'il est visible par le visiteur n'a aucune trace de langage serveur.

Un langage serveur peut par ailleurs interagir avec une base de données, cela permettant de stocker des données en vue d'un affichage ou d'une modification ultérieure. Par exemple, la page que vous êtes entrain de lire est contenue dans la base de données des serveurs de Wikipédia.

[modifier] Exemple

On veut afficher la date sur une page web.

* Langage serveur (PHP) Langage client (JavaScript)
Page créée Nous sommes le <?php echo date('j/m/Y'); ?>

<script type="text/javascript">
today = new Date();
document.write("Nous sommes le ", today.getDate() ,"/", today.getMonth()+1 ,"/", today.getFullYear());
</script>

Code source de la page envoyée au navigateur Nous sommes le 17/06/2008

<script type="text/javascript">
today = new Date();
document.write("Nous sommes le ", today.getDate() ,"/", today.getMonth()+1 ,"/", today.getFullYear());
</script>

Résultat dans le navigateur Nous sommes le 17/06/2008 Nous sommes le 17/06/2008

Le code en langage serveur a été interprété avant le code en langage client. Par contre, pour l'utilisateur, les deux langages donnent exactement le même résultat, si toutefois le client supporte et a activé le JavaScript.

[modifier] Liste de langages serveurs

Appellation courante Signification Délimiteurs Particularités
PHP PHP Hypertext PreProcessor <?php et  ?> est sous licence PHP
ASP Active Server Pages <% et  %> créé par Microsoft
CGI Common Gateway Interface aucun à venir
JSP Java Server Pages

[modifier] Voir aussi