Créer un site internet

Composants serveur

1. Serveurs Web et serveurs d'applicationMain en arriere fleche dessinee 318 51824

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érieur 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. Étant 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 (sigle récursif pour « PHP: Hypertext Preprocessor ») est un langage proche de Perl et des scripts Shell, ce qui 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.

2. Serveurs de données

Les données étant principalement gérées par des serveurs dédiés, les langages cités précédemment offrent des moyens d'interagir avec eux. Les systèmes de gestion de bases de données permettent d'interroger les données et de les mettre à jour. Le langage le plus répandu est SQL (Structured Query Language) pour les bases de données relationnelles. La base de données MySQL sera le moteur relationnel utilisé pour les exemples du présent document. Le Web 2.0 a apporté de nouveaux besoins auxquels le modèle relationnel ne peut pas répondre. Les modèles NoSQL (Not Only SQL) ont alors pu émerger.

Les informations sur les personnes et ressources ainsi que les informations nécessaires à l'authentification peuvent être stockées et gérées par des annuaires LDAP (Lightweight Directory Access Protocol). Il s'agit d'un service qui peut être interrogé par le protocole LDAP de la couche « Application ».

Les services Web sont des applications Web dont le but est de fournir des données selon une structure prédéfinie et des services à une autre application en utilisant les protocoles standards d'Internet.