next up previous contents index
Next: CGI, base Up: Scripts CGI Previous: HTTP ``statique''   Contents   Index


HTTP ``dynamique''

Cette forme d'interrogation est statique dans la mesure ou les sorties sont identiques pour une même requête.

Pour introduire un peu de dynamisme, les premiers concepteurs des serveurs WEB ont conçu un système qui permet de transmettre les requêtes à des programmes externes au serveur WEB, appelés CGI (Common Gateway Interface). Le protocole utilisé pour passer les arguments à ces programmes et récupérer leurs résultats est très simple et très facile à réaliser dans des environnements UNIX.

Avec ces programmes CGI, le WEB devient dynamique car les pages affichées sont générées à partir d'un état interne du serveur WEB, en général une base de donnée ou toute autre information stockée.

Le très gros avantage des CGI est donc la grande simplicité dans le protocole d'échange et le fait qu'il est complètement indépendant de tout langage de programmation : on peut écrire des CGI en Shell, en Perl, en Python, en Pascal, en C, en assembleur :) ou en ... Scheme.

Le problème inhérent au CGI est leur relative lenteur : en effet, le programme CGI est exécuté à chaque requête par le système d'exploitation. Dans le cas d'in langage interprété, l'interprète est chargé et initialisé à chaque requête.

La première alternative au CGI est le FastCGI qui repose sur le même principe que le CGI. Mais ,au lieu d'exécuter le programme pour chaque requête, celui-ci est construit sur une boucle infinie lisant les entrées et produisant les sorties. Là encore, le très gros avantage est de permettre une indépendance totale avec le langage de programmation tout en donnant de bonnes performances.

La deuxième alternative à CGI est l'utilisation de modules qui s'incorporent aux serveurs WEB et qui fonctionnent autour d'une boucle lisant les entrées et produisant les sorties. On connaît de tels modules pour le langage Perl, Python, PHP. OpenScheme dispose lui aussi d'un tel module, mais nous ne l'avons pas encore rendu public car nous préférons l'interface FastCGI, plus générale. Les serveurs WEB de Bill utilisent aussi ce système connu sous le nom d'ASP. Mais, bien entendu, ces serveurs sont beaucoup moins puissants que des serveurs Unix en général, et Linux en particulier :)

L'inconvénient des modules est qu'ils sont réalisés pour chaque langage et pour chaque type de serveur. Leur gros avantage est de permettre de bonnes performances et d'être généralement intégré dans Apache, sans avoir à les installer ultérieurement.


next up previous contents index
Next: CGI, base Up: Scripts CGI Previous: HTTP ``statique''   Contents   Index
© 1993 to 2001 Erian Concept