Application web
Eninformatique,uneapplication web(aussi appeléeweb application,de l'anglais et français) est uneapplicationmanipulable directementen lignegrâce à unnavigateur webet qui ne nécessite donc pas d'installationsur les machinesclientes,contrairement auxapplications mobiles[1].De la même manière que lessites web,une application web est généralement installée sur unserveuret se manipule en actionnant deswidgetsà l'aide d'un navigateur web, via unréseau informatique(Internet,intranet,réseau local,etc.). Exemples:
- Desmessageries web,lessystèmes de gestion de contenu,leswikiset lesblogssont des applications web.
- Lesmoteurs de recherche,les logiciels decommerce électronique,lesjeux en ligne,les logiciels deforum,lesagrégateurspeuvent être sous forme d'application web.
- Des appareils réseau tels que lesrouteurssont parfois équipés d'une application web dans leurmicrologiciel[2].
Les applications web font partie de l'évolution des usages et de la technologie du Web appeléeWeb 2.0.
Terminologie et étymologie
[modifier|modifier le code]Application web est un raccourci delogicielapplicatif dans la technologie duWorld Wide Web.Il ne faut pas confondre les applications web et lesapplications mobiledisponible sur lesmagasins d'applications(store).
Un logiciel applicatif est un logiciel quimet en application(automatise) les principes propres à une activité.
LeWorld Wide Web(traduction littérale, toile d'araignée mondiale) est une technologie de partage de documentshypertextes.
- «application logicielle»
- « tout produit ou service numérique fonctionnant sur un système d’exploitation[3]»
- «boutique d’applications logicielles»
- « un type de services d’intermédiation en ligne qui se concentre sur les applications logicielles en tant que produit ou service intermédié[3].»
La technique de base
[modifier|modifier le code]Dans la technologieclient-serveur,utilisée pour le World Wide Web, le navigateur Web envoie au serveur desrequêtesrelatives à despages Web.Le serveur répond aux demandes en envoyant les pages au navigateur Web. Le navigateur affiche alors les pages à l'utilisateur.
Lesapplications Webutilisent cette technique pour mettre en œuvre leurinterface graphique.Celle-ci est composée de pages créées de toutes pièces par le logiciel lors de chaque requête. Chaquehyperliencontenu dans la page provoque l'envoi d'une nouvelle requête, qui donnera en résultat une nouvelle page. À la différence d'unsite webstatiqueoù les pages sont desfichierspréalablement enregistrés.
Les pages Web contiennent diverswidgetstels desboutons poussoirs,desicôneset deszones de texte,permettant la manipulation de l'application. Chaque manipulation d'unbouton poussoirprovoque l'envoi d'une nouvelle requête. Les pages Web peuvent contenir desapplets.
Contrairement à d'autres logiciels, une application Web mise en place sur unserveurest immédiatement utilisable par le consommateur sans procédure d'achat et d'installationsur son propre ordinateur, du moment que l'ordinateur du consommateur est équipé d'un navigateur Web et d'uneconnexion réseau.Ceci évite des interventions desadministrateurs système,interventions qui sont souvent plus coûteuses que le logiciel lui-même[4].
L'application Web est souvent mise à disposition du consommateur par l'éditeur du logiciel sur ses propres serveurs[4]- technique appeléeSoftware as a Service.
L'usage du navigateur Web comme partieclient- un logiciel qui est disponible sur de nombreuxsystèmes d'exploitation- assure laportabilitéd'une application Web.
Histoire
[modifier|modifier le code]Le World Wide Web est un système de documentationhypertextecréé en1993pour les besoins duCentre européen pour la recherche nucléaire(CERN). Le premier navigateur Web (NCSA Mosaic) a été créé la même année par leNational Center for Supercomputing Applications(NCSA).
Le World Wide Web a permis aux utilisateurs de se partager des documents et des images plus rapidement quevialecourrier électroniqueet plus facilement quevialepartage de fichiers.
Le nombre grandissant de documents publiés a rendu rapidement lesmoteurs de recherchenécessaires pour les retrouver: l'utilisateur entre unmot clé,leserveur Webeffectue la recherche, puis envoie le résultat sous forme d'un document.
Lesmoteurs de rechercheont été mis en œuvre par extension du serveur Web.
En 1995, le NCSA publie lanorme industrielleCGI,qui spécifie quelles sont les modalités d'extension d'un serveur Web, dans le but de le brancher avec un logiciel applicatif - par exemple un moteur de recherche[5],[6].
La technologie des applications Web a évolué très rapidement entre 1994 et 2000, où plusieurs logiciels de serveurs Web réservés à cet usage sont sortis sur le marché un après l'autre, ainsi que des améliorations des navigateurs Web.
Les premières applications Web souffraient d'une maniabilité et d'une ergonomie inférieure aux applications client. Est appeléeRich Internet Applicationune application Web qui offre une maniabilité et une ergonomie équivalente à une application client. Le termeRich Internet Applicationest apparu la première fois dans une publication deMacromediaen 2002[7].
Utilisations
[modifier|modifier le code]La technologie des applications web permet de nombreux usages. Les usages populaires sont lesmoteurs de recherche,lewebmail,lecommerce électroniqueet lesjeux en ligne.
Unmoteur de rechercheest une application web qui recherche des documents.
Unwebmailest une application web pour recevoir et envoyer ducourrier électronique.
Unsystème de gestion de contenuest une application web qui présente des documents. La présentation des documents est similaire à celle d'unsite web,cependant les documents sont générés par le logiciel lors de chaque demande. Le système de gestion de contenu effectue les traitements nécessaires à la mise en forme et la présentation des documents.
- Unweblogest un système de gestion de contenu où des éléments de contenu sont présentés dans l'ordre chronologique de leur date de création.
- Unwiki(de l'hawaïenwikiwikiqui signifievite) est un système de gestion de contenu qui vise à simplifier la créationcollaborativedes documents. Il autorise plusieurs personnes à effectuer des modifications simultanées, et est équipé d'espaces de discussion[8].
- Unsite web marchandest un système de gestion de contenu, ou le contenu sont des annonces concernant des produits. Il est utilisé pour lavente par correspondance.Les visites et les opérations d'achat sont enregistrées à des fins demarketing.Les sites web marchands sont utilisés aussi bien pour la vente des produits d'une société que pour des ventes entre particuliers ou desventes aux enchères.
Unjeu par navigateurest unjeu vidéoréalisé sous la forme d'une application web.
Un logiciel deforumpermet des discussions ouvertes entre des utilisateurs: un utilisateur écrit un message, et ce message peut être lu par tous les autres utilisateurs. Les logiciels de forums sont parfois réalisés sous forme d'application web.
Lamessagerie instantanée(anglaischat) permet l'échange instantané de messages texte entre différents utilisateurs. Les logiciels de messagerie instantanée sont parfois réalisés sous forme d'application web. Les messages peuvent être transmis à un autre utilisateur du logiciel, ou untéléphone portablevialeshort message service(abrégéSMS).
Google Mapsest une application web qui permet de consulter des cartes géographiques du monde entier.
Facebookest une application web qui permet à chaque utilisateur de se constituer unréseau social(amis, associés, personnes qui partagent les mêmes centres d'intérêt).
Technologie
[modifier|modifier le code]Dans la technologie la plus courante, l'application web s'oriente autour d'unserveur websur lequel est branché le logiciel applicatif, le tout parfois accompagné d'un serveur debase de données.L'ensemble est appeléserveur d'applications.
Lecode sourcedu logiciel applicatif est placé directement dans des pages web. Ces pages sont stockées par leserveur.Lorsque leclientdemande une page, le serveur web va rechercher la page, puis exécute les instructions qu'elle contient. Ces instructions peuvent faire appel au serveur de base de données. Le serveur web transmet la page avec le résultat de l'exécution auclient.
La transmission des informations entre le client et le serveur se fait selon leprotocole HTTP,protocole également utilisé pour les sites web. Ce qui permet d'utiliser le même logicielclient- unnavigateur web.
Les applications web font souvent usage du mécanisme descookies:en réponse à une requête, le serveur envoie une information de repérage au client (lecookie). Puis le client va lui renvoyer cette information lors de la prochaine requête. Le mécanisme est utilisé pour identifier le client et suivre les manipulations.
Les pages web peuvent en outre contenir desapplets.Ce sont des morceaux de code source qui seront exécutés par le navigateur web après transmission de la page - contrairement à la majorité du code source qui est exécuté par le serveur webavantla transmission.ActiveX,Java,Adobe FlashetSilverlightsont des technologies utilisées pour les applets.
Le logiciel client - lenavigateur web- est identique à celui utilisé pour consulter unsite web.Les logiciels nécessaires pour exécuter les applets sont inclus dans les navigateurs - parfois sous forme de complément -plugin.
Logiciel serveur
[modifier|modifier le code]Le logiciel serveur reçoit les demandes provenant du navigateur web, et effectue les traitements, puis envoie le résultat du traitement auclient.
En 1991, leNational Center for Supercomputing Applicationspublie lanorme industrielleCGI,qui spécifie par quel biais un logiciel de serveur web peut être branché à un logiciel applicatif. Cette norme est initialement destinée à permettre la réalisation demoteurs de recherche.
PHP,développé parRasmus Lerdorf,est uninterprètequi peut être branché à un serveur web. L'interprète permet d'exécuter des logiciels écrits enlangagePHP et incorporés dans des pages web. Le résultat de l'exécution est envoyé au serveur web, qui le transmettra au client[9].
WebObjects,développé parApple,est un logiciel de serveur web qui exécute lecode sourcecontenu dans les pages, code source écrit en langageJava.
ASPest une technologie développée parMicrosoft,composée d'un interprète, qui se branche sur le logiciel serveur webInternet Information Services.L'interprète exécute le code source contenu dans les pages, code source écrit en langageVBScript[10].
JSPest une technologie développée parSun Microsystems,composée d'un logiciel de serveur web auquel peut se brancher un logiciel applicatif écrit en langageJava.Le logiciel applicatif est composé de pages web contenant du code source préalablementcompilé[11],[12].
ASP.Netest une technologie développée parMicrosoften remplacement deASP,composée d'un logiciel qui se branche sur le logiciel de serveur webInternet Information Serviceset qui exécute le logiciel applicatif. Le logiciel applicatif est composé de pages contenant du code source écrit dans un langage qui utilise leframeworkde programmation.Net(Visual Basic.NETouC#), le logiciel applicatif est préalablementcompilé[13].
LAMP(Linux-Apache-MySQL-PHP) est une suite de logicielsopen sourcequi, utilisés ensemble, permettent de réaliser des serveurs d'application. Par définition, cette suite est composée dusystème d'exploitationLinux,du logicielserveur webApache,de l'interprètePHP,et dusystème de gestion de base de donnéesMySQL.
Wamp- (néologisme basé surLAMP)- (Windows-Apache-MySQL-PHP) est une suite de logiciels qui, utilisés ensemble, permettent de réaliser des serveurs d'application. Par définition, cette suite est composée dusystème d'exploitationWindows,du logicielserveur webApache,de l'interprètePHP,et dusystème de gestion de base de donnéesMySQL.
Les logiciels de serveur d'application sont également utilisés pour réaliser desservices web.
Navigateur web
[modifier|modifier le code]Lenavigateur webest le logiciel qui affiche les résultats envoyés par le serveur, reçoit les manipulations de l'utilisateur et les transmet auserveur.
Uneappletest un morceau de logiciel incorporé dans une page web, et exécuté par le navigateur web de l'ordinateurclient.Lorsque l'utilisateur actionne unwidgetplacé dans une page web, l'applet peut alors modifier la présentation de la page (technique appeléeDHTML), afficher des messages ou envoyer des requêtes au serveur d'applications.
JavaScript,initialement appeléLiveScriptest unlangage de programmationpour les applets, développé parNetscape.Les applets écrites dans ce langage sont exécutées par un interprète inclus dans le navigateur web. De nombreux navigateurs web ont un interprète JavaScript.
Les premiers navigateurs web équipés d'uninterprèteJavaScript présentaient des différences de dialecte qui font qu'une applet écrite pour un interprète en particulier n'est pas toujours comprise par un autre interprète. Pour pallier ce problème,Ecma Internationalpublie en 1999 lanorme industrielleECMA-262ECMAScriptqui spécifie la syntaxe que doivent comprendre les interprètes JavaScript[14].
LeDocument Object Model(abrégéDOM) est un ensemble d'objetsnormalisé qui représente la page affichée, ainsi que le navigateur web. Le DOM est l'interface de programmationutilisée dans les applets pour effectuer des modifications sur la page.
La méthodeAjaxconsiste à utiliser de manière conjointe des technologies telles queJavaScript,CSS, XML, le DOM et leXMLHttpRequestdans le but de réaliser des applications Web qui offrent une maniabilité et un confort d'utilisation supérieur à ce qui se faisait jusqu'alors - lesRich Internet Application(abr. RIA).
Javaest un langage de programmation développé parSun Microsystems,qui peut être utilisé pour les applets. Les applets écrites dans ce langage sont préalablement compilées, et exécutées par un logiciel branché au navigateur web, leplug-inJava (traduction littérale: qui se branche dessus). Voirenvironnement d'exécution Java.
ActiveXest une technologie développée parMicrosoftou descomposants logicielpeuvent être inclus en tant qu'applet dans des pages web. Cette technologie nécessite un système d'exploitationWindowssur l'ordinateurclient.
Flashest une technologie développée parAdobe.Un logiciel branché au navigateur, leplug-in Flashpermet d'afficher des animations, desimages vectorielles,des vidéos, et exécuter des applets. Il comporte un interprète pour des applets en langage de programmation ActionScript, un langage similaire à JavaScript. Cette technologie est d'usage courant pour les jeux vidéo en ligne.
Création
[modifier|modifier le code]Les applications web sont souvent créées par des équipes composées dedéveloppeurs,mais la conception de l'application nécessite diverses compétences transverses et demande l'intervention de designers d'interface (designer UI), designer UX, d'architecte logiciel, mais aussi de chef de produit. Le développement nécessite la connaissance des différents langages utilisés dans les technologies du Web:HTMLpour la présentation des pages,CSSpour lacharte graphique,JavaScript,JavaouActionScriptpour les automatismes exécutés par le client, ainsi qu'un langage tel queJava,PHP,C#ouVBScriptpour les automatismes exécutés par le serveur.
Les applications web sont faites d'un ensemble de composants logiciels et de pages "porteuses"; les composants sont regroupés dans desbibliothèques logicielles(voirservlets). Un logicielserveur webprévu à cet effet (serveur d'applications web) exécute un composant donné lors de la réception de chaque requête.ASP.NET,Websphere,JBossouApache Tomcatsont des logiciels serveurs d'application web.
Une application web est typiquement utilisée simultanément par plusieurs usagers; elle est équipée de mécanismes decontrôle d'accès logique,ceux-ci sont basés sur les mécanismes de contrôle d'accès propre au serveur d'application web et au système d'exploitation. Ils utilisent parfois des mécanismes existants tels que l'authentification unique(Single sign-on).
Pour les travaux de construction, les ingénieurs utilisent desenvironnements de développement intégréqui aident à la fois à laprogrammation informatiqueet laconception de site Webtels queVisual StudioouEclipse.
Sécurité
[modifier|modifier le code]La sécurité d'une application web est étroitement liée à l'environnement qui l'héberge. Des failles telles lecross-site scriptingpeuvent mettre l'application en péril si le développeur n'a pas pris de précaution pour sécuriser son code. Différentes façons d'attaquer une application peuvent être utilisées, par exemple l'injectionSQL ou JavaScript.
Notes et références
[modifier|modifier le code]- «Webapp ou application mobile: quel développement technique?», surmobizel.com.
- «Administration du routeur Linksys».
- Règlement (UE) 2022/1925 du Parlement européen et du Conseil du 14 septembre 2022 relatif aux marchés contestables et équitables dans le secteur numérique
- Exemple de Google apps«Google apps, une suite bureautique en ligne».
- (en)«A brief history of CGI».
- (en)«W3Org, the Common Gateway Interface».
- (en)«Next generation rich client».
- «Définition, Wiki».
- «Histoire de PHP».
- (en)«ASP History and information».
- (en)«A short history of Java Server Pages»
- (en)«JSP Basics»
- (en)«What is ASP.Net - O'Reilly».
- (en)«ECMA-262 specification».