Codes de sortie de curl
Leçon 30 sur 47 du cours Réseautage avec le terminal de Coddy.
Il existe deux notions d’échec complètement différentes dans une seule commande curl, et les confondre provoque de vrais bogues.
Le code d’état est la réponse du serveur : 200, 404, 500. Le code de sortie indique si curl a réussi à établir la conversation.
Un 404 correspond à une conversation réussie. Le serveur a été atteint, a compris la requête et a répondu. curl se termine avec le code 0. Un script qui vérifie uniquement le code de sortie considérera cela comme acceptable, ce qui est une source classique de pipelines qui réussissent tout en téléchargeant une page d’erreur.
curl -s -o /dev/null http://127.0.0.1:9120/missing
echo $? # 0, car la requête elle-même a fonctionnéSi vous voulez qu’un statut incorrect provoque un échec, demandez-le avec --fail, ce qui fait que curl se termine avec un code non nul pour les réponses 4xx et 5xx. Sinon, vérifiez vous-même %{http_code}.
Défi
DifficileMontrez qu’une erreur 404 correspond tout de même à une requête réussie.
- Servez un dossier sur le port 9120
- Demandez une page qui n’existe pas et affichez
status=avec le code d’état - À la ligne suivante, affichez
exit=avec le code de sortie de curl
Sortie attendue :
status=404
exit=0Lisez
$?immédiatement après la commande curl qui l’a produit.
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ête2Noms 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