Caractéristiques fondamentales
HTTP (HyperText Transfer Protocol) constitue le pilier des communications web, permettant l'échange de ressources comme des fichiers HTML, des images ou des données dynamiques entre serveurs et navigateurs. Ce protocole repose sur TCP/IP pour garantir la transmission fiable des données.
- Simplicité : les requêtes spécifient uniquement la méthode et le chemin demandé
- Flexibilité : grâce à l'en-tête Content-Type, le client peut indiquer le format des données attendues
- Connexion non persistante : par défaut, chaque échange indépendant clôture la connexion après traitement
- Sans état : chaque requête est isolée, sauf mécanismes d'état comme les cookies pour maintenir des sessions
Anatomie d'une URL
Une URL (Uniform Resource Locator) identifie de manière unique une ressource sur internet. Sa structure typique suit le schéma :
[protocole]://[hôte]/[ressource]Composants essentiels :
- Protocole : détermine le protocole de couche transport (HTTP, HTTPS, FTP...)
- Hôte : nom de domaine ou adresse IP du serveur
- Port : numéro de port optionnel (défaut 80 pour HTTP, 443 pour HTTPS)
- Ressource : chemin vers le fichier demandé (ex: /page.html)
Paramètres optionnels :
- Paramètres de requête après '?' : ex. ?clé=valeur
- Ancre après '#' : ex. #section1
Requête HTTP
Une requête client se compose de quatre sections séparées par des sauts de ligne :
- Ligne de requête : méthode, chemin et version du protocole
- En-têtes : métadonnées au format clé:valeur
- Ligne vide : séparateur obligatoire
- Corps : données optionnelles (principalement pour POST)
Exemple de requête GET modifié :
GET /ressources/page.html HTTP/1.1
Host: serveur.exemple.fr
Connection: keep-alive
Accept: text/html
User-Agent: NavigateurPersonnalise/2.0
Réponse HTTP
La réponse du serveur comprend :
- Ligne de statut : version, code numérique et message
- En-têtes : informations sur la réponse
- Ligne vide
- Corps : contenu demandé
Exemple de réponse :
HTTP/1.1 200 OK
Date: Lun, 15 Avr 2024 09:30:00 GMT
Content-Type: text/html; charset=UTF-8
Server: MonServeur/3.0
Content-Length: 1245
Méthodes HTTP courantes
| Méthode | Description |
|---|---|
| GET | Récupère une représentation de la ressource ciblée |
| POST | Soumet des données pour traitement (formulaire, upload) |
| PUT | Remplace intégralement la ressource ciblée |
| DELETE | Supprime la ressource spécifiée |
| PATCH | Applique des modifications partielles à une ressource |
En-têtes HTTP importants
En-têtes de requête
- Host : nom d'hôte du serveur cible
- Connection : directives de gestion de connexion (ex: keep-alive)
- Cache-Control : politiques de mise en cache (ex: max-age=3600)
- Accept : types MIME acceptés par le client
- Cookie : données de session envoyées au serveur
En-têtes de réponse
- Server : logiciel serveur utilisé
- Content-Type : format du corps de la réponse
- Cache-Control : directives de cache détaillées (no-cache, must-revalidate...)
- Set-Cookie : envoie des cookies au client
- ETag : signature de la ressource pour validation de cache
Codes de statut HTTP
Ces codes à trois chiffres catégorisent le résultat de la requête :
- 1xx : Informationnel (100 Contiune)
- 2xx : Succès (200 OK, 201 Created)
- 3xx : Redirection (301 Moved Permanently, 304 Not Modified)
- 4xx : Erreur client (400 Bad Request, 404 Not Found)
- 5xx : Erreur serveur (500 Internal Server Error, 503 Service Unavailable)