- cURL / curl
- Outil en ligne de commande open source et bibliothèque libcurl, pour envoyer des requêtes de protocoles comme HTTP/HTTPS/FTP en ligne de commande via URL, c'est l'outil le plus utilisé par les développeurs pour déboguer les APIs.
- Méthode HTTP
- Action de requête HTTP, les plus courantes sont GET (lire), POST (créer), PUT (mise à jour complète), PATCH (mise à jour partielle), DELETE (supprimer), HEAD (obtenir en-têtes), OPTIONS (consulter les capacités du serveur).
- En-tête (Header)
- Paires clé-valeur de métadonnées dans la requête HTTP, comme Content-Type, Authorization, User-Agent, Cookie, Accept, etc., spécifiées dans curl via -H/--header.
- Corps (Body)
- Partie données de la requête HTTP, courante dans POST/PUT/PATCH, spécifiée dans curl via -d/--data/--data-binary/-F, les formats courants sont JSON, form-urlencoded, multipart/form-data.
- Content-Type
- En-tête de requête/réponse indiquant le type de média du body. application/json indique JSON, application/x-www-form-urlencoded indique formulaire codé URL, multipart/form-data indique formulaire d'upload de fichiers.
- Authentification Basic
- Authentification HTTP de base, transmet utilisateur et mot de passe via l'en-tête Authorization: Basic base64(user:pass), spécifiée dans curl avec -u user:pass.
- Bearer Token
- Méthode d'authentification basée sur des tokens, transmise via l'en-tête Authorization: Bearer <token>, courante en JWT/OAuth2.
- User-Agent
- En-tête de requête identifiant le type de client (navigateur/robot/script), curl envoie par défaut "curl/numéro de version", de nombreux sites web bloquent les UA non navigateur, couramment spécifié avec -A.
- Cookie
- Paires clé-valeur envoyées par le serveur via Set-Cookie et renvoyées par le navigateur dans les requêtes ultérieures via l'en-tête Cookie, pour maintenir les sessions. curl -b envoie Cookie, -c sauvegarde Cookie.
- Referer
- En-tête de requête indiquant l'URL de la page d'origine de la requête actuelle, certaines vérifications anti-hotlink/CSRF la vérifient. Défini dans curl avec -e.
- Redirection (3xx)
- Quand le serveur retourne des codes de statut 301/302/303/307/308, indique au navigateur de sauter vers une nouvelle URL. curl par défaut ne suit pas, ajoutez -L/--location pour suivre.
- --compressed
- Option de curl, ajoute automatiquement l'en-tête Accept-Encoding: deflate, gzip et décomprime automatiquement la réponse. Sans définir, la réponse peut être des données compressées illisibles.
- -k/--insecure
- Option de curl, ignore la vérification de certificat HTTPS, uniquement pour les environnements de test avec certificats auto-signés, interdite en production.
- fetch API
- API de requêtes HTTP JavaScript native du navigateur, retourne Promise, compatible avec les navigateurs modernes.
- Axios
- Bibliothèque client HTTP populaire basée sur Promise, compatible avec navigateur et Node.js, sérialisation JSON automatique, intercepteurs, annulation par délai.
- OkHttp
- Bibliothèque cliente HTTP Java/Android de Square, haute performance, compatible HTTP/2, pool de connexions, GZIP transparent.
- HttpClient (.NET)
- Client HTTP recommandé pour C#/.NET, espace de noms System.Net.Http, API standard de .NET Core/.NET 5+.
- Invoke-RestMethod
- Cmdlet de requête HTTP intégré à PowerShell 3.0+, analyse automatiquement les réponses JSON/XML comme objets PowerShell.