Programmation Web — Chapitre 1

Introduction à la programmation Web

Fondations techniques, protocole HTTP, architecture client–serveur et syntaxe HTML5.

Objectifs pédagogiques

À l'issue de ce chapitre, l'étudiant sera capable de :

Partie 0 — Pourquoi apprendre le Web à l'ère de l'Intelligence Artificielle ?

Question légitime : « Pourquoi apprendre à coder quand l'IA peut générer du code plus vite ? »

Les assistants d'IA sont d'excellents outils de génération et d'aide au développement. Mais générer du code n'est pas la même chose que comprendre, valider, sécuriser et faire évoluer une application.

1. L'illusion du « clic magique »

Contexte métier & UX

L'IA ne connaît pas automatiquement les besoins réels des utilisateurs, les contraintes ergonomiques ou l'identité visuelle du projet.

Sécurité

Un code généré doit être audité : validation des entrées, XSS, injection SQL, authentification, autorisation, CORS, etc.

Accessibilité & SEO

Une structure HTML sémantique est importante pour les lecteurs d'écran et les moteurs de recherche.

Fiabilité

Un modèle peut produire des API obsolètes, des attributs inexistants ou des bibliothèques inadaptées.

2. Le pilote et le copilote

Pour exploiter correctement une IA, le développeur doit comprendre le problème et le code produit.

3. Le développeur devient architecte

Architecte système

Conçoit la structure globale et l'interconnexion des services.

Garant de la qualité

Valide les normes, la sécurité, l'accessibilité et les performances.

Décideur technique

Choisit les technologies adaptées aux contraintes techniques, économiques et humaines.

4. IA vs maîtrise humaine

AxeIAHumain
Production initialeGénération rapide de code répétitif.Spécification précise du besoin et cadrage du projet.
Analyse critiqueProduit une réponse à partir de ses modèles.Détecte incohérences, bugs et mauvaises hypothèses.
Sécurité & conformitéPeut générer des motifs vulnérables.Réalise les audits et applique les exigences de sécurité et d'accessibilité.
ÉvolutivitéPeut produire du code fragmenté ou difficile à maintenir.Refactoring et vision architecturale globale.
À retenir : l'IA est un outil puissant. La valeur du développeur réside dans sa capacité à comprendre, décider, vérifier et maîtriser le système qu'il construit.

Partie 1 — Qu'est-ce que le Web ?

Le World Wide Web (WWW) est un système hypertexte public fonctionnant sur Internet. Il permet de consulter des ressources à l'aide d'un navigateur.

Attention : Internet et le Web ne sont pas synonymes.

Internet

Infrastructure mondiale composée de réseaux interconnectés, de routeurs, de serveurs, de liens physiques et de protocoles réseau.

Web

Service applicatif fonctionnant au-dessus d'Internet, basé notamment sur HTTP/HTTPS, les URL, les navigateurs et les serveurs Web.

CritèreInternetWeb
NatureInfrastructure réseauService d'information hypertexte
OriginesARPANET dans les années 19601989, Tim Berners-Lee, CERN
ProtocolesTCP/IP, UDP, IPHTTP / HTTPS
ComposantsCâbles, routeurs, serveurs, adresses IPURL, HTML, navigateurs, serveurs Web

Autres services utilisant Internet

SMTP / IMAP / POP3FTP / SFTP SSHVoIPWebSocket BitTorrent

Partie 2 — Le protocole HTTP / HTTPS

HTTP (HyperText Transfer Protocol) est un protocole de la couche application utilisé pour les échanges entre clients et serveurs Web.

HTTP est fondamentalement stateless : chaque requête/réponse est indépendante. Des mécanismes comme les cookies et les sessions permettent ensuite de conserver un état applicatif.

[ CLIENT / NAVIGATEUR ] ──── Requête HTTP ────> [ SERVEUR WEB ] [ CLIENT / NAVIGATEUR ] <─── Réponse HTTP ───── [ SERVEUR WEB ]

HTTP vs HTTPS

CaractéristiqueHTTPHTTPS
Port par défaut80443
ChiffrementNonOui, via TLS
IntégritéNon garantieProtégée par TLS
Authentification du serveurNonCertificat X.509
Risque d'interceptionÉlevé sur un réseau non fiableFortement réduit grâce au chiffrement

Méthodes HTTP principales

GET

Récupérer une représentation d'une ressource. Devrait être sans effet de bord.

POST

Soumettre des données à une ressource, par exemple pour créer une ressource ou traiter un formulaire.

PUT

Remplacer la représentation d'une ressource cible.

DELETE

Demander la suppression d'une ressource.

Exemple : une requête HTTP

Requête
GET /index.html HTTP/1.1
Host: www.exemple.com
Accept: text/html
User-Agent: Mozilla/5.0
Réponse
HTTP/1.1 200 OK
Content-Type: text/html

<!doctype html>
<html>...</html>

Partie 3 — Architecture Client / Serveur

INTERNET │ ┌─────────┴─────────┐ │ │ [ CLIENT ] [ SERVEUR ] Front-end Back-end ───────── ──────── Navigateur Nginx / Apache / IIS HTML / CSS / JS Node.js / PHP / Python... │ │ └── Requêtes ──────┘ └── Réponses ──────┘

Client — Front-end

  1. Envoie des requêtes à la demande de l'utilisateur.
  2. Interprète HTML, CSS et JavaScript.
  3. Construit l'interface et gère les interactions.

Serveur — Back-end

  1. Écoute les requêtes entrantes.
  2. Exécute la logique métier.
  3. Accède éventuellement aux bases de données.
  4. Retourne HTML, JSON, fichiers ou autres ressources.

Partie 4 — Anatomie d'une URL et cycle de vie d'une requête

Décomposition d'une URL

https://www.exemple.com:8080/cours/html/index.html?section=1&lang=fr#partie3
ComposantExempleRôle
Schémahttps://Protocole utilisé.
Sous-domainewww.Sous-domaine de l'hôte.
Domaineexemple.comNom permettant d'identifier l'hôte.
Port:8080Port d'écoute du service.
Path/cours/html/index.htmlChemin vers la ressource.
Query string?section=1&lang=frParamètres clé=valeur envoyés au serveur.
Fragment#partie3Position dans le document ; non envoyé au serveur dans la requête HTTP.

Les 6 étapes du cycle de vie

  1. Saisie & DNS : le navigateur transforme le nom de domaine en adresse IP.
  2. Connexion : connexion TCP ; en HTTPS, négociation TLS.
  3. Requête HTTP : méthode, URL, en-têtes, cookies éventuels, etc.
  4. Traitement serveur : logique métier, accès aux données et préparation de la réponse.
  5. Réponse HTTP : code de statut, en-têtes et corps de réponse.
  6. Rendu : le navigateur analyse le HTML, construit le DOM et charge CSS, JavaScript et images.

Partie 5 — Les trois piliers du Web moderne

TechnologieRôleAnalogie
HTMLStructure et contenuLe squelette
CSSApparence et mise en pageLa peau et les vêtements
JavaScriptComportement et interactivitéLe système nerveux et les muscles
HTML + CSS + JavaScript
<button id="btn">Cliquez-moi</button>

<style>
  button { padding: 10px; }
</style>

<script>
  document.querySelector("#btn")
    .addEventListener("click", () => {
      alert("Bonjour !");
    });
</script>
Résultat

Partie 6 — Introduction au langage HTML

HTML (HyperText Markup Language) est un langage de balisage, et non un langage de programmation.

Langage de programmation

Permet d'exprimer une logique : variables, conditions, boucles, fonctions, etc.

Langage de balisage

Utilise des balises pour donner une structure et une signification au contenu.

Partie 7 — Balises, éléments et attributs HTML

Structure générale

Code HTML
<p class="important">
  Bonjour le Web !
</p>
Résultat

Un élément HTML standard peut être composé d'une balise ouvrante, d'un contenu et d'une balise fermante.

<p> Contenu de l'élément </p>

Balises vides (void elements)

Certaines balises ne contiennent pas de contenu et n'ont pas de balise fermante.

Exemple
<img src="photo.jpg" alt="Photo de profil">
<br>
<hr>
<input type="text" name="nom">

Les attributs

Les attributs fournissent des informations supplémentaires. Ils sont placés dans la balise ouvrante sous la forme nom="valeur".

Code
<a href="https://example.com"
   target="_blank">
  Visiter le site
</a>
Résultat

Attributs universels importants

AttributUtilisation
idIdentifie de manière unique un élément dans le document.
classAssocie un ou plusieurs éléments à une classe, notamment pour le CSS et JavaScript.
titleFournit une information complémentaire.
langIndique la langue du contenu.
hiddenIndique qu'un élément n'est pas actuellement affiché.

Balises HTML fréquemment utilisées

<h1>...<h6><p><a> <img><ul><ol> <li><table><form> <input><textarea><button> <header><nav><main> <section><article><footer>

Partie 8 — Le squelette standard d'un document HTML5

Voici une structure minimale moderne pour démarrer une page HTML5.

Code HTML
<!doctype html>
<html lang="fr">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, initial-scale=1.0">
  <title>Mon premier document HTML5</title>
</head>
<body>
  <h1>Bienvenue sur mon premier document HTML5</h1>
  <p>Ceci est un paragraphe de démonstration.</p>
</body>
</html>
Résultat dans le navigateur

Explication des éléments

ÉlémentRôle
<!doctype html>Déclare un document HTML5 et active le mode standard du navigateur.
<html lang="fr">Élément racine ; lang indique la langue principale.
<head>Contient les métadonnées et ressources du document.
<meta charset="UTF-8">Définit l'encodage des caractères.
<meta name="viewport"...>Permet une adaptation correcte de la page aux écrans mobiles.
<title>Définit le titre affiché dans l'onglet du navigateur.
<body>Contient le contenu visible de la page.

HTML sémantique

Code
<header>
  <h1>Portail d'apprentissage du Web</h1>
</header>

<main>
  <section>
    <h2>Introduction à HTML5</h2>
    <p>HTML5 structure le Web moderne.</p>
  </section>
</main>

<footer>
  © 2026 — Tous droits réservés.
</footer>
Résultat

Partie 9 — Formulaires HTML

Un formulaire permet de recueillir des informations saisies par l'utilisateur.

Code HTML
<form>
  <label for="nom">Nom :</label>
  <input id="nom" name="nom" type="text">

  <label for="email">E-mail :</label>
  <input id="email" name="email" type="email">

  <label for="message">Message :</label>
  <textarea id="message"
            name="message"></textarea>

  <button type="submit">Envoyer</button>
</form>
Résultat

Types d'input courants

TypeUsage
textTexte court.
emailAdresse e-mail.
passwordMot de passe.
numberValeur numérique.
dateDate.
checkboxChoix indépendant.
radioChoix exclusif dans un groupe.

Partie 10 — Synthèse globale

UTILISATEUR │ ▼ NAVIGATEUR CLIENT │ 1. Saisie URL ▼ RÉSOLUTION DNS │ Obtention de l'adresse IP ▼ REQUÊTE HTTP / HTTPS │ ▼ SERVEUR WEB (Apache / Nginx / IIS) │ ▼ TRAITEMENT BACK-END / BASE DE DONNÉES │ ▼ RÉPONSE HTTP (HTML / CSS / JS / JSON / images) │ ▼ NAVIGATEUR │ ▼ DOM + RENDU VISUEL
Idée centrale : le Web est un système distribué. Le navigateur demande des ressources ; les serveurs les traitent et répondent ; le navigateur interprète ensuite les ressources reçues.

Partie 11 — TP : Création d'un CV en ligne

Objectif : créer une première page Web personnelle valide en HTML5, accessible et sémantique.

Consignes

  1. Créer le dossier : TP1_Web, puis créer le fichier index.html.
  2. Créer le squelette : utiliser HTML5, lang="fr" et UTF-8.
  3. En-tête : ajouter un <h1> avec votre prénom et nom, une image avec un attribut alt pertinent et un paragraphe de présentation.
  4. Expériences : créer une section avec une liste non ordonnée et mettre les intitulés importants en évidence.
  5. Formations : créer une section contenant un tableau avec les colonnes Année, Diplôme et Établissement.
  6. Contact : créer un formulaire avec un champ nom, un champ e-mail, une zone de texte et un bouton d'envoi.
  7. Pied de page : ajouter un lien vers LinkedIn ou GitHub avec target="_blank" et une mention de droits d'auteur.
  8. Validation : valider le document avec le validateur HTML du W3C et corriger les éventuelles erreurs.

Structure attendue

Organisation HTML recommandée
<body>
  <header>
    <h1>Prénom NOM</h1>
    <img src="photo.jpg" alt="Photo de Prénom NOM">
    <p>Présentation...</p>
  </header>

  <main>
    <section>
      <h2>Expériences</h2>
      <ul>...</ul>
    </section>

    <section>
      <h2>Formations</h2>
      <table>...</table>
    </section>

    <section>
      <h2>Contact</h2>
      <form>...</form>
    </section>
  </main>

  <footer>...</footer>
</body>

À retenir

1. Internet ≠ Web

Internet est l'infrastructure ; le Web est un service qui fonctionne dessus.

2. HTTP

Le Web repose principalement sur un échange requête/réponse entre client et serveur.

3. HTML

HTML décrit la structure et le sens du contenu.

4. Sémantique

Utiliser les bonnes balises améliore lisibilité, accessibilité et compréhension du document.

5. Pratique

Le meilleur moyen d'apprendre HTML est d'écrire du code, l'ouvrir dans un navigateur et observer le résultat.

Quiz — Vérification des connaissances

Testez vos connaissances sur les notions étudiées dans ce chapitre. Une seule réponse est correcte pour chaque question.

1. Quelle est la principale différence entre Internet et le Web ?

2. Quel protocole est principalement utilisé pour le Web ?

3. Quel est le port par défaut généralement utilisé par HTTPS ?

4. Que signifie le terme « stateless » dans HTTP ?

5. Quelle méthode HTTP est principalement utilisée pour récupérer une ressource ?

6. Quel est le rôle principal du navigateur Web ?

7. Quel composant d'une URL correspond à « ?id=25 » ?

8. Quel composant d'une URL commence généralement par « # » ?

9. Quel est le rôle du DNS ?

10. Quel langage définit principalement la structure et le contenu d'une page Web ?

11. HTML est principalement :

12. Quelle déclaration indique qu'un document utilise HTML5 ?

13. Quel attribut permet d'identifier de manière unique un élément HTML ?

14. Quelle balise permet de créer un formulaire HTML ?

15. Quel attribut est particulièrement important pour l'accessibilité d'une image ?

Correction