PRATIQUE OUTILS 
Expliquez-moi... L'intérêt de FastCGI face à CGI
 
Apparu au milieu des années 90 mais resté dans l'obscurité, le protocole FastCGI revient en force pour soulager les serveurs Web écrasés sous le poids des requêtes HTTP. (26/01/2007)
  Forum

Réagissez dans les forums de JDN Développeurs

Introduit en décembre 1993, le protocole standard CGI (pour Common Gateway Interface, ou Interface passerelle commune) a joué un rôle fondamental dans le passage du Web du stade statique à celui du contenu dynamique. Nombre de sites ont depuis lors pu laisser leurs visiteurs interagir librement avec leur contenu, ne serait-ce que pour des livres d'or, jusqu'à des applications plus complexes. Pour cela, les développeurs utilisaient le plus souvent Perl, mais également des programmes C, Python ou shell, utilisant ce protocole.

Le problème majeur du protocole CGI était qu'une application répondant à ce modèle était lancée dans un nouveau processus pour chaque requête, processus détruit une fois la requête terminée. Ce qui était acceptable aux débuts du Web l'est devenu de moins en moins à mesure que les demandes des utilisateurs augmentaient : sous la charge, le serveur pouvait passer un temps significatif à lancer et tuer les processus, limitant nettement ses capacités à accepter d'autres requêtes.

Pour pallier à ce problème, de nouvelles solutions plus efficaces ont été mises en place, comme les implémentations d'interpréteur en tant que module serveur (mod_perl, mod_php, ASP...). Pour les langages de scripts, qui ne disposent pas d'interpréteur, la société Open Market a développé FastCGI, une amélioration de CGI, qui tente de corriger le problème sus-cité en ne lançant qu'un seul processus, capable de gérer un grand nombre de requêtes.

Le succès des modules Apache fut tel que FastCGI, créé au milieu des années 90, n'a vu sa popularité augmenter que depuis quelques années. Les administrateurs réseau ont en effet commencé à voir l'intérêt de séparer les applications Web du serveur Web lui-même, face aux interpréteurs Perl ou PHP embarqué sur le serveur. Avec FastCGI, les processus du serveur et des applications sont séparés, et chacun peut être relancé sans conséquence grave pour l'autre.

La plupart des serveurs modernes, à commencer par Apache et IIS, implémentent aujourd'hui FastCGI, et les langages Web en profitent. Par exemple, il est possible avec ce nouveau protocole de faire tourner plusieurs versions de PHP sur un même serveur, voire même de faire en sorte que chaque utilisateur utilise sa propre version de PHP. Perl, Python, Ruby et d'autres langages en profitent également...

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page