Dans la technologieclient-serveur, utilisée pour le World Wide Web, le navigateur Web envoie au serveur desrequêtes relatives à despages Web. Le serveur répond aux demandes en envoyant les pages au navigateur Web. Le navigateur affiche alors les pages à l'utilisateur.
Lesapplications Web utilisent 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. Chaquehyperlien contenu dans la page provoque l'envoi d'une nouvelle requête, qui donnera en résultat une nouvelle page. À la différence d'unsite webstatique où les pages sont desfichiers préalablement enregistrés.
Les pages Web contiennent diverswidgets tels desboutons poussoirs, desicônes et deszones de texte, permettant la manipulation de l'application. Chaque manipulation d'unbouton poussoir provoque l'envoi d'une nouvelle requête. Les pages Web peuvent contenir desapplets.
Contrairement à d'autres logiciels, une application Web mise en place sur unserveur est immédiatement utilisable par le consommateur sans procédure d'achat et d'installation sur 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.
Le World Wide Web a permis aux utilisateurs de se partager des documents et des images plus rapidement quevia lecourrier électronique et plus facilement quevia lepartage de fichiers.
Le nombre grandissant de documents publiés a rendu rapidement lesmoteurs de recherche nécessaires pour les retrouver : l'utilisateur entre unmot clé, leserveur Web effectue la recherche, puis envoie le résultat sous forme d'un document.
Lesmoteurs de recherche ont é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'uneergonomie inférieure aux applications client. Est appeléeRich Internet Application une application Web qui offre une maniabilité et une ergonomie équivalente à une application client. Le termeRich Internet Application est apparu la première fois dans une publication deMacromedia en 2002[7].
Unsystème de gestion de contenu est 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.
Unweblog est 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ïenwikiwiki qui signifievite) est un système de gestion de contenu qui vise à simplifier la créationcollaborative des documents. Il autorise plusieurs personnes à effectuer des modifications simultanées, et est équipé d'espaces de discussion[8].
Unsite web marchand est 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.
Un logiciel deforum permet 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 portablevia leshort message service (abrégéSMS).
Google Maps est une application web qui permet de consulter des cartes géographiques du monde entier.
Facebook est 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).
Dans la technologie la plus courante, l'application web s'oriente autour d'unserveur web sur 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 source du logiciel applicatif est placé directement dans des pages web. Ces pages sont stockées par leserveur. Lorsque leclient demande 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 webavant la transmission.ActiveX,Java,Adobe Flash etSilverlight sont 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.
PHP, développé parRasmus Lerdorf, est uninterprète qui peut être branché à un serveur web. L'interprète permet d'exécuter des logiciels écrits enlangage PHP 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 source contenu dans les pages, code source écrit en langageJava.
ASP est 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].
JSP est 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.Net est une technologie développée parMicrosoft en remplacement deASP, composée d'un logiciel qui se branche sur le logiciel de serveur webInternet Information Services et qui exécute le logiciel applicatif. Le logiciel applicatif est composé de pages contenant du code source écrit dans un langage qui utilise leframework de programmation.Net (Visual Basic .NET ouC#), le logiciel applicatif est préalablementcompilé[13].
Lenavigateur web est le logiciel qui affiche les résultats envoyés par le serveur, reçoit les manipulations de l'utilisateur et les transmet auserveur.
Uneapplet est un morceau de logiciel incorporé dans une page web, et exécuté par le navigateur web de l'ordinateurclient. Lorsque l'utilisateur actionne unwidget placé 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éLiveScript est unlangage de programmation pour 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ète JavaScript 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 International publie en 1999 lanorme industrielle ECMA-262ECMAScript qui spécifie la syntaxe que doivent comprendre les interprètes JavaScript[14].
LeDocument Object Model (abrégéDOM) est un ensemble d'objets normalisé qui représente la page affichée, ainsi que le navigateur web. Le DOM est l'interface de programmation utilisée dans les applets pour effectuer des modifications sur la page.
La méthodeAjax consiste à utiliser de manière conjointe des technologies telles queJavaScript, CSS, XML, le DOM et leXMLHttpRequest dans 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).
Java est 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-in Java (traduction littérale : qui se branche dessus). Voirenvironnement d'exécution Java.
ActiveX est une technologie développée parMicrosoft ou descomposants logiciel peuvent être inclus en tant qu'applet dans des pages web. Cette technologie nécessite un système d'exploitationWindows sur l'ordinateurclient.
Flash est une technologie développée parAdobe. Un logiciel branché au navigateur, leplug-in Flash permet 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.
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 dechef de produit. Le développement nécessite la connaissance des différents langages utilisés dans les technologies du Web :HTML pour la présentation des pages,CSS pour lacharte graphique,JavaScript,Java ouActionScript pour les automatismes exécutés par le client, ainsi qu'un langage tel queJava,PHP,C# ouVBScript pour 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 web prévu à cet effet (serveur d'applications web) exécute un composant donné lors de la réception de chaque requête.ASP.NET,Websphere,JBoss ouApache Tomcat sont 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).
La sécurité d'une application web est étroitement liée à l'environnement qui l'héberge. Des failles telles lecross-site scripting peuvent 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'injection SQL ou JavaScript.