La programmation web côté serveur
Principe
Lors de l'insertion de programmation côté serveur dans une page, lorsque le visiteur demande la page, le serveur va d'abord lire celle-ci, il va interpréter le code serveur et encapsuler le résultat dans la page HTML. Cette dernière sera expédiée au visiteur sans plus aucune trace du code serveur. Le visiteur reçoit donc une pure page html (avec éventuellement encore du code client).
De ce processus, on gagne énormément en sécurisation du code. On a aussi un grand nombre de possibilité d'interactions avec d'autres systèmes ou applications comme les bases de données.
Les fichiers des pages "côté serveur" ont généralement une extension autre que .htm ou .html. L'extension dépendra de la technologie utilisée.
Les différentes technologies
- ASP (Active Server Pages): Technologie développée par Microsoft à partir de 1996 dans le but de créer des pages dynamiques. ASP permet d'ajouter du code dans la page HTML qui sera interprété par le serveur. La partie ADO (ActiveX Data Object) de ASP permet de se connecter à une base de données.
- Langages utilisés: VBScript (langage par défaut) ou JScript.
- Portabilité: La technologie est implémentée sur les serveurs web de Microsoft (IIS et PWS).
- Mise en place: Utilisation de langage de Script donc d'accès relativement aisé (mais se complexifie vite).
- Performance: Bonne performance surtout si l'on utilise du code compilé (dll).
- Utilisation: Tout site web dynamique peut être créé en ASP.
- Dernière version: ASP 3.0.
- ASP.Net: Technologie développée par Microsoft sur base du Framework.Net. L'évolution est importante par rapport à ASP et les possibilités deviennent quasi infinies. ASP.Net a le gros avantage, par rapport à d'autres technologies, de bien séparer le contenu de la page web, sa mise en forme et la programmation des aspects dynamiques (travail en Code Behind).
- Langages utilisés: C#, VB.Net, JavaScript.Net... et de nombreux autres langages partageant le Common Runtime Language du Framework.Net.
- Portabilité: La technologie est implémentée sur les serveurs web de Microsoft (IIS 2003).
- Mise en place: Utilisation de langage de programmation et nécessite donc de bonnes bases en programmation mais le langage importe peu (plusieurs langages possibles). Avec la version 2 (ASP.Net 2.0) et un outil de développement comme Visual Studio, le développement d'applications peut déjà aller très loin sans programmation: beaucoup de contrôles sont gérés par leurs propriétés.
- Performance: Excellentes performances car tout le code est compilé (soit pré-compilé, soit compilé à la volée).
- Utilisation: Tout type d'application web peut être créé avec ASP.Net.
PHP (PHP: Hypertext Preprocessor) est un langage de script interprété côté serveur. Le code PHP est inscrit directement dans la page HTML, sera lu par le serveur et interprété pour produire une page HTML à chaque fois que la page sera demandée. Ce langage a été créé dans le cadre des logiciels Open Source.
- Portabilité : Les modules serveurs de PHP sont implémentés sur les serveurs Apache et Unix mais PHP peut être implémenté sur d'autres plates-formes via des CGI. PHP travaille généralement avec une base de données MySQL.
- Mise en place : PHP est un langage de script, donc relativement facile à apprendre. La syntaxe est simplifiée, mais part d'une base de C. De nombreux développeurs ont profité de l'Open Source pour développer de nombreux modules prêts à l'usage et paramétrables à volonté.
- Performance : Très bonnes performances. La seule limite serait l'évolution rapide des modules et donc parfois le besoin de "rafraîchir" la programmation.
- Utilisation : Tout type d'application web peut être créé avec PHP.
Les technologies Java
- JSP (Java Server Pages): Technologie développée par Sun Microsystems dans le but de créer des pages dynamiques avec le langage Java. Les JSP permettent d'ajouter du code Java dans la page HTML qui sera interprété par le serveur. On peut distinguer trois ensembles d'instructions JSP :
- Les instructions de programmation permettent d’insérer des bouts de code Java directement dans la page web, et donnent accès à une grande partie de la librairie de programmation de la version standard de Java (composants JavaBeans, accès aux bases de données via JDBC etc.)
- Les directives qui permettent de spécifier certaines propriétés de la page, l’inclusion du contenu d’autres fichiers et l’utilisation d’autres classes et librairies de balises personnalisées.
- Les actions permettent essentiellement d’utiliser des composants JavaBeans existants.
- Portabilité: Très grande portabilité grâce à Java: serveurs Apache mais aussi IIS, etc.
- Mise en place: Utilisation de Java comme langage de programmation.
- Performance: Très variable en fonction de l'implémentation utilisée.
- Utilisation: Tout type de fonctionnalités.
- Servlets: Le nom vient d'une analogie possible à faire avec les applets. Il s'agit donc de programmes créés en Java et tournant sur le serveur web. L'exécution du programme génère les pages web renvoyées au client.
- Langages utilisés: Java.
- Portabilité: Très grande portabilité grâce à Java: serveurs Apache mais aussi IIS, etc.
- Mise en place: Utilisation de Java comme langage de programmation.
- Performance: Très variable en fonction de l'implémentation utilisée.
- Utilisation: Tout type de fonctionnalités.
ColdFusion
ColdFusion est une technologie de création de pages dynamiques développée par Macromedia. Les pages d’application sont des pages web contenant des instructions de programmation écrite à l’aide d’un langage propriétaire, le CFML (ColdFusion Markup Language). Le CFML est un langage simple basé sur des balises dont la syntaxe est similaire à celles du langage HTML mais interprétées par le serveur.
Ajax (Asynchronous JavaScript And XML)
Ajax est une technologie, avec ses avantages et inconvénients, qui combine plusieurs éléments:
- du XHTML pour la structure de la page,
- les CSS pour la mise en forme de la page,
- du JavaScript et le DOM pour la partie dynamique,
- XML, XSLT et XMLHttpRequest pour la manipulation des données (ou d'autres formats de fichiers de données).
À la base, cette technologie permet d'effectuer une requête HTTP asynchrone (en parallèle) au serveur web (effectuer une action, mettre à jour une information...). Le serveur renvoie la ressource demandée, celle-ci pouvant contenir des informations ou du code pour mettre à jour la page HTML.