« Programmation Web » : différence entre les versions

Contenu supprimé Contenu ajouté
Tavernier (discussion | contributions)
localisation
Tavernier (discussion | contributions)
Orthographe s/\[\[(.*?)\|?(.*?)\]\]/$2/
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 HTTP|client]] ou côté [[serveur HTTP|serveur]].
 
==Les bases de la page web - Les [[langage de balisage|langages de balisage]] ==
 
===Le langage HTML ou XHTML ===
Toute [[page Web]] comprend une base de langage [[Hypertext Markup Language|HTML]] ou [[XHTML]]. Il s'agit d'un [[langage de balisage]] qui définit essentiellement la '''structure''' de la page web (titres, tableaux, paragraphes, etc.).
 
C'est un langage qui permet de créer des [[hyperlien]]shyperliens, à 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)|tag]]stags) 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 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===
 
Une page web créée en [[HTML]] est totalement statique et n'offre aucune possibilité d'interaction avec le visiteur. Chaque page doit être créée au préalable et doit être manuellement mise à jour.
 
Concernant l'aspect dynamique, seuls deux tags HTML (''<marquee>'' et ''<blink>'' mais qui ne sont pas compatibles avec tous les [[Navigateur web|navigateurs webs]]) et quelques fonctionnalités des CSS permettent, à ce stade, de créer un peu de dynamisme dans la page (ex. changement de couleur lors d'un survol).
 
A propos de l'interactivité, le langage HTML permettra uniquement de créer le ''layout'' d'un formulaire d'interaction avec le visiteur. Il permettra de définir les paramètres d'une action et de renvoyer les données du formulaire vers un 'système' qui gèrera celles-ci mais ne permet pas de définir l'action elle-même.
 
;Portabilité : Le langage HTML est multi-plateformes. Tous les navigateurs web reconnaissent le langage HTML (c'est le moins qu'ils puissent faire...) de base, seuls certains tags sont propres à certains navigateurs (comme le tag ''<marquee>'' qui n'est interprèté comme défilement de texte que dans [[Internet Explorer]]. Les CSS, même s'ils sont standardisés par le [[W3C]], ne sont pas reconnus de la même manière par les différents navigateurs web.
 
;Mise en place : Le langage HTML a cependant l'avantage d'être aisé à mettre en place et ne demande pas des compétences techniques très poussées. De plus, ces pages sont d'un traitement très léger et rapide par le serveur.
 
Il faut donc autre chose pour ajouter de l'[[animation]] ou de l'[[interactivité]] dans la page web.
 
===Le XML (''eXtended Markup Language'')===
 
Le [[langage de balisage]] [[XML]] peut également servir de base à une page web. Le fichier XML contiendra le contenu de la page web. Ce fichier sera lié à un fichier [[XSLT|XSL]] (Feuilles de style XML) qui mettra en forme les données du fichier XML.
 
La plupart du temps, la page web ne sera pas basée sur un fichier XML natif mais celui-ci sera généré dynamiquement par un des langages de programmation web ci-dessous.
Ligne 42 :
===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 .[[Joint Photographic Experts Group|jpeg]] et .[[Portable Network Graphics|png]]), les images sont sans doute un des objets les plus multi-plateforme du web : la majorité des navigateurs web savent afficher les images.
 
;Mise en place : Les images numériques deviennent un media très "grand public" et sont assez aisées à implémenter dans un site web.
Ligne 50 :
===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.
 
;Mise en place : Une fois le fichier son ou vidéo produit, le placement dans la page HTML n'est pas complexe.
Ligne 60 :
===Animation Flash===
 
[[Macromedia Flash|Flash]] (de [[Adobe Systems]] - [[Macromedia]]) est un programme qui permet de créer des animations dans un [[format fermé|format]] [[dessin vectoriel|vectoriel]] [[logiciel propriétaire|propriétaire]] relativement léger. Le programme génère un fichier avec l'extension .fla qui est le fichier de travail et qui sera 'compilé' en un fichier avec l'extension .swf. [[Swift]] est un autre programme générant des fichiers swf hors de la sphère [[Macromedia]].
 
Dans une page web, une animation Flash (fichier avec extension .swf) peut être intégrée comme partie de la page (une publicité, un menu,...) ou l'ensemble de la page peut être en flash mais il y aura toujours un squelette HTML.
 
Flash permet de créer des animations de qualité, permet une certaine interaction avec l'utilisateur grâce au langage de programmation [[ActionScript]] (dérivé de [[ECMAScript]] comme [[JavaScript]]). Les dernière versions de Flash permettent également l'interfaçage avec une base de données.
 
;Portabilité : L'utilisation de Flash dans une page web nécessite l'installation du [[plug-in]] "Flash player" qui n'est pas disponible pour tous les systèmes.
 
;Mise en place : La création d'une animation Flash est une technologie complète en soi. La complexité dépendra du résultat attendu mais un beau résultat peut déjà être obtenu sans trop de difficultés. Une fois le fichier .swf créé, l'intégration dans une page HTML ne pose pas trop de problèmes.
Ligne 72 :
;Performance : Une page en Flash est plus lourde qu'une page HTML qui ne contiendrait que du code HTML mais reste beaucoup plus légère que la plupart des fichiers multimedia.
 
;Utilisation' : Avec Flash, il est possible de créer n'importe quoi. Mais on privilègiera des interfaces dynamiques (déplacements d'images, petites animations). En tant que partie d'une page, Flash se retrouvera fréquemment dans la création de [[bannière publicitaire|bannières publicitaires]] et de petits jeux.
 
===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-in Java).
 
;Mise en place : La programmmation en Java est complexe et nécessite de bonnes connaissances en programmation. De nombreux outils de développement existent.
Ligne 84 :
;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 92 :
===ActiveX===
 
Les [[ActiveX]] sont une solution de création d'applications développée par [[Microsoft]]. Les principes de fonctionnement sont très semblables au fonctionnement des applets.
 
;Portabilité : Le code est dépendant de la plateforme le plus souvent (généralement système [[Windows]] et navigateur [[Internet Explorer]])
 
;Mise en place : La programmmation peut se faire avec plusieurs langages (C++, Visual Basic, Java) mais nécessite de bonnes connaissances en programmation. De nombreux outils de développement existent.
Ligne 108 :
===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-in|plug-ins]] 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 116 :
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]].
 
* '''[[VBScript]]''' est le langage de script développé par [[Microsoft]] sur base du [[Visual Basic]]. Ce langage n'est interprèté que par les navigateurs basés sur ceux développés par [[Microsoft]] (soit [[Internet Explorer]] et [[Maxthon]]). Il est donc peu utilisé sur l'Internet (mais utilisé parfois sur des intranets).
 
* '''[[DHTML]]''' n'est PAS un langage de script mais simplement la combinaison, dans une page web, de JavaScript, de HTML 4 ou de [[XHTML]] et de [[feuilles de style en cascade|CSS]].
 
===Avantages et inconvénients===
Ligne 153 :
====Les technologies Microsoft====
 
* '''[[Active server pages|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).
Ligne 161 :
**'''Dernière version''': ASP 3.0.
 
* '''[[ASP.Net]]''': Technologie développée par Microsoft sur base du [[Microsoft .NET|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 sharp|C#]], [[Visual Basic .NET|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.
Ligne 170 :
====PHP====
 
PHP (''PHP: Hypertext Preprocessor'') est un langage de Script interprèté côté serveur. Le code PHP est inscrit directement dans la page HTML et sera lu par le serveur, "processé" et le résultat sera encapsulé dans la page HTML. Ce langage a été créé dans le cadre des logiciels [[Open Source]] (libre de droit quant à leurs sources et leur documentation).
 
*'''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 plateformes 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 (langage)|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.
Ligne 179 :
====Les technologies Java====
 
* '''[[JavaServer Pages|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é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è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.
Ligne 197 :
====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'')====
 
[[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).
 
À 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.
 
[[Catégorie:Programmation]]