3.3 Composants serveur
3.3.1 Serveurs Web et serveurs d'application
Comme évoqué précédemment, le
navigateur et le serveur communiquent en utilisant le protocole http. Les
serveurs ne sont pas obligés d'implémenter toutes les
méthodes http, seulement GET et HEAD. Bien qu'optionnelle, peu de
serveurs actuels n'implémentent pas la méthode POST.
Sur Internet le navigateur et le serveur http communiquent
rarement directement. Le plus souvent un serveur intermédiaire est
présent : le serveur proxy. Les requêtes à destination
du serveur sont interceptées par le serveur proxy qui peut leur faire
subir un traitement, avant de les retransmettre au serveur. Ce principe est
également appliqué aux réponses. Le serveur proxy peut
servir de cache pour moins solliciter le serveur http. Il est possible de faire
agir plusieurs serveurs proxy en cascade.
La seule fonction du serveur Web étant d'envoyer le
contenu des fichiers au client, des extensions peuvent y être
ajoutées, permettant de faire appel à des services pour
générer dynamiquement les informations à transmettre. Ils
traitent les requêtes http que le serveur http leur a fait suivre,
interprètent et exécutent le code de l'application, puis
génèrent une réponse qu'ils renvoient au serveur http qui
l'enverra au navigateur de l'utilisateur. Si ces services fonctionnent
indépendamment du serveur http, ils sont appelés serveurs
d'applications.
L'extension CGI (Common Gateway Interface) permet
l'exécution d'un programme extérieure appelé
« gateway » dont la sortie standard d'affichage sera
renvoyée au client par le serveur http. Le langage utilisé pour
le développement du programme n'a pas d'importance. Cela peut être
du C++, du Perl ou même Java. Il faut seulement que le programme puisse
être exécuté sur la machine hébergeant le serveur
http.
De même que CGI, l'extension Java Servlet
développée par Sun permet d'intercepter les requêtes, de
générer les réponses pour exécuter des applications
Java. La différence est que la machine virtuelle Java peut être
lancée sur un serveur différent du serveur http. Cette extension
permet de conserver des informations entre les requêtes.
JSP (Java Server Pages) est un langage qui permet
d'insérer des blocs de script basés sur Java dans un contenu
HTML. Les pages JSP sont interprétées et transformées en
Servlet par un serveur d'application pour être
exécutées.
ASP (Active Server Pages) est le concurrent de JSP
développé par Microsoft. Etant basé sur le langage
VBScript, ASP est devenu très populaire dans le milieu des
développeurs Visual-Basic dont il est très proche. Tout comme
JSP, ASP permet d'insérer des blocs de script dans du contenu HTML. Pour
combler les lacunes d'ASP, Microsoft a développé la plate-forme
« .NET » qui permet d'utiliser les autres langages de
développement du monde Microsoft tel que C# pour la
génération dynamique de contenu HTML. L'exécution de code
ASP ou .Net est limitée aux serveurs Windows.
PHP (acronyme récursif pour « PHP: Hypertext
Preprocessor ») est un langage proche de Perl et des scripts Shell,
ce qui en a fait son succès auprès de la communauté du
monde Unix. C'est ce langage qui sera utilisé pour les exemples du
présent document.
|