Technologies internet


Introduction


Voir:

Langages du Web côté serveur - Introduction

L'exécution de code par le client offre principalement deux avantages :

Les inconvénients sont liés à deux problèmes :

En pratique, l'exécution de code côté client est déclenchée par un document HTML à l'aide des balises <script> ou <object> (ancien <applet>).

Exécution côté serveur: CGI et autres outils

Une autre approche est d'augmenter les fonctionnalités du serveur. Au lieu de servir des documents stockés (des pages dites statiques), le serveur va exécuter des instructions pour répondre à chaque requête et générer la réponse (code HTML) appropriée; on parle alors de pages dynamiques.

Common Gateway Interface (CGI)

Le mécanisme le plus simple est nommé CGI (Common Gateway Interface). Pour chaque requête correspondant à un CGI, le serveur web va lancer un exécutable.

Les programmes CGI peuvent être écrits dans n'importe quel langage. La plupart du temps, on emploie des langages de haut niveau comme Perl ou Python, qui permettent le développement rapide de programmes fiables manipulant des textes; mais rien n'interdit d'utiliser le langage C.

Les étapes suivies par le programme sont :

  1. récupérer les données envoyées par le client
  2. traiter les données
  3. écrire le résultat (code HTML) sur la sortie standard (qui a été reliée au client par le serveur web)

La récupération des données du client est différente selon le type de requête (GET ou POST). Nous n'évoquerons ici que le cas d'une requête GET :

http://www.gtr.org/AjoutEtudiant?nom=Dupond&prenom=Bernard

Le CGI (AjoutEtudiant) va accéder aux arguments (nom=Dupond, prenom=Bernard) via la variable d'environnement QUERY_STRING. Dans l'exemple ci-dessus, on aurait QUERY_STRING = "nom=Dupond&prenom=Bernard".

Après traitement, le programme CGI doit générer la réponse en HTML, avec les en-têtes HTTP. On doit donc écrire (sur stdout) au minimum une première ligne

Content-type: text/html

suivie d'une ligne blanche, elle même suivie de la page HTML.

ASP, ASP.NET, PHP, Servlets, ...

Le mécanisme CGI est très simple, mais manque d'efficacité: un nouveau processus est créé pour chaque requête, ce qui est coûteux. D'autre part, ce mécanisme est assez rigide: il n'est pas très commode de composer une seule page HTML à partir du résultat de plusieurs scripts CGI; il est difficile de séparer la logique des traitements de la présentation des résultats.

Il existe de nombreuses autres solutions, basées sur des langages de scripts intégrés au serveur web. Les plus connues :