# Technologies Web

Les technologies web sont un ensemble de protocoles et spécifications qui composent et sont utilisés par le World Wide Web (généralement abrégé Web ou www) et ses normes. Le web a été créé en 1989 comme application de partage d'informations puis est devenu une plate-forme à part entière sur laquelle sont développées régulièrement des nouvelles technologies. Les bases de ces technologies sont le protocole réseau HTTP, normalisé par l'IETF, et le format de document HTML, normalisé par le World Wide Web Consortium (W3C). Ce dernier organisme est l’organe centrale de normalisation des technologies web.
Destiné par son créateur Tim Berners-Lee, en Suisse, au CERN, à lier un document à un autre via une balise de texte renvoyant vers une autre page, selon le principe de l'hypertexte, le web est devenu l'un des protocoles d'échange les plus utilisés. Son évolution a été régulière depuis son lancement. Bénéficiant de son support sur le réseau internet devenu populaire, le World wide web est, avec le courrier électronique, l'usage le plus courant d'Internet, et a été étendu bien au-delà de son usage initial. Ses URLs et URIs, destinées à identifier et localiser un document de manière unique et stable dans le temps, identifient aujourd'hui des applications avec des documents dynamiquement générés dans des langages de programmation dédiés, des applications informatiques complètes ou des concepts abstraits avec le web sémantique.
Le format HTML permet aujourd'hui de nombreux types de documents à la page web elle-même, des images, du son et de la vidéo, des interfaces en 3D, de la visioconférence, des outils de conceptions de plus en plus complexes. Les technologies web permettent aujourd'hui de créer des applications informatiques qui n'auraient été possibles autrefois que dans des applications natives, avec le bonus d'être naturellement des applications réseau et donc permettant à la fois un travail collaboratif aisé et d'être accessible depuis n'importe quel point d'accès à Internet. On a ainsi pu voir émerger des plates-formes d'éditions de documents collaboratives comme les wikis. On trouve des navigateurs web sur tout type de terminal informatique, des serveurs sans interfaces graphiques avec des navigateurs simples comme W3m aux téléphones portables et tablettes. L'interopérabilité et l'accessibilité sont ainsi des préoccupations importantes et l'omniprésence de la plate-forme en fait une cible de choix pour les développeurs.

## Historique
### Contexte de l'invention

Internet est né durant la guerre froide, en 1969, d'un projet du département de la Défense des États-Unis, qui visait à permettre la communication entre les sites de recherche et les sites militaires des États-Unis, y compris en cas de guerre et de destruction partielle de l'infrastructure. Chaque site ayant lui-même un réseau local.
La technologie TCP/IP a été lancée en 1970 et adoptée pour l'Internet. Cette suite de protocoles permet de relier entre eux des réseaux, et de donner l'illusion d'un réseau unique. Les différents réseaux reliés peuvent utiliser différentes technologies de télécommunication (Ethernet, réseau commuté…) et les données transmises sur les réseaux TCP/IP peuvent se conformer à différents protocoles, tels HTTP ou FTP, selon le modèle OSI.

### Invention et évolutions

Le web a été créé en 1989 au CERN par Tim Berners-Lee et était destiné aux chercheurs en physique des particules. Le but était de faciliter l'échange d'informations entre les membres de la communauté scientifique en utilisant Internet. Il crée en 1991 le premier éditeur et navigateur web, appelé WorldWideWeb, ainsi que le premier serveur HTTP, CERN httpd, il fut réécrit en Java et maintenu par le w3c sous le nom Jigsaw à partir de 1996.
Le code source de l'application WorldWideWeb, initialement développé sur un système NeXTSTEP, est placé dans le domaine public pour favoriser sa diffusion et susciter des améliorations.
Quatre ans après le lancement par le CERN de CERN httpd, le NCSA sort en 1992 le second navigateur web : Mosaic. Ce programme permet, toujours à travers une interface graphique de consulter les documents placés sur des serveurs. Les documents sont au format HTML et des images peuvent être intégrées aux pages. C'est la principale évolution par rapport à CERN HTTPd.
En 1994, sort le navigateur Netscape Navigator, développé par certains développeurs de NCSA Mosaic. Son principal avantage par rapport à Mosaic, est d'être capable d'afficher le contenu de la page avant que toutes les images soient chargées, cela le rendait particulièrement attractif à une époque ou les modems du réseau téléphonique commuté (RTC) avaient une bande passante de 1 à 3 Kio par seconde. C'est un navigateur multiplateforme, pouvant donc fonctionner sur les postes UNIX des sections informatiques des universités et centres de recherche. Il sera le navigateur le plus populaire jusqu'à être dépassé en 1997 par Microsoft Internet Explorer. Il est également à l'origine de Mozilla Firefox.
À la suite des demandes des développeurs de sites web de la création d'une norme pour les sites dynamiques, la mise en place de Common Gateway Interface (CGI) fut discutée à la 5e réunion internationale du WWWW, du 6 au 10 mai 1996 à Paris et organisée par le w3c.

### Web sémantique

Dans sa construction initiale, le web permet à une personne de récupérer des informations; le tri, le classement et l'extraction de ce qui est pertinent pour elle est une opération manuelle. Ceci peut parfois demander un travail important: un moteur de recherche peut produire plus de 30 000 résultats. En 1994$^,$ Tim Berners-Lee, l'inventeur du web, lance l'idée d'un web sémantique, où le tri et le classement des informations est automatisé par des techniques d'intelligence artificielle et une description du contenu des documents par des métadonnées; les métadonnées étant manipulées par les ordinateurs. Ces idées ont donné naissance aujourd'hui à des projets comme le Knowledge Graph de google, Freebase, une base de données sémantique, des variantes de logiciels de type wikis comme Semantic MediaWiki, avec comme fond théorique le domaine des Ontologies formelles, et comme standards d'échanges des technologies comme RDF et OWL, standardisées par le W3C.
L'intérêt de ces projets est de pouvoir servir de base de données générique pour stocker tout type de donnée sans être contraint par un schéma préétabli comme une base de données avec un schéma prédéfini pour un certain domaine, comme la plupart des bases de données relationnelles. Une base de données sémantique permet à l'utilisateur de définir son propre schéma de stockage, et les standards permettent l'échange de données et l'établissement d'un Graphe Global Géant dans lequel chaque objet présente un identifiant sous la forme d'une URI sur laquelle on peut exprimer des informations de manière décentralisée. Les techniques d'annotation de pages web (en) ont aussi vu le jour avec des sites comme schema.org dans l'esprit du Web sémantique afin de faciliter notamment le travail des robots d'indexation en rajoutant des métadonnées leur permettant de mieux comprendre le contenu des pages web sans avoir à interpréter le langage naturel.

### Web 2.0

Le web a changé la manière des gens de communiquer, de faire du commerce et de partager des informations. À ses débuts en 1990, le web était une collection de pages rarement modifiées, puis l'usage a évolué en direction d'applications permettant de partager des photos, des vidéos, de faire du commerce et de participer à des activités de groupe; c'est Web 2.0; une évolution due autant aux changements technologiques qu'à l'augmentation de la couverture d'Internet et de l'évolution des habitudes des utilisateurs.

### HTML5

Le HTML5 est une autre avancée majeure, il a l'avantage du web sémantique, ou tout peut être indexé par des automates et des contenus dynamiques multimédias ; WebGL pour la 3D, audio, vidéo, visioconférence, JSON pour les échanges de données et la recherche dynamique du client dans les bases de données du service.

## Description du fonctionnement

Le web permet le partage d'informations disséminées à travers le monde et leur échange en utilisant le protocole HTTP. La forme conventionnelle des informations échangées sont des documents au format HTML.
HTTP (abrégé de HyperText Transfer Protocol) est le protocole sous-jacent du web. Cette convention définit comment les messages sont formatés et transmis et comment le serveur HTTP ainsi que le navigateur web doivent réagir aux messages. La convention prévoit par exemple la transmission d´URL entre le navigateur et le serveur HTTP. C'est un des principaux standards du web, le second étant le HTML qui concerne la manière dont les documents sont codés et affichés.

### Couche réseau inférieure

TCP/IP, est une des techniques de communication d'Internet et le protocole réseau sous-jacent utilisé pour faire fonctionner HTTP. L'utilisation de HTTP est également possible en UDP, cela permet par exemple d'avoir un meilleur débit pour les flux audios ou vidéos.

### Fourniture des pages
#### Langages utilisés

Parmi les premières technologies utilisées, on peut citer le langage de script Perl, alors très utilisé dans le domaine de l'administration UNIX, il permet, grâce à bonne gestion des expressions rationnelles, d'être particulièrement adapté au traitement des chaînes de caractères que constituent les pages web.
Dès 1994, PHP, un langage de script destiné à servir des pages web. En 2010 PHP était le langage dominant, utilisé par presque 70 % des sites, suivi par ASP avec 30 %, et enfin, moins de 1 % pour JSP et Ruby on Rails. PHP a servi de base à l'élaboration d'applications comme des forums depuis sa création, par exemple le forum autrefois très populaire PhpBB est nommé en référence à ce langage, comme de nombreux autres logiciels développés autour du Web.
En 1995, NeXT fait la première présentation de ses WebObjects qui sortiront officiellement en mars 1996. Le succès ne sera pas de longue durée.
JavaServer Pages, Active Server Pages ou Java Servlet étaient très répandues dans les années 1990.
Les deux serveurs HTTP les plus utilisés aujourd'hui sont Apache et nginx, qui à eux seuls se partagent, en août 2013, 61,5 % de part de marché des serveurs et 71,8 % du premier million de sites les plus actifs. Ils utilisent généralement la technologie FastCGI ou ses variantes pour appeler les scripts qui produiront les pages HTML.
Le principe de Système de gestion de contenu a permis également de fournir une base commune logicielle à de nombreux sites, par catégorie ; blog, site marchand, site d'information, webmail, etc. et de n'en développer que des aspects mineurs, spécifiques au site, présentation, mise en page, et le contenu.
Le web a évolué d'un dispositif de partage d'informations vers une plate-forme technique pour créer des logiciels applicatifs. Ces applications web utilisent les normes et les technologies du web et sont manipulables à l'aide d'un navigateur.
Entre 1995 et 2005, le web a été le berceau de plusieurs nouvelles technologies. Certaines de ces nouvelles technologies ont été lancées dans le but de remplacer un prédécesseur, ou de faire concurrence. Par exemple Java Servlet était destiné à succéder à CGI, puis Active Server Pages a été lancé comme technologie concurrente. Le besoin de développer du code en deux parties, client et serveur a engendré des technologies capables de gérer la partie client et la partie serveur avec une seule plate-forme et un seul langage, comme Google Web Toolkit.
Côté client, le JavaScript, conçu comme un langage d'extension du navigateur pour gérer dynamiquement certaines tâches sur la machine cliente de manière asynchrone et événementielle, comme la validation des formulaires et la manipulation du DOM des pages Web, a connu une évolution majeure avec l'introduction de la technologie Ajax pour communiquer de manière synchrone avec les serveurs et créer des applications plus dynamiques nécessitant moins de rechargements de page. Le langage est l'objet de beaucoup d'attention avec des bibliothèques entières de code qui lui sont dédiées comme JQuery, et même étendues pour tourner du côté serveur comme Node.js. Les développeurs de logiciels de navigation doivent optimiser le code qui est destiné aux plates-formes qui ne sont pas très puissantes, telles que celles de certains smartphones. De nombreuses machines virtuelles ont vu le jour, comme V8 (moteur JavaScript), SpiderMonkey et bien d'autres. Il a même été souvent comparé à « l'assembleur du web », ce que semblent confirmer des projets comme asm.js qui visent à choisir un sous-ensemble de JavaScript destiné à être généré par des compilateurs afin d'optimiser les performances, ou une liste très importante de compilateurs JavaScript

### Applications
#### Sur le serveur

Le web est utilisé comme une plate-forme technique pour permettre la manipulation d'applications hébergées sur des serveurs web. Dans de telles applications, les programmes ainsi que les données résident sur un serveur web - contrairement aux applications classiques qui résident sur l'ordinateur de l'utilisateur. Pour les développeurs, la mise à disposition d'une application hébergée sur un serveur web est beaucoup moins coûteuse que le fait de graver un CD et de l'envoyer en grande distribution. Les améliorations subséquentes sont également facilitées.
CGI est une technique qui permet d'associer un programme avec une page web. Par cette technique le serveur HTTP peut utiliser le programme pour obtenir des données provenant par exemple de bases de données, puis de les envoyer sous forme de page web.
Entre 1995 et 2005 Java Servlet a succédé à CGI, puis Active Server Pages, mod php (langage PHP) et mod perl pour le langage perl, utilisé par de nombreux scripts cgi et fastCGI (1995), ont été lancés comme technologies concurrentes.
PHP est rapidement devenu le langage le plus utilisé du côté serveur pour atteindre plus de 60 % en 2009.
Aujourd'hui Apache et nginx, les deux principaux serveurs web utilisés sur le marché, permettent de servir principalement des pages en PHP, servis via FastCGI, mais aussi en Java, via JSP ou encore Ruby, via Ruby on Rails, ainsi qu'un grand nombre d'autres langages utilisés plus marginalement.
Microsoft IIS quant à lui, troisième serveur le plus utilisé, permet de servir du contenu en langage Microsoft ASP.
Java est un langage de programmation sorti en 1996. Les programmes écrits dans ce langage peuvent être soit exécutés sur le serveur, soit - les applets Java - peuvent être téléchargés et exécutés par les navigateurs web. Cette caractéristique a rendu cette technologie populaire pour réaliser des applications interactives et des jeux vidéo sur le web. La technologie Adobe Flash, lancée la même année, a rapidement écrasé Java et est devenu la technologie la plus populaire jusqu'aux années 2010.
Les applications web dites Rich Internet Application (abr. RIA) offrent une maniabilité et un confort d'utilisation équivalent, voire supérieur à des applications classiques. Ceci est obtenu par l'utilisation de technologies telles que Ajax, Adobe Flash, Microsoft Silverlight ou aujourd'hui HTML5, adopté par les navigateurs les plus populaires ; Google Chrome, Firefox, Opera, et un début de compatibilité a été amorcé avec Internet Explorer version 8.

##### Bases de données

Les bases de données ont été rapidement utilisées dans les technologies web, afin de rendre les pages plus dynamiques et de séparer la présentation du contenu. La plus populaire, généralement associée à PHP et apache, dans ce que l'on appelle communément dans le jargon du web LAMP (pour Linux Apache MySQL PHP). Dans le cas d'IIS et des ASP, la base de données est plus souvent celle de Microsoft, mSQL. D'autres bases de données comme PostgreSQL, sont également utilisées majoritairement avec PHP
Depuis le début des années 2010, les bases de données de type NoSQL prennent de plus en plus d'importance dans les services HTTP à très forte audience. MongoDB est la base de type NoSQL la plus utilisée.

#### Sur le client

Les clients sont principalement les navigateurs web qui permettent de présenter les documents et applications web à l'utilisateur. Il existe de nombreux navigateurs, dont les plus utilisés sont Mozilla firefox, Google Chrome, Internet Explorer ou encore Opera. Ces navigateurs implémentent tout ou parties de normes définies principalement par le W3C :

##### HTML

    pour la représentation sémantique des documents, un langage à balise dans lequel des portions du document sont délimitées entre des balises comme <body> pour le marqueur de début ou </body> pour marquer le corps du document ou <p> pour marquer le début d'un paragraphe. HTML, outre les dispositions graphiques, disposent de balises permettant de définir des formulaires web avec un ensemble de Widgets utilisé en conjonction avec la méthode POST ou la méthode GET du protocole HTTP.

##### CSS

    Les styles CSS, pour feuilles de style en cascade, permettent de définir l’aspect d'une page et de ses éléments par un ensemble de propriétés (position, taille, couleurs, bordures, polices, visibilité…), en fonction de certains paramètres comme la taille ou la nature du support associé, ou de l'état de ces éléments, si la souris est positionnée sur un élément il est par exemple possible de changer son aspect. Par exemple à l'impression d'une page web il est possible de définir un style qui permet de cacher les éléments de navigation inutiles sur papiers.

##### DOM

    En interne ces documents HTML sont traduits par le navigateur en un arbre DOM dans lequel les nœuds représentent les balises ou leurs attributs et les styles CSS qui leur sont associés. À chaque nœud de l’arbre est associé un certain nombre d'événements qui permettent, grâce à la programmation événementielle, de définir de véritables interfaces RIA.

##### JavaScript (ou ECMAScript)

    Le langage de programmation implémenté pour les aspects dynamiques d'une page ou d'une application Web. Dans un document HTML, il est possible de définir des fonctions associé aux évènements DOM (en), et ainsi de modifier l’apparence de l'interface (DHTML), d'ajouter de nouveaux éléments à la page, de valider les données de formulaires, de faire des requêtes asynchrone à d'autres serveurs grâce aux technologies AJAX, ou encore de dessiner sur un canevas HTML. D'autres langages aujourd'hui marginaux permettent aussi de manipuler l’arbre DOM, comme JScript ou VBScript.

##### Greffons

    Les navigateurs Web incluent des possibilités d'extensions sous la forme de greffon leur permettant notamment d'afficher des documents de types différents de ceux prévus par les standards du web ; par exemple les documents pdf, notamment avec le populaire plug-in inclus dans Acrobat Reader, ou Adobe Flash Player pour créer des applications dynamiques et multimédias comme des jeux vidéo ou des forums de discussion par Webcam, de nombreuses Applet Java qui ont été populaires avant les années 2000, en utilisant des interfaces de programmation comme Netscape Server Application Programming Interface (en). Ces extensions tendent à être remplacées par technologies natives du navigateur comme HTML5 qui visent entre autres à étendre les possibilités multimédias du navigateur sans avoir à installer un programme externe.
HTML permet aujourd'hui grâce à des balises comme la balise vidéo et la balise audio, de servir de plate-forme pour des applications de visualisation de lecteurs multimédias.

### Échanges client-serveur

L'Uniform Resource Locator (abrégé en URL, signifiant en anglais « Localisateur uniforme de ressource ») est la description conventionnelle de l'emplacement d'un document du web. il comporte trois parties :
* le protocole à utiliser précisé avant les // (HTTP: pour du HTTP, HTTPS pour du HTTP chiffré, pour les documents Web, mais les navigateurs sont parfois capable de comprendre des protocoles Internet qui ne font pas partie des standards du Web comme IRC: pour le protocole de babillage, IRC, NNTP: pour les newsgroup, etc.
* Le nom d'hôte, il suit les //, par exemple www.cern.ch, fait référence au nom de domaine cern.ch (le CERN, en Suisse (ch)) et sur son réseau, l'hôte www. qui peut être un hôte physique (ordinateur seul, cas le plus rare ou bien ensemble d'ordinateurs destiné à ce site (via un CDN ou un répartiteur de charge), c'est le cas pour les sites à plus forte audience), ou bien encore un hôte virtuel (un site placé au côté d'autres sites sur un unique serveur, c'est un cas des plus courants). Le décodage du nom d'hôte nécessite, pour le client une requête DNS lui permettant de connaître l'adresse du, ou des serveurs, pour le serveur l'association de ce nom d'hôte avec le dossier racine contenant les données du site, un renvoi éventuel vers un autre nom (HTTP REDIRECT), ou bien l'accès à un autre serveur, s'il n'est qu'un relais.
* Le document à fournir, il suit le premier / suivant le nom d'hôte. Le serveur décode cette information, pour connaître l'emplacement du fichier ou script à exécuter, il peut s'agir d'un nom symbolique, converti via une réécriture d'URL, par le serveur en différentes choses, comme le nom du script appelé et un argument qui lui sera fourni, lui permettant de fournir la page en fonction des informations contenues en base de données.
Le DNS est un service d'Internet permettant d'obtenir la correspondance entre un nom d'hôte facilement lisible et mémorisable, en une adresse IP. Les DNS sont une hiérarchie d'ensemble de serveurs répartis autour de la planète. Cependant les DNS racines sont tous concentrés aux États-Unis d'Amérique, en raison de l'origine militaire d'Internet. Voir l'article pour davantage de détails.
Un navigateur web est généralement utilisé pour exploiter un service HTTP. Il s'agit d'un logiciel, capable de résoudre le nom en appelant un service DNS, d'échanger avec les serveurs HTTP, selon le protocole défini, et capable d’interpréter le document HTML, XHTML, différents formats de fichiers standards, tels que définis par le w3c, et, si nécessaire, de renvoyer les documents fournis vers des greffons spécialisés ou des applications externes.
Les services web peuvent servir de plate-forme pour créer des services entièrement automatisés principalement destinés à l'interaction avec des systèmes automatisés dans une architecture logicielle comme les Webservice, donnant naissance à certaines conventions sur les interfaces de programmation avec les API REST, qui respectent les principes du web, des formats d'échanges comme JSON ou les technologies XML, et des protocoles et techniques d'interaction entre client et serveur comme JSON ou les objets XMLHttpRequest en JavaScript.
Il est également possible d'utiliser une application dédiée, qui va communiquer avec le serveur HTTP, via le format d'échange de données JSON, afin d'organiser de façon plus spécifique les échanges de données. Certains autres logiciels se contentent d'échanger des fichiers tels que des images via le protocole HTTP, en utilisant les possibilités sémantiques du format HTML.
Afin de rendre les données dynamiques, sans avoir à appeler le serveur à chaque modification sur le terminal, les navigateurs web peuvent utiliser plusieurs technologies. La plus répandue aujourd'hui est le JavaScript, entré dans la norme HTML5. Dans les années 2000, les Applet Java et les applications flash étaient très populaires, mais avaient deux principaux défauts par rapport au protocole HTTP ; les données fournies étant totalement binaires et fermées, elles ne sont pas sémantiques, par ailleurs il est nécessaire que le navigateur web contienne un greffon pour exécuter ces formats. La technologie ActiveX est également utilisée.
Pour conserver les informations d'un utilisateur d'une page à une autre, lors d'un parcours, appelé « session » il existe pour cela trois principales méthodes, Les Cookies, et les méthodes HTTP, « POST » et « GET » :
* Les cookies (ou « Témoin de connexion ») sont fournis par l'entête HTTP et peuvent être stocké dans le navigateur, mais également servir au pistage de l'utilisateur d'un site à l'autre. Les navigateurs proposent donc en général des options de blocage des cookies pour éviter cela.
* La méthode HTTP « GET » est la méthode de transaction par défaut entre le navigateur web et le serveur HTTP, dans ce cas, les informations de sessions seront visibles dans la barre d'URL, via des arguments (généralement placés après le « ? » suivant la page appelée, mais pouvant également utiliser les réécritures d'URL. Dans le cas de la méthode GET, les informations de session peuvent être situés dans le lien hypertexte ou dans formulaire en mode GET.
* La méthode HTTP « POST ». Elle nécessite l'utilisation d'un formulaire HTML. Cela n'est pas forcément visible dans la page, ce qui semble être un simple lien HTML ou un bouton peut très bien être un bouton de validation de formulaire et les informations passées ne seront dans tous les cas pas visibles dans la barre d'URL.

### Formats de documents

XHTML est une convention proposée en remplacement de HTML, qui garantit la conformité de la norme HTML avec la notation XML. Cette convention comporte des règles supplémentaires qui n'existent pas dans la norme HTML, comme l'utilisation exclusive des lettres minuscules dans les tags.
Cascading Style Sheets (abr. CSS) est une technique pour dissocier la présentation d'une page (typographie, couleurs) de son contenu (texte, images). La présentation peut alors être réutilisée sur plusieurs pages.
MIME est une convention appliquée au courrier électronique et aux pages web pour pallier l'inconvénient suivant : Les informations sont envoyées au destinataire sous forme de flux d'octets qui ne lui permettent pas d'en reconnaître facilement la nature. La convention MIME prévoit alors que ces informations sont associées à une description normalisée de la nature du contenu : texte, image, audio ou vidéo.
La norme HTML5, établie par le w3c, réunit tous ces aspects, en y ajoutant la possibilité d'y inclure le dynamisme de JavaScript, d'échanger différents flux audios ou vidéos (webM).
Les formats standard d'images sont gif, jpeg et png.
* WebM est un format standard de vidéo.
* WebGL, est chargé des interfaces en trois dimensions.
* WebRTC est chargé des échanges de flux en temps réel audio et vidéo, pour la visioconférence par exemple.

### Éditeurs de page Web et de documents

Avec le web sont aussi nés des éditeurs de pages, comme Adobe Dreamweaver ou Netscape Composer, créés pour générer des documents HTML afin de les diffuser sur le web, certains en WYSIWYG, bien que de simples éditeurs de code peuvent aussi éditer du HTML. Les navigateurs étaient à l'origine conçus pour interpréter des pages qui pouvaient être écrites par des humains, et donc parfois comportant des erreurs syntaxiques, et possédaient un mode d'interprétation dégradé, le Quirks mode (en) qui permettait d'afficher quelque chose quoi qu'il arrive, permettant à des débutants et à des non-professionnels de l'informatique de créer leur page personnelle. Depuis sont apparus d'autres modes de génération de documents web, notamment avec ce que l'on a appelé Web 2.0, les technologies Wikis qui ont permis d'écrire des documents dans des langages textuels simplifiés, puis des éditeurs de documents directement dans le navigateur comme le VisualEditor (en) de la fondation Mediawiki qui permet d'écrire ces lignes, ou encore les logiciels Google Documents ou Microsoft Office 365 qui sont de véritables suite bureautiques accessibles par le Web.

## Applications clientes : plate-forme de communication et de travail collaboratif, ou de divertissement
### Communication par le web

Le web permet un accès à un serveur à partir du navigateur. Cet accès au serveur permet de communique à la fois avec les autres utilisateurs du site, donnant naissance à des logiciels de Forum Web, avec des applications communautaires avec des sites comme les forums d'HardWare.fr ou Doctissimo utilisé par de nombreux utilisateurs, implémentés par des technologies comme les bases de données et les langages de programmation destinés à la programmation Web, mais aussi des services de messagerie instantanée avec des interfaces d'accès à des réseaux comme Live Messenger ou Facebook Messenger au travers d'un navigateur web, avec des technologies web comme Ajax permettant des communications asynchrones, ou encore les WebSockets de manière plus récente. Ces services de messagerie peuvent utiliser d'autres standards Internet qui ne sont pas spécifiques au mail, comme POP3 et SMTP pour les webmails, ou encore XMPP pour les services de messagerie instantanée pour faciliter l'Interopérabilité, ou des protocoles propriétaires non diffusés.

### Diffusion d'information

Le web est une plate-forme qui permet facilement la production et la diffusion d'information, entraînant la création des logiciels de Blog comme WordPress, avec lesquelles les utilisateurs peuvent régulièrement diffuser des billets classés généralement par ordre du plus récent apparaissant en premier sur la page d'accueil du blog. Ces blogs sont souvent associés à des Flux RSS qui ont donné naissance à un type de logiciel agrégateur de flux comme le logiciel Lifera ou l'ancien lecteur en ligne Google Reader, ou les sites de types Planet qui surveillent régulièrement les blogs auxquels ils sont abonnés et permettent à l'utilisateur de gérer les billets récents, lus ou non lus…
Les traditionnels journaux papiers ont tous ou presque aujourd'hui une version en ligne, comme Lemonde.fr ou Lefigaro.fr, qui leur permet de diffuser des articles par le Web sur ordinateurs, mais aussi sur d'autres supports comme les tablettes. La diffusion des sites sur différents supports à l'ergonomie différente (souris, Écran tactile, lecteur d'écran…) a donné naissance à des technologies d'accessibilité du web, très présentes dans les standards du W3C, des techniques de conception comme la conception de sites web adaptatifs, qui vise à avoir une page qui s'adapte en fonction de l'espace dont elle dispose.
La diffusion d'autres types de document est aussi possible par le biais d'autres programmes et sites. YouTube ou Flickr sont ainsi des plates-formes de vidéos et de photos, respectivement.
Outre la diffusion, le relayage d'information est aussi possible au travers d'outils qui sont à la fois des forums et des plates formes de relai d'URI intéressantes comme Reddit, plate-forme sur laquelle les utilisateurs relaient des adresses Internet qui sont ensuite notées et relayées par les Internautes.

### Travail collaboratif

Le web sert aussi d'interface d'accès aux serveurs de courriel au travers de Webmail. La communication couplée aux générateurs de documents permet de créer des plates-formes de travail collaboratif accessibles à partir du navigateur, comme MediaWiki qui permet à des milliers d'utilisateurs de collaborer sur le projet Wikipedia et au projet de Web sémantique avec son extension WikiBase (en) en combinant beaucoup de technologies issues du monde du Web, ou encore Wikia. Des technologies et des plates-formes dédiées à certains domaines d'activité comme le développement logiciel ont aussi des sites et des technologies utilisant le web, par exemple SourceForge.net ou GitHub, particulièrement populaire dans le monde du développement libre et Open Source.
Il existe aussi des sites de question-réponse par exemple Stack Overflow sur lesquels les utilisateurs peuvent poser des questions et les meilleures réponses sont sélectionnées, suivant la réputation des utilisateurs, ou suivant les réponses les mieux notées par les utilisateurs pour trier les parfois nombreuses réponses.
D'autres services et technologies existent autour de la cartographie, comme OSM ou Google Maps, utilisant des technologies de système d'information géographique en interne et des technologies JavaScript AJAX et Canvas (HTML) côté client, par exemple.

### Réseaux sociaux

Autour du web se sont développés des réseaux sociaux comme Facebook, Viadeo ou LinkedIn ou Twitter qui agissent à la fois comme des carnets d'adresses, dans lequel l'utilisateur peut enregistrer des contacts, leur envoyer des messages, des agrégateurs de flux dans lesquels l'utilisateur reçoit les nouveautés contenant ses contacts, des blogs dans lesquels l'utilisateur peut diffuser des billets, et des messageries instantanées, relayer des liens… Ce type d'application avec beaucoup d'utilisateurs et beaucoup de données à traiter a participé à l'émergence de nouveaux types de base de données avec le mouvement NoSQL.

### Jeux

Des jeux, comme une version de vieux jeu vidéo comme Lemmings et des plates-formes de développements sont créés en utilisant les technologies Web, notamment les Canvas, la plate-forme Flash ou la technologie standard WebGL. Certains concepteurs de navigateur web, en 2013, travaillent sur l'implémentation de jeux vidéo dans le navigateur, ce qui nécessite un gros travail sur les performances de la machine virtuelle.

### Moteurs de recherche et technologies d'indexation

Le Web s'est construit autour de documents multimédias, notamment textuels, répartis sur de multiples serveurs. Trouver une information a nécessité le développement de techniques comme les annuaires Internet, dans lequel les sites internet peuvent s'inscrire et être classés, puis des Moteurs de recherche qui parcouraient le web en suivant les liens Internet avec des programmes automatisés, les robots d'indexation comme le Googlebot, récupèrent, lisent les textes des pages web puis les indexent dans des très grosses bases de données nécessitant des Grappes de serveurs regroupées dans des Datacenters. Les clients requêtent alors ces datacenters avec des requêtes textuelles, qui sont analysées par le moteur de recherche qui cherche alors les pages web qui contiennent ces mots clés dans son index, en utilisant des techniques logicielles comme le Map reduce conçue pour des traitements parallèles, et les classes en utilisant des algorithmes de classement dont le plus connu est l'algorithme de PageRank inventé par les créateurs de Google et en partie responsable du succès de cette compagnie.
L'indexation de gros volume de données à la suite de l'explosion d'Internet et du Web a entraîné la création de bases de données dédiées comme Lucene, Solr, Elasticsearch, et a participé au développement des techniques dites de « Big data ».