Códigos de salida de curl
Lección 30 de 47 del curso Redes con la terminal de Coddy.
Hay dos nociones completamente diferentes de fallo en un único comando curl, y confundirlas provoca errores reales.
El código de estado es la respuesta del servidor: 200, 404, 500. El código de salida indica si curl logró establecer la comunicación.
Un 404 es una comunicación exitosa. Se llegó al servidor, este entendió la solicitud y respondió. curl sale con 0. Un script que solo comprueba el código de salida considerará que todo está bien, lo que es una fuente clásica de canalizaciones que continúan correctamente mientras descargan una página de error.
curl -s -o /dev/null http://127.0.0.1:9120/missing
echo $? # 0, porque la solicitud en sí funcionóSi quieres que se produzca un fallo ante un estado incorrecto, solicítalo con --fail, que hace que curl salga con un valor distinto de cero ante respuestas 4xx y 5xx. De lo contrario, comprueba %{http_code} tú mismo.
Desafío
DifícilDemuestra que un 404 sigue siendo una solicitud exitosa.
- Sirve una carpeta en el puerto 9120
- Solicita una página que no existe e imprime
status=con el código de estado - En la línea siguiente, imprime
exit=con el código de salida de curl
Salida esperada:
status=404
exit=0Lee
$?inmediatamente después del curl que lo produjo.
Pruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Redes con la terminal
2Nombres y DNS
Por qué existen los nombresEl archivo hostsBuscar un nombreTipos de registrosRepaso: nombres6curl a fondo
Ver los encabezadosGuardar respuestasEncabezados personalizadosEstado y tiemposCódigos de salida de curlRepaso: opciones de curl9Autenticación y depuración
Claves API y BearerEl agente de usuarioTiempos de espera y reintentosLeer un falloRepaso: depuraciónPractica por tu cuenta: Playground de Terminal