# TP Introduction au langage HTML5
**Spécialité NSI - Première**
---
## Objectifs du TP
- Comprendre l'architecture client-serveur et le protocole HTTP
- Découvrir la structure d'une page HTML5
- Maîtriser les balises HTML essentielles
- Créer une page web complète
**Durée estimée** : 2h
**Matériel** : PC + Navigateur (Firefox, Chrome) + Éditeur de code (VS Code, Notepad++)
---
## Partie A : Comment fonctionne le Web ? (20 min)
### A.1 L'architecture client-serveur
Quand vous tapez une adresse web dans votre navigateur, que se passe-t-il ?
```
┌─────────────┐ ┌─────────────┐
│ │ (1) Requête HTTP │ │
│ NAVIGATEUR │ ─────────────────────────► │ SERVEUR │
│ (Client) │ │ WEB │
│ │ ◄───────────────────────── │ │
│ │ (2) Réponse (code HTML) │ │
└─────────────┘ └─────────────┘
```
1. **Le client (navigateur)** envoie une **requête HTTP** au serveur
2. **Le serveur** renvoie le **code HTML** de la page demandée
3. **Le navigateur interprète** le code et affiche la page
### A.2 Le protocole HTTP
**HTTP** (*HyperText Transfer Protocol*) est le protocole utilisé sur Internet depuis 1990 pour transférer des pages web.
Une **URL** (*Uniform Resource Locator*) est l'adresse d'une ressource sur le web :
```
https://www.wikipedia.org/wiki/HTML
└─┬─┘ └──────┬──────┘ └────┬────┘
protocole serveur chemin
```
### A.3 Le HTML
**HTML** (*HyperText Markup Language*) est un langage de **balisage** qui permet de structurer le contenu d'une page web : texte, images, liens...
> **Important** : HTML structure le contenu (le fond), CSS gère l'apparence (la forme).
**Exercice A.1** : Ouvrez n'importe quelle page web, faites un clic droit → "Afficher le code source". Observez la structure du code HTML.
---
## Partie B : Structure d'une page HTML5 (30 min)
### B.1 Les balises
Les pages HTML sont composées de **balises** entourées de chevrons `< >`.
Il existe deux types de balises :
**Balises en paires** (ouvrante + fermante) :
```html
Ceci est un paragraphe.
Ceci est un autre paragraphe.
``` Pour un simple retour à la ligne dans un paragraphe : `Ce mot est important.
Ce mot est mis en valeur.
Ce mot est surligné.
``` | Balise | Signification | Rendu par défaut | |--------|---------------|------------------| | `` | Important | **gras** | | `` | Emphase | *italique* | | `` | Marqué | surligné | > **Note** : Ces balises indiquent le **sens** du texte, pas son apparence. L'apparence peut être modifiée en CSS. ### C.4 Les listes **Liste non ordonnée** (à puces) : ```htmlVisitez le site Python !
``` ### D.2 Lien vers une page de votre site (lien relatif) Si `page2.html` est dans le même dossier : ```html Aller à la page 2 ``` Si `page2.html` est dans un sous-dossier `pages/` : ```html Aller à la page 2 ``` Si `page2.html` est dans le dossier parent : ```html Aller à la page 2 ``` ### D.3 Lien vers une ancre (même page) Pour créer un sommaire cliquable sur une longue page : ```html Aller à la section 2
```
| Attribut | Rôle | Obligatoire |
|----------|------|-------------|
| `src` | Chemin vers l'image | Oui |
| `alt` | Texte alternatif (accessibilité) | Oui |
| `width` | Largeur en pixels | Non |
| `height` | Hauteur en pixels | Non |
### E.2 Formats d'images pour le web
| Format | Usage |
|--------|-------|
| **JPEG** (.jpg) | Photos |
| **PNG** (.png) | Illustrations, logos, transparence |
| **GIF** (.gif) | Animations simples |
| **SVG** (.svg) | Icônes, logos vectoriels |
| **WebP** (.webp) | Format moderne, bonne compression |
### E.3 Image cliquable
```html
```
**Exercice E.1** : Téléchargez une image, placez-la dans un dossier `images/` et insérez-la dans votre page.
---
## Partie F : Les tableaux (25 min)
### F.1 Structure de base
```html
| Ligne 1, Cellule 1 | Ligne 1, Cellule 2 |
| Ligne 2, Cellule 1 | Ligne 2, Cellule 2 |
| ` | Définit une cellule (*table data*) | | ` | ` | Définit une cellule d'en-tête (*table header*) |
| `
| ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|