Menu
Coddy logo textTech

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}.

challenge icon

Défi

Difficile

Montrez qu’une erreur 404 correspond tout de même à une requête réussie.

  1. Servez un dossier sur le port 9120
  2. Demandez une page qui n’existe pas et affichez status= avec le code d’état
  3. À la ligne suivante, affichez exit= avec le code de sortie de curl

Sortie attendue :

status=404
exit=0

Lisez $? immédiatement après la commande curl qui l’a produit.

Essayez vous-même

Terminal
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Playground Terminal