World Wide Web
Le World Wide Web (WWW), souvent abrégé en web, est un système d'information mondial reposant sur l'infrastructure d'Internet. Il permet aux utilisateurs de naviguer et d'accéder à une immense variété de contenus numériques : pages web, documents, images, vidéos, applications interactives, et bien plus encore.
Invention et histoire
- Le web fut inventé en 1989 par le scientifique britannique Tim Berners-Lee, alors chercheur au CERN (Genève).
- En 1990, il publia la première page web et développa le premier navigateur web, posant ainsi les bases du web moderne.
- La technologie fut ouverte à d'autres institutions de recherche à partir de janvier 1991, puis rendue accessible à l'ensemble d'Internet le 23 août 1991, date considérée comme l'ouverture officielle du web au public.
La naissance du web
Le premier site web, hébergé sur l'ordinateur NeXT de Tim Berners-Lee au CERN, présentait le projet World Wide Web lui-même et expliquait son fonctionnement.
Principales technologies du web
Adresse web (URL)
Une URL (Uniform Resource Locator) est une adresse unique qui permet d'identifier et d'accéder à une ressource sur Internet (page web, fichier, service, etc.).
Elle se compose de plusieurs éléments :
- Le protocole (ex. : http, https, ftp),
- Le nom de domaine (ex. : www.exemple.com),
- Le chemin d'accès (indiquant la localisation de la ressource sur le serveur),
- Eventuellement des paramètres supplémentaires (variables, identifiants de session, etc.).
Note
Uniform Resource Identifier (URI) est un terme générique qui englobe deux concepts :
- URL (Uniform Resource Locator) → identifie une ressource en indiquant où et comment y accéder.
- URN (Uniform Resource Name) → identifie une ressource par un nom unique, indépendamment de son emplacement.
Exemple
-
URL :
https://www.exemple.com
- Indique comment accéder à une page web via le protocole HTTPS.
- Fournit le chemin d'accès mais pas de détails sur le contenu.
-
URN :
urn:ietf:rfc:2141
- Identifie une RFC spécifique publiée par l'IETF (ici la n°2141).
- N'indique pas où ou comment accéder au document, mais assure une identification unique.
Analogie
- Adresse postale → comparable à une URL : elle permet de localiser un lieu et d'y accéder physiquement.
- Numéro ISBN → comparable à une URN : il identifie un livre de manière unique, sans indiquer où le trouver.
Syntaxe
Source : Uniform Resource Identifier (URI): Generic Syntax - RFC 3986
Exemples
Hypertext Transfer Protocol (HTTP)
HTTP (Hypertext Transfer Protocol) est un protocole de communication utilisé sur Internet pour permettre l'échange de données entre les clients (navigateurs web, applications) et les serveurs web.
Il définit la manière dont les requêtes (demandes envoyées par le client) et les réponses (informations renvoyées par le serveur) doivent être structurées et transmises.
Une requête HTTP est généralement composée :
- d'une méthode (GET, POST, PUT, DELETE, etc.),
- d'un chemin ou ressource (ex. /index.html),
- et d'en-têtes contenant des informations contextuelles (type de contenu, cookies, authentification…).
Une réponse HTTP contient :
- un code de statut (200 OK, 404 Not Found, 500 Internal Server Error…),
- des en-têtes,
- et le corps de la réponse (ex. : contenu HTML d'une page web).
Evolution du protocole HTTP
HTTP/0.9 (1991)
- Première version expérimentale, apparue en 1991.
- Très simple : ne supportait que la méthode GET pour récupérer des documents HTML.
- Pas d'en-têtes ni de codes de statut : le serveur renvoyait directement le contenu demandé.
HTTP/1.0 (1996)
- Première version largement adoptée.
- Introduction de nouvelles méthodes comme POST et HEAD.
- Ajout d'en-têtes (headers) permettant de transmettre des informations supplémentaires (type de contenu, longueur…).
- Spécification explicite de la version du protocole dans les requêtes.
HTTP/1.1 (1997)
- Version dominante encore aujourd'hui dans de nombreux systèmes.
- Améliorations majeures :
- Keep-Alive : réutilisation d'une même connexion TCP pour plusieurs requêtes.
- Compression des en-têtes.
- Négociation de contenu (choix du format selon les capacités du client).
- Introduction du chunked transfer encoding et du pipelining pour accélérer les transferts.
HTTP/2 (2015)
- Conçu pour améliorer significativement la performance des sites web.
- Fonctionnalités clés :
- Multiplexage : plusieurs requêtes/réponses transitent simultanément sur une seule connexion TCP.
- Compression avancée des en-têtes.
- Réduction des problèmes liés au blocage de tête de ligne (Head-of-Line blocking).
HTTP/3 (2020)
- Basé sur QUIC (Quick UDP Internet Connections), un protocole fonctionnant sur UDP au lieu de TCP.
- Objectifs :
- Réduire la latence et accélérer l'établissement de connexion.
- Mieux gérer les perturbations et pertes de paquets grâce à des mécanismes intégrés.
- HTTP/3 est progressivement adopté et représente l'avenir des communications web rapides et sécurisées.
Sécurité
HTTPS (Hypertext Transfer Protocol Secure) est une extension sécurisée de HTTP. Elle ajoute une couche de chiffrement via TLS (Transport Layer Security), ce qui permet :
- Confidentialité : les données échangées entre le client et le serveur sont chiffrées, empêchant leur interception par des tiers.
- Intégrité : le contenu ne peut pas être altéré ou falsifié pendant le transfert.
- Authenticité : grâce aux certificats numériques émis par des autorités de certification (CA), l'utilisateur peut vérifier l'identité du serveur qu'il contacte.
Tip
HTTPS est aujourd'hui le standard de facto pour la navigation web : la plupart des sites et navigateurs imposent son usage par défaut, notamment pour la protection des données sensibles (banque, e-commerce, messagerie).
Ports
Port 80 (HTTP)
- Port par défaut pour les connexions HTTP non sécurisées.
- Lorsque vous saisissez une URL sans indiquer explicitement de port, le navigateur utilise automatiquement le port 80 pour établir la communication.
Port 443 (HTTPS)
- Port par défaut pour les connexions sécurisées via HTTPS (HTTP over TLS/SSL).
- C'est aujourd'hui le port le plus utilisé pour la navigation web sécurisée.
Ces numéros de port servent de points de destination permettant d'orienter les requêtes vers le bon service sur un serveur. Bien qu'ils puissent être personnalisés, les ports 80 et 443 sont les standards universels pour HTTP et HTTPS.
Port
Un port est un mécanisme de communication qui permet aux ordinateurs et aux dispositifs réseau d'envoyer et de recevoir des données.
Les ports servent à différencier les services et applications fonctionnant sur un même appareil ou serveur.
Numéro de port
- Identifié par un entier compris entre 0 et 65535.
- Oriente le trafic réseau vers une application ou un service précis.
Port de destination
- Indique à quel service doit être transmis le flux de données reçu.
- Exemple : un serveur web écoute sur le port 80 (HTTP) ou le port 443 (HTTPS).
Port source
- Généré par l'appareil émetteur, il permet au destinataire de savoir où renvoyer la réponse.
- Exemple : un client web utilise un port source temporaire aléatoire pour établir une connexion vers un serveur web.
Exemples
- 20 : FTP (File Transfer Protocol - Data Transfer)
- 21 : FTP (File Transfer Protocol - Command Control)
- 22 : SSH (Secure Shell)
- 25 : SMTP (Simple Mail Transfer Protocol)
- 53 : DNS (Domain Name System)
- 80 : HTTP (Hypertext Transfer Protocol)
- 123 : NTP (Network Time Protocol)
- 161 : SNMP (Simple Network Management Protocol)
- 194 : IRC (Internet Relay Chat)
- 443 : HTTPS (HTTP Secure)
Méthodes HTTP
Les méthodes HTTP sont des commandes qui indiquent au serveur web l'action à réaliser sur une ressource identifiée par une URI. Elles définissent le type d'opération souhaitée dans la communication entre client et serveur.
GET
- Utilisée pour récupérer des données depuis un serveur.
- Ne modifie pas l'état du serveur ou des ressources.
- Exemple : affichage d'une page web.
POST
- Utilisée pour envoyer des données au serveur afin de créer ou de mettre à jour une ressource.
- Couramment employée pour :
- Soumettre des formulaires web
- Transmettre des données d'authentification
- Effectuer des opérations qui modifient l'état du serveur
PUT
- Sert à mettre à jour ou créer une ressource spécifique à l'URI indiquée.
- Diffère de POST car elle est souvent idempotente : répéter la requête produit le même résultat.
DELETE
- Demande la suppression d'une ressource identifiée par l'URI.
- Supprime les données associées sur le serveur.
PATCH
- Applique partiellement des modifications à une ressource existante.
- Transmet uniquement les changements à effectuer au lieu de renvoyer toute la ressource.
HEAD
- Identique à GET, mais ne renvoie que les en-têtes de la réponse, sans le corps.
- Utile pour récupérer des métadonnées ou vérifier la disponibilité d'une ressource.
OPTIONS
- Permet de connaître les méthodes et options de communication disponibles pour une ressource.
- Sert notamment dans la gestion du CORS (Cross-Origin Resource Sharing).
CONNECT
- Utilisée pour établir une connexion réseau vers un serveur, généralement via un proxy.
- Sert notamment à créer un tunnel sécurisé pour HTTPS.
TRACE
- Sert au diagnostic et au débogage.
- Permet de retracer le chemin emprunté par une requête HTTP.
- Rarement utilisée aujourd'hui, car elle peut exposer des failles de sécurité.
Source : HTTP Semantics - RFC 9110
En-têtes HTTP
Les requêtes et réponses HTTP comportent des en-têtes (headers) qui véhiculent des métadonnées sur l'échange. Ces informations aident à préciser le contexte de la requête ou de la réponse, comme le type de contenu, la langue, les cookies, ou encore des détails techniques sur le client et le serveur.
➡️ En-têtes de requête (client → serveur) :
Host
- Généralement obligatoire en HTTP/1.1.
- Indique le nom de domaine du serveur ciblé (Host: www.exemple.com).
User-Agent
- Non obligatoire mais presque toujours présent.
- Informe le serveur sur le navigateur ou l'application cliente (User-Agent: Mozilla/5.0).
Accept
- Indique les types de contenu que le client est capable de traiter (HTML, JSON, XML, images…).
- Sert à la négociation de contenu (Accept: text/html, application/json).
⬅️ En-têtes de réponse (serveur → client) :
Status
- Obligatoire dans toutes les réponses HTTP.
- Contient le code de statut (200 OK, 404 Not Found, 500 Internal Server Error).
Server
- Optionnel.
- Indique le logiciel serveur utilisé (Server: Apache/2.4.1 (Unix)).
Content-Type
- Crucial : précise le type MIME du contenu (Content-Type: text/html; charset=UTF-8).
- Sans lui, le client ne saurait pas comment interpréter la réponse.
Content-Length
- Donne la taille en octets du corps de la réponse (Content-Length: 1234).
- Recommandé pour assurer l'intégrité et gérer le transfert.
Date
- Fournit la date et l'heure de génération de la réponse (Date: Tue, 12 Sep 2023 10:00:00 GMT).
- Utile pour le cache et la traçabilité.
Source : HTTP Semantics - RFC 9110
Code de statut HTTP
Les codes de statut HTTP (ou codes de réponse) sont des nombres à trois chiffres envoyés par un serveur web dans sa réponse à une requête. Ils indiquent au client (navigateur, API, application) le résultat de la requête et la marche à suivre éventuelle.
Série 1xx - Informations
- 100 Continue : le serveur a reçu la première partie de la requête et demande au client de continuer.
Série 2xx - Succès
- 200 OK : la requête a réussi et la réponse contient la ressource demandée.
- 201 Created : une nouvelle ressource a été créée avec succès (souvent utilisé après un POST).
- 204 No Content : la requête a réussi mais le serveur ne renvoie aucun contenu (utile pour une mise à jour réussie sans réponse).
Série 3xx - Redirection
- 301 Moved Permanently : la ressource a été déplacée définitivement vers une nouvelle URL.
- 302 Found (Moved Temporarily) : la ressource est temporairement disponible à une autre URL.
- 304 Not Modified : la ressource n'a pas changé depuis la dernière requête → le client peut utiliser sa version en cache.
Série 4xx - Erreurs côté client
- 400 Bad Request : la requête est incorrecte ou mal formée.
- 401 Unauthorized : accès refusé sans authentification valide.
- 403 Forbidden : accès refusé malgré une authentification valide (droits insuffisants).
- 404 Not Found : la ressource demandée n'existe pas ou n'a pas été trouvée.
Série 5xx - Erreurs côté serveur
- 500 Internal Server Error : erreur interne générique du serveur.
- 502 Bad Gateway : le serveur intermédiaire (proxy, passerelle) a reçu une réponse invalide du serveur en amont.
- 503 Service Unavailable : le serveur est temporairement indisponible (maintenance, surcharge).
Ces codes sont essentiels pour :
- Le diagnostic et le débogage côté développeurs
- La gestion des erreurs et des redirections
- L'optimisation des performances via la mise en cache (ex. 304)
Source : HTTP Semantics - RFC 9110
Hypertext Markup Language (HTML)
L'HyperText Markup Language (HTML) est le langage de balisage qui constitue le socle du World Wide Web. Il sert à structurer le contenu des pages web et à définir la manière dont les navigateurs doivent l'afficher.
En d'autres termes, HTML est le squelette d'une page web :
- Il organise les éléments (textes, images, liens, etc.)
- Il donne un sens au contenu
- Il permet aux utilisateurs de naviguer et interagir avec celui-ci
Système de balises
- HTML repose sur des balises (
<tag>
...</tag>
) qui encadrent le contenu et lui attribuent une signification. - Ces balises permettent de définir des éléments comme :
- Les titres (
<h1>
à<h6>
) - Les paragraphes (
<p>
) - Les listes (
<ul>
,<ol>
) - Les liens hypertextes (
<a>
) - Les images (
<img>
) - Les formulaires (
<form>
)
- Les titres (
Multimédia et interactivité
- HTML ne se limite pas au texte : il permet l'intégration de divers médias et ressources, comme :
- Les images
- Les vidéos
- Les fichiers audio
- Les graphiques vectoriels (SVG)
- Des contenus interactifs via canvas ou intégration de scripts
Note
Grâce à HTML, le contenu en ligne devient accessible, structuré et cohérent, offrant ainsi aux utilisateurs une expérience lisible et interactive à travers les navigateurs web.
Exemple
<!doctype html>
<html lang="fr">
<!-- Métadonnées et informations sur la page -->
<head>
<!-- Définition de l'encodage de caractères -->
<meta charset="utf-8" />
<!-- Titre de la page affiché dans la barre de titre du navigateur -->
<title>Page d'exemple</title>
</head>
<!-- Contenu affiché dans le navigateur web -->
<body>
<!-- Titre principal -->
<h1>Mon site Web</h1>
<!-- Paragraphe de texte -->
<p>Bienvenue sur ma page d'exemple.</p>
<!-- Image avec description alternative -->
<img src="example.png" alt="Image d'exemple" />
<!-- Titre secondaire -->
<h2>Liens utiles</h2>
<!-- Liste à puces non ordonnée -->
<ul>
<!-- Elément de liste avec un lien externe -->
<li>
<a href="https://www.example.com">Site Web d'exemple</a>
</li>
<!-- Elément de liste avec un lien interne -->
<li>
<a href="blog.html">Mon blog</a>
</li>
</ul>
<!-- Paragraphe de texte -->
<p>Merci d'avoir visité ma page !</p>
</body>
</html>
Résultat dans un navigateur web
Points clés
Le langage HTML et ses balises permettent de :
- Structurer sémantiquement et logiquement le contenu d'une page web.
- Intégrer des ressources multimédias (images, vidéos, fichiers audio, graphiques, formulaires, etc.).
Le langage CSS, complémentaire à HTML, permet de :
- Mettre en forme le contenu des pages web (couleurs, typographie, mise en page).
- Séparer la structure (HTML) de la présentation (CSS), facilitant ainsi la maintenance et la cohérence visuelle des sites.
Evolution de HTML
HTML 1.0 (1993)
- Première version publique, conçue par Tim Berners-Lee.
- Relativement simple, elle servait surtout à lier des documents hypertexte entre eux.
HTML 2.0 (1995)
- Première version véritablement standardisée.
- Introduction de nouvelles fonctionnalités comme les formulaires et l'insertion d'images.
HTML 3.2 (1997)
- Etape importante : ajout d'éléments de mise en page (tableaux, listes imbriquées, attributs de couleur).
- Cette version élargit considérablement les possibilités de présentation.
HTML 4.0 (1997)
- Mise à jour majeure.
- Meilleure prise en charge des feuilles de style CSS.
- Améliorations pour la création de formulaires et une structuration plus riche des documents.
HTML 4.01 (1999)
- Version de maintenance d'HTML 4.0.
- Correction d'erreurs et clarification de certaines spécifications.
XHTML (2000)
- Révision majeure basée sur la syntaxe XML.
- Plus stricte et cohérente qu'HTML 4.
- Voulue pour rendre le langage plus rigoureux, mais adoptée de façon limitée à cause de sa rigidité.
HTML5 (2014)
- Révolution majeure pour le web moderne.
- Nouvelles fonctionnalités clés :
- Balises sémantiques (
<header>
,<footer>
,<article>
,<section>
). - Prise en charge native de l'audio et de la vidéo (
<audio>
,<video>
). - Canvas pour le dessin et les animations interactives.
- Géolocalisation et nouvelles API JavaScript.
- Améliorations des formulaires (validation côté client, nouveaux types de champs).
- Stockage local (LocalStorage, SessionStorage) pour des applications web plus puissantes.
- Accent mis sur l'accessibilité et la sémantique.
- Balises sémantiques (
HTML Living Standard (depuis 2014)
- Aujourd'hui, HTML n'évolue plus en versions distinctes.
- Il est géré comme un standard vivant (Living Standard) par le WHATWG (Web Hypertext Application Technology Working Group).
- Cela signifie que les spécifications sont mises à jour en continu pour répondre aux besoins du web moderne.
Note
HTML est généralement utilisé avec :
- CSS (Cascading Style Sheets) → mise en page et styles visuels.
- JavaScript → interactivité et dynamisme.
Ces évolutions successives reflètent l'adaptation constante du web pour améliorer l'expérience utilisateur et répondre aux usages toujours plus variés (applications web, multimédia, mobilité).
World Wide Web Consortium (W3C)
Le W3C (World Wide Web Consortium) est une organisation internationale à but non lucratif qui joue un rôle central dans le développement et la standardisation du web. Son objectif est de garantir que les technologies web restent ouvertes, interopérables et accessibles à tous, tout en soutenant l'innovation continue.
Fondation et rôle
- Créé en 1994 par Tim Berners-Lee, l'inventeur du web.
- Regroupe des organisations, des entreprises et des experts du monde entier.
- Fonctionne comme un espace de collaboration internationale pour définir les standards du web.
Activités principales
- Publie des normes et recommandations techniques qui définissent la manière dont des technologies doivent être mises en œuvre, comme :
- HTML (HyperText Markup Language)
- CSS (Cascading Style Sheets)
- JavaScript
- XML et bien d'autres
- Objectif : assurer la compatibilité entre navigateurs et plateformes, et éviter la fragmentation du web.
En date du 12 septembre 2025, le consortium compte 347 membres (contre 360 en 2024, 412 en 2023 et 472 en 2022), parmi lesquels figurent les géants de la tech, comme Google, Apple, Meta, Amazon, et Microsoft.
Web Hypertext Application Technology Working Group (WHATWG)
Le WHATWG est une organisation essentielle dans l'évolution des technologies du web, notamment pour le développement de HTML et d'autres normes associées.
Elle se distingue par une approche ouverte, pragmatique et flexible, visant à répondre rapidement aux besoins du web moderne.
Fondation et objectifs
- Créée en 2004 par des employés d'Apple, de la fondation Mozilla et d'Opera Software.
- Sa création répondait aux préoccupations concernant la lenteur du processus de normalisation du W3C.
- Le WHATWG a adopté une méthode de travail plus agile et plus proche des besoins concrets des développeurs.
Travaux principaux
- Responsable du HTML Living Standard, une spécification vivante et mise à jour en continu.
- Contrairement aux versions figées (HTML4, HTML5…), le Living Standard évolue en permanence pour intégrer :
- Les nouvelles fonctionnalités des navigateurs
- Les meilleures pratiques actuelles
- Les exigences émergentes du web moderne
Organisation et contributions
- Actuellement dirigé par des employés des grands acteurs du secteur des navigateurs : Apple, Google, Microsoft et Mozilla.
- Toutefois, le processus est ouvert à tous : développeurs, chercheurs ou entreprises peuvent contribuer via des discussions publiques et GitHub.
Relations avec le W3C
Le W3C et le WHATWG collaborent mais ont des priorités différentes :
- W3C → publication de normes stables et officielles, avec un cycle de validation long.
- WHATWG → innovation plus rapide, adoption précoce de nouvelles fonctionnalités.
En 2019, un accord a été trouvé : le WHATWG est devenu le responsable unique du développement de HTML et DOM, tandis que le W3C continue de publier des recommandations basées sur ces travaux.
Par conséquent, la documentation officielle pour le langage HTML est le HTML Living Standard.
Note
Le World Wide Web est passé en trois décennies d'un projet de recherche au CERN à une infrastructure mondiale incontournable, utilisée quotidiennement par des milliards de personnes.
Fondé sur des technologies clés comme HTML, HTTP et les URL, il a évolué vers un système ouvert, interopérable et en constante adaptation grâce aux efforts du W3C et du WHATWG.
Au-delà de la technique, le web a profondément transformé la société : information, commerce, communication et culture dépendent aujourd'hui de cette plateforme universelle.
Ses évolutions futures (web sémantique, accessibilité renforcée, décentralisation avec le web 3.0) continueront d'influencer notre manière de vivre, d'apprendre et d'interagir.