Introduction et fondamentaux du Web¶
Avant dâĂ©crire la moindre ligne de code, il faut comprendre dans quel environnement on travaille. Ce chapitre rĂ©pond Ă des questions que lâon se pose rarement parce que tout semble « marcher tout seul » : quâest-ce quâune page web au juste ? Que se passe-t-il entre le moment oĂč lâon tape une adresse et celui oĂč la page sâaffiche ? Et quel est exactement le rĂŽle du navigateur ?
Quâest-ce quâune page web ?¶
« Une page web est une unitĂ© de consultation du World Wide Web. Conçue pour ĂȘtre consultĂ©e avec un navigateur web et identifiĂ©e par une adresse web, elle peut ĂȘtre statique ou dynamique. » (Wikipedia)
DerriĂšre cette dĂ©finition un peu formelle se cache quelque chose de trĂšs simple. En pratique, une page web est un fichier â ou plus souvent un ensemble de fichiers â que le navigateur rĂ©cupĂšre via Internet et quâil « rend » sous forme de texte, dâimages, de vidĂ©os ou dâinteractions. Le navigateur ne reçoit donc pas une image figĂ©e de la page : il reçoit une description quâil doit lui-mĂȘme transformer en affichage. Cette distinction est fondamentale, et câest elle qui explique tout le reste.
Architecture simplifiée du Web¶
Le Web repose sur un échange permanent entre deux acteurs : celui qui demande du contenu et celui qui le fournit. On parle de modÚle client-serveur. Trois éléments suffisent à décrire ce fonctionnement.
ĂlĂ©ment |
RĂŽle |
Exemple concret |
|---|---|---|
Client |
Navigateur qui demande et affiche le contenu |
Firefox, Chrome, Safari, Edge |
Serveur |
Machine qui héberge les fichiers et les renvoie |
Serveur web Apache, Nginx |
URL |
Adresse unique qui identifie la ressource |
https://exemple.com/index.html |
Le client formule une demande, le serveur y rĂ©pond en envoyant les fichiers correspondants, et lâURL joue le rĂŽle dâadresse postale : elle dĂ©signe sans ambiguĂŻtĂ© la ressource voulue.
Statique ⷠDynamique¶
Toutes les pages ne sont pas fabriquĂ©es de la mĂȘme maniĂšre. On distingue deux grandes familles, selon la façon dont leur contenu est produit.
Type |
Description |
Fichiers |
|---|---|---|
Statique |
Le contenu ne change pas sans intervention manuelle |
Un fichier |
Dynamique |
Le contenu est généré à la volée |
Scripts cÎté serveur (PHP, Node.js, Python) |
Une page statique est livrĂ©e telle quâelle a Ă©tĂ© Ă©crite : le serveur se contente de renvoyer les fichiers. Une page dynamique, Ă lâinverse, est assemblĂ©e au moment de la demande, souvent Ă partir dâune base de donnĂ©es â câest ce qui permet dâafficher votre fil dâactualitĂ© ou votre panier dâachats, diffĂ©rents pour chaque visiteur.
Pour ce cours, nous ne traiterons que le statique : uniquement HTML + CSS. Câest la base indispensable, et tout ce que vous apprendrez ici reste valable lorsque lâon passe au dynamique.
HTML et CSS : décrire la page¶
Des rÎles complémentaires¶
Les deux langages se partagent le travail de maniĂšre Ă©tanche, et câest prĂ©cisĂ©ment ce qui rend le code propre et maintenable.
Le HTML dĂ©crit la structure : titres, paragraphes, images, liensâŠ
Le CSS dĂ©crit la prĂ©sentation : couleurs, marges, polices, dispositionsâŠ
LâintĂ©rĂȘt de cette sĂ©paration est quâon peut entiĂšrement changer lâapparence dâun site sans toucher Ă son contenu, et inversement. Câest lâun des grands principes du Web moderne, sur lequel nous reviendrons.
Cycle de vie dâune page web¶
On peut maintenant relier tout ce qui prĂ©cĂšde en suivant le parcours complet, depuis le clic de lâutilisateur jusquâĂ lâaffichage.
1. Utilisateur demande une page (URL)
â
2. Navigateur contacte le serveur (DNS â IP)
â
3. RequĂȘte HTTP envoyĂ©e
â
4. Serveur renvoie la réponse (HTML)
â
5. Téléchargement des ressources (CSS, images, JS)
â
6. Construction du DOM et du CSSOM
â
7. Création du Render Tree
â
8. Calcul du layout (positions, tailles)
â
9. Peinture (painting) â Affichage final
LâĂ©tape 2 mĂ©rite un mot : lâURL contient un nom de domaine (comme exemple.com), mais le rĂ©seau, lui, fonctionne avec des adresses numĂ©riques (les adresses IP). Le DNS est lâannuaire qui fait la traduction de lâun vers lâautre, Ă la maniĂšre dâun rĂ©pertoire tĂ©lĂ©phonique.
Les langages du Web¶
Le HTML et le CSS ne travaillent pas seuls. Ils sâinscrivent dans un petit Ă©cosystĂšme de langages, chacun avec un rĂŽle bien dĂ©fini.
Catégorie |
Langage(s) |
RĂŽle |
|---|---|---|
Langage de balisage |
HTML |
Décrit la structure du document |
Langage de feuille de style |
CSS |
Décrit la présentation |
Langage de script cÎté client |
JavaScript |
Ajoute de la logique interactive |
Langage de description de données |
JSON, XML |
Transporte des données structurées |
Une comparaison classique aide Ă fixer les idĂ©es : si une page web Ă©tait une maison, le HTML en serait les murs et la charpente, le CSS la peinture et la dĂ©coration, et JavaScript lâĂ©lectricitĂ© et la plomberie â tout ce qui rĂ©agit quand on appuie sur un interrupteur.
Les standards du W3C¶
Quâest-ce que le W3C ?¶
Le W3C (World Wide Web Consortium) est une organisation internationale fondĂ©e en 1994 par Tim Berners-Lee, lâinventeur du Web lui-mĂȘme. Sa mission : dĂ©velopper des standards ouverts pour le Web, afin que celui-ci reste un espace commun et interopĂ©rable plutĂŽt quâune collection de technologies propriĂ©taires incompatibles.
Pourquoi respecter les standards ?¶
Ăcrire du code conforme aux standards nâest pas une coquetterie : câest ce qui garantit que votre travail fonctionnera partout et durera dans le temps.
CompatibilitĂ© entre navigateurs : votre page sâaffiche de la mĂȘme façon sous Firefox, Chrome ou Safari.
Pérennité du code : un code standard reste lisible et fonctionnel des années plus tard.
AccessibilitĂ© pour tous et toutes, y compris les personnes utilisant des technologies dâassistance.
SEO amélioré : les moteurs de recherche comprennent mieux un code propre.
Maintenance facilitée, pour vous comme pour celles et ceux qui reprendront le projet.
Validation : vous pouvez vĂ©rifier la conformitĂ© de vos pages avec lâoutil officiel, https://validator.w3.org/.
Historique rapide â HTML & CSS¶
ConnaĂźtre les grandes Ă©tapes aide Ă comprendre pourquoi certaines pratiques sont aujourdâhui dĂ©couragĂ©es et dâautres recommandĂ©es.
HTML :
HTML 1.0 (1991) : 18 balises de base, le strict minimum pour relier des documents.
HTML 4.01 (1999) : on commence à séparer structure et présentation.
HTML5 (2014) : arrivée des balises sémantiques et de la vidéo/audio natifs, sans plug-in.
HTML Living Standard (2019+) : le standard évolue désormais en continu, sans numéro de version.
CSS :
CSS 1 (1996) : les propriétés de base.
CSS 2 (1998) : le positionnement.
CSS 3 (2011+) : une organisation en modules (Flexbox, Grid, animationsâŠ) qui continuent dâĂ©voluer indĂ©pendamment.
đĄ Aujourdâhui : plutĂŽt quâune grande version monolithique, le Web progresse par Ă©volutions modulaires et continues. Câest une bonne nouvelle : les nouveautĂ©s arrivent rĂ©guliĂšrement, sans tout casser.
Protocoles HTTP vs HTTPS¶
LâĂ©change entre le client et le serveur suit un protocole : un ensemble de rĂšgles de communication. Il en existe deux variantes, dont une seule est aujourdâhui acceptable.
Caractéristique |
HTTP |
HTTPS |
|---|---|---|
Sécurité |
Données en clair |
Données chiffrées (TLS/SSL) |
Port |
80 |
443 |
Certificat |
Aucun |
Certificat SSL/TLS requis |
Usage |
â ïž DĂ©prĂ©ciĂ© |
â Standard actuel |
Navigateur |
« Non sécurisé » |
Cadenas đ |
La diffĂ©rence tient en un mot : le chiffrement. En HTTP, les donnĂ©es circulent en clair et peuvent ĂȘtre interceptĂ©es et lues ; en HTTPS, elles sont chiffrĂ©es de bout en bout. Câest pourquoi les navigateurs signalent dĂ©sormais les sites en HTTP comme « non sĂ©curisĂ©s » et affichent un cadenas pour ceux en HTTPS.
Structure dâun document HTML¶
Tout document HTML repose sur le mĂȘme squelette. Le voici dans sa forme minimale, celle que vous recopierez au dĂ©but de chaque nouvelle page :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Mon titre</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
</body>
</html>
Ce gabarit nâa rien dâarbitraire : chaque ligne a une fonction prĂ©cise, que nous dĂ©taillons ci-dessous.
Décryptage de la structure HTML¶
<!DOCTYPE html>indique au navigateur quâil a affaire au standard HTML5. Cette ligne se place toujours en tĂȘte de fichier.<html lang="fr">est le conteneur racine : tout le document tient Ă lâintĂ©rieur. LâattributlangprĂ©cise la langue, ce qui aide les lecteurs dâĂ©cran et les moteurs de recherche.<head>regroupe les mĂ©tadonnĂ©es : le titre, lâencodage, les liens vers les feuilles de style. Rien de ce qui sây trouve nâapparaĂźt directement dans la page.<meta charset="UTF-8">fixe lâencodage des caractĂšres. UTF-8 gĂšre les accents et la quasi-totalitĂ© des alphabets : sans lui, vos « Ă© » et « à » risquent de sâafficher de travers.<title>donne le titre affichĂ© dans lâonglet du navigateur (et repris dans les rĂ©sultats de recherche).<link rel="stylesheet">relie la feuille de style CSS au document.<body>contient enfin le contenu visible : tout ce que verra lâinternaute.
La rĂšgle Ă retenir : le <head> concerne le navigateur et les machines, le <body> concerne lâhumain qui consulte la page.
Balises de base¶
Quelques balises reviennent dans presque toutes les pages. En voici les plus courantes.
Balise |
Usage |
Exemple |
|---|---|---|
|
Titres hiérarchisés |
|
|
Paragraphe |
|
|
Listes non ordonnées / ordonnées |
|
|
Lien hypertexte |
|
|
Image |
|
Deux rĂšgles importantes mĂ©ritent quâon sây arrĂȘte dĂšs maintenant, car elles touchent Ă lâaccessibilitĂ© :
Lâattribut
altde<img>est obligatoire. Il dĂ©crit lâimage pour les personnes qui ne peuvent pas la voir et sâaffiche si lâimage ne charge pas. Une image sansaltest une image muette.Il faut respecter la hiĂ©rarchie des titres (
h1, puish2, puish3âŠ), sans sauter de niveau. Cette hiĂ©rarchie nâest pas quâune question de taille de texte : câest le plan du document, celui que suivent les lecteurs dâĂ©cran et les moteurs de recherche.
Introduction au CSS¶
Une page constituée uniquement de HTML est parfaitement fonctionnelle, mais austÚre : texte noir sur fond blanc, tout aligné à gauche. Le CSS entre en jeu pour la mettre en forme. Voici un premier exemple, lié au HTML précédent par la balise <link> :
/* style.css */
body {
font-family: Arial, sans-serif;
background-color: #fafafa;
margin: 20px;
}
h1 {
color: #2c3e50;
}
p {
line-height: 1.5;
}
Lisez ce fichier comme une suite de consignes : « pour le body, utilise telle police, tel fond, telle marge ; pour les h1, applique telle couleur ; pour les p, tel interligne ». Le navigateur applique ces consignes à chaque élément concerné.
Structure dâune rĂšgle CSS¶
Toute rĂšgle CSS suit le mĂȘme moule, quâil faut bien avoir en tĂȘte car on le retrouvera des centaines de fois :
sélecteur {
propriété: valeur;
}
Le sélecteur cible les éléments HTML à styliser (
body,h1,pâŠ).La propriĂ©tĂ© dĂ©signe lâaspect que lâon veut modifier (
color,marginâŠ).La valeur prĂ©cise ce que lâon applique (
#2c3e50,20pxâŠ).
Une rÚgle peut contenir autant de couples propriété : valeur que nécessaire, chacun terminé par un point-virgule. Cette simplicité apparente est la force du CSS : tout repose sur cette brique élémentaire.
Mise en forme simple¶
Pour commencer à donner du caractÚre à une page, quelques propriétés suffisent.
Propriété |
Exemple |
Effet |
|---|---|---|
|
|
Couleur du texte |
|
|
Couleur de fond |
|
|
Espaces externes |
|
|
Espaces internes |
|
|
Alignement du texte |
La distinction entre margin et padding est une source classique de confusion, alors fixons-la tout de suite : la frontiĂšre de rĂ©fĂ©rence est la bordure de lâĂ©lĂ©ment.
Margin : lâespace Ă lâextĂ©rieur de la bordure, qui Ă©loigne lâĂ©lĂ©ment de ses voisins.
Padding : lâespace Ă lâintĂ©rieur de la bordure, qui Ă©loigne le contenu de cette bordure.
Nous y reviendrons longuement avec le Box Model : ces notions sont au cĆur de la mise en page.
En résumé¶
Vous savez dĂ©sormais ce quâest une page web, comment elle circule sur le rĂ©seau, et quel est le rĂŽle respectif du HTML et du CSS. Vous avez aussi rencontrĂ© vos premiĂšres balises et vos premiĂšres rĂšgles de style. La suite consiste Ă approfondir le HTML, en commençant par une question essentielle : comment structurer un document pour quâil ait du sens, pour les humains comme pour les machines.