El comando cURL (Client for URLs) es muy útil para el día a día de cualquier informático, tenga la disciplina que sea. En este artículo voy a intentar explicar 12 formas de utilizar el comando cURL que quizá te pueden ayudar. Por lo menos, yo los dejo aquí para tenerlos de referencia 😉
En el Tutorial cURL – Petición web GET a una API ya explique que es cURL y una forma de poder usarlo, así que esto me lo voy a ahorrar aquí. Además, si quieres saber al detalle todas las opciones que tiene el comando lo mejor es que consultes la página man de curl ejecutando en tu línea de comandos Linux:
man curl
También puedes ir al tutorial de la página oficial de cURL o al que he traducido en un repo git. Bueno, al grano, los comandos cURL que voy a explicar:
Verifica si puedes conectarte a la URL
Si estás trabajando en un sistema UNIX e intentas conectar la URL externa, lo primero que querrás es verificar si se puede acceder a la URL a través de cURL. Es el modo simple para utilizar el comando:
curl yoururl.com
Si se puede conectar tendrá el index de la web. En caso contrario se obtendrá un error.
[root@vergara]# curl helloitdoesntexist.com
curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error
[root@vergara]#
Guardar la salida de URL/URI en un archivo
Si tienes que guardar el contenido de la salida de la URL o URI en un archivo específico, puedes usar la siguiente sintaxis:
curl https://yoururl.com > yoururl.html
ex:
[root@gf-lab tmp]# curl https://gf.dev > /tmp/gfhtml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 18557 0 18557 0 0 72565 0 --:--:-- --:--:-- --:--:-- 72772
[root@gf-lab tmp]#
El ejemplo anterior guardará el contenido en gf.dev en el directorio temporal /tmp.
Mostrar encabezado de solicitud y respuesta
Si tienes problemas y deseas validar, obtendrás el encabezado de solicitud y respuesta esperados con el modo detallado (verbose):
curl -v yoururl.com
Por ejemplo:
curl -v https://vergaracarmona.es
Mostrar solo encabezado de respuesta
Si estás resolviendo algunos problemas y quieres verificar rápidamente el encabezado de respuesta, puedes usar la siguiente sintaxis.
curl --head http://yoururl.com
por ejemplo:
curl --head https://vergaracarmona.es
Descargar con un límite
Si estás trabajando en la optimización y te gustaría ver cuánto tiempo lleva descargar a una velocidad particular:
curl –-limit-rate 2000B
por ejemplo:
curl –-limit-rate 2000B https://gf.dev
Usar un proxy para conectarse
Muy útil si estás trabajando en el servidor DMZ donde necesitas conectarse al mundo externo usando un proxy.
curl --proxy yourproxy:port https://yoururl.com
Probar una URL con encabezado de inyección
Puede usar curl insertando un encabezado con sus datos para probar o solucionar el problema en particular. Veamos el siguiente ejemplo para solicitar con Content-Type.
curl --header 'Content-Type: application/json' http://yoururl.com
Al hacer lo anterior, le está pidiendo a curl que pase Content-Type como application / json en el encabezado de la solicitud.
Conectar a una URL HTTPS/SSL ignorando cualquier error de certificado SSL
Cuando intente acceder a la URL segura del certificado SSL / TLS y si tiene el certificado incorrecto o CN no coincide, obtendrá el siguiente error.
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
Buenas noticias, puede indicar a cURL que ignore el error de certificado con –insecure bandera.
curl --insecure https://yoururl.com
Conectarse usando un protocolo específico (SSL/TLS)
Muy útil para probar si una URL en particular puede comunicarse con un protocolo SSL/TLS específico.
Para conectarse usando SSL v3
curl --sslv3 https://yoururl.com
y para diferentes versiones de TLS
curl --tlsv1 https://example.com
curl --tlsv1.0 https://example.com
curl --tlsv1.1 https://example.com
curl --tlsv1.2 https://example.com
curl --tlsv1.3 https://example.com
Descargar archivo del servidor FTP
También puedes usar curl para descargar el archivo especificando su nombre de usuario y contraseña.
curl -u user:password -O ftp://ftpurl/style.css
Siempre que uses «-v” el resultado se arrojará en modo detallado.
Uso del encabezado de host
El encabezado del host es útil para probar la URL de destino sobre IP cuando el contenido solicitado solo está disponible cuando el encabezado del host coincide. O bien, si quieres probar la aplicación utilizando la IP/URL del equilibrador de carga.
curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/
Obtener código error de la página y monitorizar
Se puede obtener tan solo el código de error de una web:
curl -o /dev/null -s -w "\n%{http_code}\n\n" https://vergaracarmona.es
Y para monitorizarlo, sin despreciar al querido ‘ping’, podemos poner un ‘watch’ por delante para que se actualice cada 2 segundos:
watch curl -o /dev/null -s -w "\n%{http_code}\n\n" https://vergaracarmona.es
Espero que hayan sido útiles estos comandos cURL. Para mí lo son, sobretodo cuando estoy en una máquina en la que no tengo interfaz gráfica, solo la línea de comandos, el habitat natural de un sysadmin 🤣
1 comentario. Dejar nuevo
Exelentes ejemplos, me dieron luz en la obscuridad.
Saludos cordiales.