« Programmation Web » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 1 :
{{programmation}}
 
La '''Programmation web''' peut prendre différentes formes : de la simple page Web|page statique à la page dynamique avec connexion à une base de données. Nous allons tracer ici un bref aperçu de différentes technologies possibles dans la programmation côté client ou côté serveur HTTP|serveur.
 
Voir la sous-page [[/Programmer en deux minutes]] pour une pratique immédiate.
 
== Les bases de la page web - Les langage de balisage|langages de balisage ==
 
=== Le langage HTML ou XHTML ===
Ligne 12 :
C'est un langage qui permet de créer des hyperliens, à savoir des liens d'un document à un autre ou d'un endroit d'un document à un autre endroit du même document.
 
Au départ ce langage ne définissait que la structure de la page mais très vite se sont rajoutées des balises (ou Balise (informatique)|tags) qui s'occupaient de mettre en forme le document (mise en gras, en italique, choix d'un police de caractère, ...).
 
Depuis sa version 4, le langage HTML s'accompagne des feuilles de style en cascade|CSS (''Cascading Style Sheets'' - ''Feuilles de style en cascade'') qui sont des styles qui se chargent de la '''mise en forme''' de la page.
 
Le XHTML est une évolution du HTML basée sur Extensible Markup Language|XML.
 
=== Les limites du HTML ===
Ligne 44 :
=== Images ===
 
Un premier type d'objet sont les Image numérique|images qu'on intègre dans la page web. Les images sont généralement statiques sauf les Graphics Interchange Format|gifs animés.
 
;Portabilité : Pour autant qu'on se limite aux Image numérique#Formats d'images|formats de fichiers standards pour le web (.gif, .jpg ou .jpeg et .png), les images sont sans doute un des objets les plus multiplateforme du web : la majorité des navigateurs web savent afficher les images.
 
;Mise en place : Les images numériques deviennent un média très "grand public" et sont assez aisées à implémenter dans un site web.
Ligne 52 :
=== Multimédia ===
 
L'intégration de documents multimédia (son (physique)|son ou vidéo) va également permettre de 'dynamiser' un site mais ce genre de fichier est souvent très lourd au téléchargement.
 
;Portabilité : Les fichiers multimédia de type son et vidéo ne sont pas lus en standard par les navigateurs web et donc, ils exigeront l'installation d'un "plugin" pour être lus.
Ligne 79 :
=== Applet Java (appliquette) ===
 
Il est également possible de créer des petits programmes avec interface dans un langage de programmation comme Java (langage)|Java. Ces petits programme sont appelés ''Applet|Applets'' ou ''appliquettes''. Ils sont complètement autonomes mais éventuellement paramétrables et s'intègrent dans une page web. Ils sont téléchargés avec la page web et exécutés par l'ordinateur client.
 
;Portabilité : Le code est indépendant de la plateforme grâce à la machine virtuelle Java (un petit plug-inplugin Java).
 
;Mise en place : La programmation en Java est complexe et nécessite de bonnes connaissances en programmation. De nombreux outils de développement existent.
Ligne 87 :
;Performance : Les performances sont limitées par le téléchargement et l'implantation de la machine virtuelle.
 
;Utilisation : Sur le web, on trouvera un grand nombre d'application aux applets : des jeux, des 'Tchat|tchats', des menus, ... Les applets gèrent bien le multi-utilisateur. Les fonctionnalités des applets sont strictement limitées au niveau sécurité (par exemple, un applet ne pourra jamais lancer une application sur la machine du client).
 
Attention, tous les niveaux de sécurité de tous les navigateurs n'acceptent pas le lancement d'applets.
Ligne 111 :
=== Principe ===
 
Quand le visiteur demande une simple page HTML (avec ou sans objets) en tapant une adresse ou URL), le serveur web lui renvoie simplement le contenu de la page demandée, c'est le navigateur web qui interprète le contenu HTML et les plug-insplugins qui interprètent les objets, en demandant à leur tour le contenu des objets au serveur web.
 
Si du code, côté client, est inséré dans la page, le serveur web renverra également la page au client, y compris le code. C'est donc, à nouveau le navigateur web qui doit interpréter le code et faire ce que le code demande.
Ligne 119 :
La programmation côté client sera utilisée essentiellement dans le cas de validation de formulaires (champs obligatoires, petits calculs,...) et dans la création de petites animations (menus déroulants, ...).
 
=== Langage de script|Langages de Script ===
 
La programmation côté client utilise des langages de scripts. À la différence d'autres langages de programmation, ces langages ne sont pas compilés. Ils sont interprétés par le navigateur web du visiteur, et leur syntaxe est moins stricte que celle des langages de développeurs (variables non-typées a priori, le point-virgule à la fin des instructions est optionnel, ...).
 
* '''JavaScript''' est le plus utilisé des langages de programmation web côté client. Il est reconnu par tous les navigateurs (dans les versions actuelles). Il se base sur le langage normalisé ECMAScript et possède une syntaxe issue du langage Java (langage)|Java.
 
* '''JScript''', fort proche du JavaScript est simplement une adaptation de celui-ci par Microsoft.
Ligne 133 :
=== Avantages et inconvénients ===
 
* '''Avantages''' :
La programmation côté client est légère et relativement simple à implémenter (syntaxe pas trop complexe).
 
* '''Inconvénients''' :
Le code est envoyé tel quel au client, et donc visible par celui-ci (s'il regarde les sources de sa page) et donc peu sécurisé.
Le bon déroulement du programme dépend entièrement du navigateur du client, de sa configuration et de son niveau de sécurité.
Ligne 146 :
=== 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 htmlHTML (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.
Ligne 156 :
==== Les technologies Microsoft ====
 
* '''Active server pages|ASP''' (''Active Server Pages'') : Technologietechnologie 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é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é''' : Lala technologie est implémentée sur les serveurs web de Microsoft (IIS et PWS).
**'''Mise en place''' : Utilisationutilisation de langage de Script donc d'accès relativement aisé (mais se complexifie vite).
**'''Performance''' : Bonnebonne performance surtout si l'on utilise du code compilé (dll).
**'''Utilisation''' : Touttout site web dynamique peut être créé en ASP.
**'''Dernière version''' : ASP 3.0.
 
* '''ASP.Net''' : Technologietechnologie 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é''' : Lala technologie est implémentée sur les serveurs web de Microsoft (IIS 2003).
**'''Mise en place''' : Utilisationutilisation 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''' : Excellentesexcellentes performances car tout le code est compilé (soit pré-compilé, soit compilé à la volée).
**'''Utilisation''' : Touttout type d'application web peut être créé avec ASP.Net.
 
==== PHP ====
Ligne 182 :
==== Les technologies Java ====
 
* '''JavaServer Pages|JSP''' (''Java Server Pages'') : Technologietechnologie 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ée 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 JBDC 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èstrès grande portabilité grâce à Java : serveurs Apache mais aussi IIS, etc.
**'''Mise en place''' : Utilisationutilisation de Java comme langage de programmation.
**'''Performance''' : Trèstrès variable en fonction de l'implémentation utilisée.
**'''Utilisation''' : Touttout type de fonctionnalités.
 
* '''Servlets''' : Lele 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èstrès grande portabilité grâce à Java : serveurs Apache mais aussi IIS, etc.
**'''Mise en place''' : Utilisationutilisation de Java comme langage de programmation.
**'''Performance''' : Trèstrès variable en fonction de l'implémentation utilisée.
**'''Utilisation''' : Touttout type de fonctionnalités.
 
==== ColdFusion ====
Ligne 204 :
==== Ajax (''Asynchronous JavaScript And XML'') ====
 
Asynchronous JavaScript and XML|Ajax est une technologie qui combine plusieurs éléments :
* du XHTML pour la structure de la page,
* les feuilles de style en cascade|CSS pour la mise en forme de la page,
* du JavaScript et le Document Object Model|DOM pour la partie dynamique,
* XML, XSLT et XMLHttpRequest pour la manipulation des données (ou d'autres formats de fichiers de données).