Pour comprendre ce qu’est un langage serveur, il faut commencer par appréhender la base du web : le système client-serveur.

On appelle « client » n’importe quel ordinateur qui visite un site Internet, ou plus largement, qui fait une requête sur Internet. En effet, beaucoup de programmes viennent automatiquement chercher leurs mises à jour sur le Net. Ils sont alors clients.

À l’inverse, on appelle serveur tout ordinateur qui distribue de l’information à la demande sur le Net.

Pour les sites Internet, on a donc le système suivant : le client, à l’aide de son navigateur – Firefox, Internet Explorer, Safari, Opera… – lance une requête pour visiter un site. Le serveur concerné reçoit cette requête, et renvoie les informations désirées, la plupart du temps sous forme de code HTML, de Javascript, d’images… et la page web s’affiche alors sur le navigateur du client.

Mais que se passe-t-il au niveau du serveur ?

Langage serveur

Si le site utilise un langage serveur comme le PHP ou l’ASP, voilà en gros ce qui se passe : le serveur reçoit la requête, qui est en fait un appel à un script. Ce script peut être un appel à la page index.php, par exemple. En fait, index.php n’est pas exactement une page web comme on pourrait l’entendre au sens du HTML. C’est un script, un code, qui va être exécuté sur le serveur.

Ce script va donc lancer toute une série de fonctions, qui peuvent être des calculs, des recherches dans une base de données, des insertions d’autres scripts… et une fois le script exécuté, le résultat est renvoyé au client. La plupart du temps, ce qui est renvoyé au client, c’est du code HTML, Javascript, etc.

Autant, quand on fait appel à une simple page HTML, on peut voir très exactement le code de la page tel qu’il existe sur le serveur, autant dans le cas des scripts tels qu’on vient de les décrire, le client n’a jamais accès au code du serveur. Il ne voit que le résultat fourni par ce code.

Quel en est l’intérêt ?

Le contenu renvoyé est dynamique, et non plus statique comme c’est le cas avec une simple page HTML. Dynamique, cela signifie que le code renvoyé au client varie en fonction de la requête du client. Prenons un exemple : une recherche dans une base de données. Mettons que nous avons un site qui est un catalogue de livres, et qu’un internaute recherche un titre. L’internaute, le client, remplit le champ de formulaire du moteur de recherche, et valide. Il envoie donc sa requête au serveur, en direction d’un script de recherche.

Sur le serveur

Sur le serveur, le script reçoit la recherche. Il lance alors une fonction qui va chercher dans la base de données la liste des livres dont le titre contient le mot envoyé, et rapatrie aussi les informations annexes, comme le nom de l’auteur, l’éditeur, etc.

Le script va alors trier les informations. Il peut trier chronologiquement ou alphabétiquement, selon les indications données, programmées par le développeurs. Ensuite, il lui faut, à partir de toutes ces données, composer une page HTML. Il va donc créer le code nécessaire à la fabrication de la page, avec l’en-tête, le corps de la page et son tableau de données, la barre de navigation, le pied de page… Dans le corps, on trouvera une liste de livres, classée, avec quelques informations sur chacun, et certainement un lien – une autre requête – permettant d’accéder à une description plus détaillée du livre.

Chez le client

Puis le serveur renvoie ce code HTML au client qui en a fait la demande. Celui-ci peut alors consulter la page avec son navigateur, et continuer à surfer. Tout cela n’a duré que quelques microsecondes.

L’intérêt est énorme. Dans le cas de cette librairie, il est très facile de gérer la liste des livre, d’en rajouter, d’en enlever, d’éditer les informations de chacun… Il est également très facile de garder en mémoire les différents achats que les clients ont pu faire, et pourquoi pas, de leur proposer, lors de leur prochaine visite, des titres semblables à ceux qu’ils sont déjà acheté.

L’intérêt des langages serveur prend toute sa valeur quand le site est connecté à une base de données.

ASP ou PHP ?

ASP et PHP sont les deux langages les plus utilisés (au moment de l’écriture de cet article), même s’il en existe bien d’autres. Ils sont relativement équivalent au niveau de leurs possibilités. Les deux savent traiter avec les bases de données, les deux savent envoyer des données au format HTML… Le choix de départ dépend plus d’un choix d’infrastructure.

ASP

ASP est le langage serveur développé par Microsoft. Il ne tourne exclusivement que sur des serveurs IIS de Microsoft, sous Windows. C’est donc très avantageux si vous disposez d’un tel serveur. Vous disposez alors du support commercial apportée par Microsoft. Commercial ? Eh bien oui, une licence Windows serveur, ça s’achète…

PHP

PHP, à l’inverse, est totalement gratuit. Il est open-source, libre. N’importe qui a donc le droit de l’installer sur son serveur, et donc de programmer en PHP sans avoir à débourser des sommes folles. PHP a été prévu pour tourner sur des serveurs Linux – un système d’exploitation gratuit lui aussi – et peut facilement s’interfacer avec de nombreux types de bases de données, dont les bases MySQL qui sont elles aussi gratuites.

Forcément, PHP a eu beaucoup de succès, et c’est mérité. Une communauté de développeurs s’est formée, et on trouve très facilement toute sorte d’aide sur plusieurs centaines de sites Internet.

À noter que PHP peut aussi être installé sur un système Windows. C’est un petit peu moins performant que sous Linux, mais pour tester des sites, c’est parfait.

Donc, le choix du langage serveur dépend, et c’est logique, du serveur que vous allez utiliser. Notons que s’il est en général relativement aisé de changer de serveur pour une base de données – dans une certaines mesure -, pour les scripts, c’est tout autre chose. Passer son site d’ASP vers PHP ou l’inverse nécessitera certainement de réécrire entièrement tous les scripts. Le choix ne doit donc pas être fait à la légère.

Que choisir pour mon site ?

À moins que vous ne disposiez dans votre entreprise d’un serveur Microsoft, le choix est relativement évident. Du moins il l’est pour un site Internet. Autant utiliser un CMS comme SPIP ou Isens, ou système de gestion de catalogue, comme Thélia, ou encore un Forum, comme SMF. Ces solutions sont gratuites, et peuvent être hébergées sur des serveurs LAMP (Linux + Apache + MySQL + PHP, un combo gratuit), ce qui diminuera très nettement le coût de l’hébergement sans que cela s’en ressente au niveau des performances.

Pour un Intranet, la réflexion n’est pas forcément la même. Si on ne dispose d’aucun serveur, autant s’orienter vers le PHP. Par contre, si on dispose d’un serveur Windows au sein de l’entreprise, il peut être intéressant de développer alors en ASP et d’héberger tout cela sur le serveur de l’entreprise. Mais là encore, tout dépend de ce que l’on veut faire comme type d’Intranet, tant au niveau des possibilités que des droits d’accès.

Quels que soient vos besoins, je vous invite à me contacter pour que nous puissions trouver ensemble la solution la plus adaptée.