Le protocole HTTP
Rappel sur le fonctionnement du protocole HyperText Transfer Protocol (HTTP) et comment Symfony l'implémente-t-il ?

Notions théoriques
Qu'est-ce que HTTP ?
HTTP (HyperText Transfer Protocol) est le protocole de communication utilisé sur le Web pour échanger des données entre un client (le navigateur) et un serveur (le serveur Web).
HTTP est un protocole de la couche application. Il repose sur TCP/IP et utilise par défaut :
- Port 80 pour HTTP
- Port 443 pour HTTPS (HTTP sécurisé avec TLS/SSL)
Le cycle Requête/Réponse
HTTP fonctionne sur un modèle fondamental : le client envoie une requête, le serveur renvoie une réponse.
Client (navigateur) Serveur Web
| |
| ------- Requête HTTP ----> |
| | (traitement)
| <------ Réponse HTTP ----- |
| |
La communication HTTP est toujours initiée par le client. Le serveur ne peut pas envoyer de données spontanément sans avoir reçu une requête au préalable (sauf avec des technologies complémentaires comme WebSockets ou Server-Sent Events).
Structure d'une requête HTTP
Une requête HTTP se compose de trois parties :
- La ligne de requête — méthode + URL + version HTTP
- Les en-têtes (headers) — informations sur le client, le format attendu, etc.
- Le corps (body) — données envoyées au serveur (uniquement pour POST, PUT, PATCH)
Exemple de requête GET (sans corps) :
GET /articles/42 HTTP/1.1
Host: www.exemple.fr
Accept: text/html
User-Agent: Mozilla/5.0
Exemple de requête POST (avec corps) :
POST /articles HTTP/1.1
Host: www.exemple.fr
Content-Type: application/json
Content-Length: 45
{"titre": "Mon article", "contenu": "Bonjour !"}