Comment le Web fonctionne

Comprendre les fondamentaux

Utilisez les flèches, cliquez ou glissez pour naviguer

Plan de la présentation

1. Le cycle requête/réponse HTTP

Comment les navigateurs communiquent

2. Le pipeline de rendu

Du code HTML à l'écran

3. HTML5 sémantique

Structurer le contenu intelligemment

4. Formulaires accessibles

Créer des formulaires pour tous

5. Les DevTools

Explorer et déboguer les pages web

Qu'est-ce que HTTP ?

HyperText Transfer Protocol

Analogie : Le facteur qui livre des lettres

Rôle : Communication entre navigateur et serveur

Le navigateur = client qui envoie des requêtes

Le serveur = ordinateur qui répond aux requêtes

Le parcours d'une requête

1

L'utilisateur tape une URL dans le navigateur

2

Le navigateur résout l'adresse IP via DNS

3

Connexion TCP établie avec le serveur

4

Envoi de la requête HTTP

5

Le serveur traite la requête

6

Réponse renvoyée avec un code de statut

7

Le navigateur affiche le résultat

Méthodes HTTP courantes

GET

Récupérer des données

Ex: Charger une page web

POST

Envoyer des données

Ex: Soumettre un formulaire

PUT

Modifier une ressource

Ex: Mettre à jour un profil

DELETE

Supprimer une ressource

Ex: Supprimer un compte

Codes de statut HTTP

2xx - Succès

200 OK - Requête réussie

201 Created - Ressource créée

3xx - Redirection

301 - Déplacement permanent

302 - Déplacement temporaire

4xx - Erreur client

404 Not Found - Page introuvable

403 Forbidden - Accès refusé

5xx - Erreur serveur

500 - Erreur interne

503 - Service indisponible

Le pipeline de rendu

De la réponse HTML à l'affichage

Le navigateur ne montre pas le HTML directement

Il doit le transformer en pixels à l'écran

Étape 1 - Le DOM

Document Object Model

• Arbre de tous les éléments HTML

• Chaque balise devient un "nœud"

• Structure hiérarchique du document

<html>

<head>...</head>

<body>

<h1>Titre</h1>

<p>Paragraphe</p>

</body>

</html>

Étape 2 - Le CSSOM

CSS Object Model

• Le navigateur lit le CSS

• Crée un arbre des styles

• Associe chaque règle aux éléments

body {

font-family: Arial;

background: white;

}

h1 {

color: purple;

font-size: 2rem;

}

Étape 3 - Le Render Tree

DOM + CSSOM = Render Tree

Caractéristiques :

• Fusion du DOM et CSSOM

• Contient uniquement ce qui est visible

• Les éléments cachés (display: none) sont exclus

Étape 4 - Layout (Mise en page)

Calcul de la position de chaque élément

• Détermine la taille de chaque élément

• Calcule la position sur l'écran

• Prend en compte les dimensions du viewport

Le navigateur répond aux questions :

  • → Où placer cet élément ?
  • → Quelle largeur ? Quelle hauteur ?
  • → Comment les éléments se chevauchent-ils ?

Étape 5 - Paint (Peinture)

Remplissage des pixels à l'écran

🎨

Couleurs

📐

Bordures

🖼️

Images

C'est à cette étape que vous voyez enfin la page s'afficher !

Pipeline de rendu - Récapitulatif

HTML

DOM

DOM
+
CSSOM

Render Tree

Layout

Paint

Affichage à l'écran

Pourquoi du HTML sémantique ?

Signification

Le contenu a du sens pour les machines

Accessibilité

Les lecteurs d'écran comprennent mieux

SEO

Les moteurs de recherche indexent mieux

Maintenance

Le code est plus lisible pour les développeurs

Les balises HTML5 sémantiques

<header>

En-tête de la page ou section

<nav>

Navigation principale

<main>

Contenu principal de la page

<article>

Contenu autonome et réutilisable

<section>

Regroupement thématique

<footer>

Pied de page ou de section

Structure type d'une page

<header>

<nav>

<a href="/">Accueil</a>

<a href="/about">À propos</a>

</nav>

</header>

<main>

<article>

<section>

<h1>Titre de l'article</h1>

<p>Contenu...</p>

</section>

</article>

</main>

<footer>

<p>© 2024 Mon site</p>

</footer>

Bonnes pratiques

Utiliser les bonnes balises au bon endroit

Une navigation dans <nav>, un article dans <article>

Ne pas tout mettre dans des <div>

Les div n'ont aucune signification sémantique

Respecter la hiérarchie des titres

<h1> → <h2> → <h3> (un seul h1 par page)

Formulaires HTML accessibles

Pour que tout le monde puisse les utiliser

👁️

Handicap visuel

Lecteurs d'écran

⌨️

Navigation clavier

Tabulation

🎯

Étiquettes claires

Instructions précises

Les éléments de base

<input>

text, email, password, number...

<label>

Obligatoire pour l'accessibilité !

<button>

Bouton de soumission

<textarea>

Texte multiligne

<select> + <option>

Liste déroulante

Validation native HTML5

required

Champ obligatoire

type="email"

Validation du format email

minlength / maxlength

Longueur minimale / maximale

pattern="[0-9]{5}"

Expression régulière personnalisée

type="number" min="0" max="100"

Valeur numérique dans une plage

Introduction aux attributs ARIA

Accessible Rich Internet Applications

aria-label

Ajoute une description accessible

<button aria-label="Fermer">×</button>

aria-describedby

Lie un champ à sa description

role

Définit le rôle sémantique d'un élément

<div role="alert">Erreur!</div>

Exemple de formulaire accessible

<form action="/contact" method="POST">

<label for="name">Nom complet *</label>

<input type="text" id="name" name="name"

required

aria-describedby="name-hint">

<small id="name-hint">Ex: Jean Dupont</small>

<label for="email">Email *</label>

<input type="email" id="email" required>

<label for="message">Message *</label>

<textarea id="message" required

minlength="10"></textarea>

<button type="submit">Envoyer</button>

</form>

Les DevTools

Outils de développement intégrés

Chrome

Firefox

Safari

Edge

Raccourci : F12 ou Cmd+Option+I

L'onglet Elements / Inspecteur

🔍

Voir le DOM en direct

Explorer la structure HTML de la page

✏️

Modifier le HTML et CSS

Tester des changements en temps réel

🎨

Trouver les styles appliqués

Voir quelles règles CSS s'appliquent à un élément

L'onglet Network

Voir toutes les requêtes

Images, scripts, styles, API calls...

Temps de chargement

Waterfall montrant la durée de chaque ressource

En-têtes et réponses

Inspecter les détails de chaque requête HTTP

Démonstration pratique

1. Inspecter une page

Clic droit → "Inspecter" sur n'importe quel élément

2. Modifier un élément

Double-cliquer sur le HTML ou CSS pour éditer

3. Observer les requêtes réseau

Ouvrir l'onglet Network puis recharger la page

Autres onglets utiles

Console

Messages d'erreur JavaScript

Exécuter du code JS

Application

Cookies, localStorage

Service Workers

Performance

Analyse de rendu

Optimisation

Résumé

HTTP

Communication client-serveur

Pipeline de rendu

HTML → DOM → CSSOM → Affichage

HTML sémantique

Accessibilité et SEO

Formulaires

Validation et accessibilité

DevTools

Explorer et déboguer vos pages

Questions ?

Merci pour votre attention !