répertoire (sur le disque dur de l'ordinateur)
- Définition d'une requête HTTP
- concept de base
- Explication de l'analogie (exemple de commande en ligne)
- Structure d'une requête HTTP
- Ligne de la demande, en-tête de la demande, corps de la demande
- Comparaison des méthodes de demande les plus courantes
- Fonctionnement des requêtes HTTP
- Processus d'interaction client-serveur
- Codes d'état et mécanismes de réponse
- Types courants de requêtes HTTP
- OBTENIR, AFFICHER, PLACER, SUPPRIMER
- Déclaration de sécurité et d'idempotence
- Applications pratiques et outils de débogage
- Outils pour les développeurs de navigateurs
- Exemple de Postman et cURL
- Sécurité et bonnes pratiques
- Foire aux questions (FAQ)
1) Définition d'une requête HTTP
concept de base
La requête HTTP est un format de communication standard permettant aux clients (par exemple, les navigateurs, les applications) d'initier des commandes d'opération au serveur, en suivant les règles du protocole HTTP. Il s'agit de la pierre angulaire de l'interaction des données sur le web, qui détermine les ressources que le client souhaite obtenir ou les opérations à effectuer.
analogie
Supposons que vous passiez une commande sur une plateforme de commerce électronique :
- Vous (client) : soumettez une commande (demande d'achat d'un article)
- Système de commande (requête HTTP) : spécifier l'identifiant du produit, la quantité, l'adresse de livraison (paramètres structurés)
- Entrepôt (côté serveur) : analyse les commandes et les traite, renvoie les colis (données de réponse).
Une requête HTTP est comme une commande, elle indique au serveur ce qui doit être fait dans un format standard.
2) Structure des requêtes HTTP
Trois composantes principales
http
GET /api/produits/123 HTTP/1.1 --> ligne de requête
Host : api.example.com --> en-tête de la requête
User-Agent : Mozilla/5.0
Accept : application/json
{ --> corps de la requête (uniquement pour certaines méthodes)
"name" : "Nouveau produit"
}
1. ligne de demande
- Méthodes : définir le type d'opération (par exemple GET, POST)
- Chemin : adresse de la ressource (par exemple, /api/produits)
- Version du protocole : HTTP/1.1 ou HTTP/2
2. les en-têtes de la demande
- Transmission des métadonnées :
- Content-Type : format des données (par exemple application/json)
- Autorisation : jeton d'authentification
- Cache-Control : Politique de mise en cache
3. l'ensemble des demandes
- Uniquement pour POST, PUT, etc.
- Transporter des données structurées (JSON, XML, etc.)
3. le fonctionnement des requêtes HTTP
processus interactif
- Le client construit la demande : définir la méthode, l'URL, les en-têtes, les données.
- Envoi au serveur : transmission via le protocole TCP/IP
- Traitement côté serveur : vérification des autorisations, exécution de la logique, interrogation de la base de données.
- Réponse en retour : contient le code d'état et les données de résultat
Code de statut Classification
code d'état | formulaire | exemple typique |
---|---|---|
2xx | succès | 200 OK (requête réussie) |
3xx | redirections | 301 Moved Permanently |
4xx | erreur côté client | 404 La ressource n'existe pas |
5xx | erreur côté serveur | 500 Erreur interne du serveur |
4. les types courants de requêtes HTTP
Comparaison des méthodes de base
les méthodologies | utiliser | idempotence (math.) | la sécurité | soutien du demandeur |
---|---|---|---|---|
GET | Accès aux ressources | être | être | bouché |
POST | Créer des ressources ou soumettre des données | bouché | bouché | être |
PUT | Mettre à jour l'ensemble de la ressource | être | bouché | être |
DELETE | Supprimer les ressources | être | bouché | bouché |
exemple de scénario
- GET : charger la page détaillée du produit http
GET /produits/123 HTTP/1.1
- POST : Soumettre le formulaire d'enregistrement de l'utilisateur http
POST /s HTTP/1.1 Content-Type : application/json { "name" : "John", "email" : "john@example.com" }
5. applications pratiques et outils de débogage
Outils de développement (navigateur)
- Appuyez sur F12 pour ouvrir la console → Onglet Réseau
- Voir les détails de la demande (En-tête/Réponse)
Exemple de cURL
bash
Exemple de requête GET #
curl -X GET "https://api.example.com/products/123"
Exemple de requête POST #
curl -X POST "https://api.example.com/s" \N -H "Content-Type : application/json" \N
-H "Content-Type : application/json" \N- -d '{"nom" : "Jean")
-d '{"name" : "John"}'
6. la sécurité et les bonnes pratiques
Principes fondamentaux
- HTTPS : toujours utiliser une transmission cryptée (éviter HTTP en clair)
- Sécurité de l'en-tête de la demande :
- Définition d'une politique de sécurité du contenu pour se défendre contre les XSS
- Utilisez Authorization : Bearer pour gérer les autorisations.
- Validation des données : le serveur doit vérifier la légitimité des paramètres de la demande.
Spécification de conception RESTful
- Les chemins d'URL utilisent le nom au pluriel (par exemple, /api/produits).
- Correspondant aux opérations CRUD avec les méthodes HTTP
7. les questions fréquemment posées (FAQ)
Q1 : Quelle est la différence entre GET et POST ?
- Les paramètres GET se trouvent dans l'URL, avec une limite de longueur ; les données POST se trouvent dans le corps de la requête, ce qui est plus sûr et prend en charge les données volumineuses (big data).
Q2:Comment choisir entre PUT et PATCH ?
- PUT remplace la ressource entière, PATCH ne met à jour que certains champs.
Q3:Comment éviter les demandes POST en double ?
- Désactivation des clics en double au niveau frontal + conception de l'idempotence au niveau du serveur (par exemple, génération d'identifiants de demande uniques).
Q4 : Comment résoudre le problème des requêtes interdomaines (CORS) ?
- Le serveur définit l'en-tête de réponse Access-Control-Allow-Origin.