Encodage de formulaire
Leçon 34 sur 47 du cours Réseautage avec le terminal de Coddy.
Lorsque vous utilisez -d, curl ajoute un en-tête décrivant le format du corps :
Content-Type: application/x-www-form-urlencodedCe nom long correspond au format que les formulaires HTML ont toujours utilisé : des paires key=value reliées par &. Le serveur lit cet en-tête et sait qu'il doit diviser le corps au niveau de ces caractères.
Ce qui soulève la question évidente : que se passe-t-il si une valeur contient un & ou un = ? Elle doit être échappée, c'est-à-dire écrite avec un signe de pourcentage suivi de deux chiffres hexadécimaux. Un espace devient %20 ou +, et une esperluette devient %26.
--data-urlencode effectue cet échappement pour vous, et vous devriez le préférer pour toute donnée saisie par un humain. Envoyer des données utilisateur brutes avec -d est la raison pour laquelle les champs sont mystérieusement tronqués à la première esperluette.
Défi
DifficileConfirmez l’en-tête que curl choisit pour vous.
- Démarrez l’écouteur de capture sur le port 9124
- Envoyez
a=1en POST avec-d - Affichez la ligne Content-Type de
req.txt
Résultat attendu :
Content-Type: application/x-www-form-urlencodedFaites une correspondance insensible à la casse et ancrez-la au début de la ligne.
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Réseautage avec le terminal
1Comment les réseaux communiquent
Qu’est-ce qu’un réseauClients et serveursAdresses IPVotre première requête4Est-il joignable ?
ICMP et pingLire la sortie de pingQuand ping mentRefusé ou délai d’attente dépasséRécapitulatif : joignabilité7Envoyer des données
POST avec -dCe que -d envoie réellementEncodage de formulaireEnvoyer du JSONPUT et DELETERécapitulatif : écrire des données2Noms et DNS
Pourquoi les noms existentLe fichier hostsRechercher un nomTypes d’enregistrementsRécapitulatif : les noms3Ports et sockets
Qu’est-ce qu’un portPorts bien connusLocalhostÉcoute ou connexionRécapitulatif : les ports6curl en profondeur
Afficher les en-têtesEnregistrer les réponsesEn-têtes personnalisésStatut et duréeCodes de sortie de curlRécapitulatif : options de curl9Authentification et débogage
Clés API et BearerL’agent utilisateurDélais d’attente et nouvelles tentativesLire un échecRécapitulatif : débogageEntraînez-vous par vous-même : Playground Terminal