Rendre le web Dynamique

par Éric Marsden

Le web a commencé ces jours avec des pages statiques. Pour beaucoup de besoins, c'est suffisant. De plus en plus, les sites web génèrent du code dynamiquement, en fonction de l'utilisateur. Prenons un exemple très simple et concret, qu'on utilise sur ce site. Pour la mise en page du site de l'association, on utilise les CSS (Cascading Style Sheets). Ceci permet de séparer le contenu et le format (le fait que les titres de niveau deux soient en vert, part exemple). Or, les CSS ne sont implémentés qu'à partir de la version 4 des navigateurs Netscape. Si vous utilisez Navigator, vous aurez une mise en page très limitée. On a pensé à vous, et pour vous éviter le fond gris par défaut, on a des pages dynamiques qui détectent quel brouteur vous utilisez, et adaptent le look en conséquence.

Voilà une utilisation très simple du web dynamique, que nous implémentons par les SSI (Server-Side Includes). Les utilisations plus sophistiquées génèrent des pages à partir de données pêchées dans des SGBD, ou vous affichent des informations en fonction des pages que vous avez déjà visitées.

Différentes technologies

Il existe de nombreuses manières d'écrire des pages web dynamiques. La première est d'utiliser les CGI. Une autre est d'utiliser du Javascript, un langage qui s'intègre dans le code HTML. Les SSI fournissent des capacités limités dans ce domaine. Chez Microsoft on aime bien les ASP (Active Server Pages), qui donnent l'énorme joie de pouvoir mettre du Visual Basic dans des pages web. Le serveur AOLServer permet d'écrire des pages avec le langage Tcl. Dans le monde du logiciel libre, il existe trois méthodes largement utilisées: PHP, Meta-HTML et ePerl.

PHP

PHP permet d'écrire des pages web avec des bouts de code dans un mini langage avec une syntaxe proche du C. Le système permet un accès facile aux variables d'environnement CGI (REMOTE_USER etc), et offre des fonctionnalités d'accès à différentes bases de données. Par exemple, vous pouvez intégrer dans une page HTML :

     <? echo date( "Y-m-d H:i:s" ) ?>

Le texte entre les balises <? et ?> sera interprété par PHP; dans ce cas c'est l'heure courante qui sera intégrée pa la page. D'autres fonctions prédéfinies permettent de faire des accès à des bases de données, de regarder les valeurs de variables d'environnement, etc. Dans l'esprit ça ressemble à une super-version extensible et programmable des SSI (Server-Side Includes). PHP est distribué sous GPL et bénéficie d'une communauté d'utilisateurs actifs. Il existe en version CGI et en version module à intégrer à Apache. On peut lui reprocher le fait qu'il invente un nouveau langage avec sa propre syntaxe, au lieu d'utiliser l'un des très nombreux langages de script existants et connus des développeurs.

Meta-HTML

Meta-HTML est un système très puissant développé par Brian Fox de MIT. Il va nettement plus loin que PHP, en permettant de créer de nouvelles balises pour son code HTML. Il permet également de gérer la persistance des connections, les accès aux bases de données.

ePerl

ePerl ressemble conceptuellement à PHP, à ceci près qu'il remplace son langage minable par le Perl. On bénéficie donc d'une syntaxe et sémantique bien connue, et surtout des très nombreux modules d'extension qui ont été écrits pour Perl. En le couplant avec le module mod_perl de Apache, on a une technologie très performante.