Una breve historia de los contenedores
Estrategias de fusión en git: Ship / Show / Ask

12 ejemplos de comando cURL

telefono vasos plastico comando cURL

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:

curl-logo

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

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 🤣

Más apuntes

Invítame a un café con bitcoins:
1QESjZDPxWtZ9sj3v5tvgfFn3ks13AxWVZ

Bitcoins para café
También puedes invitarme a algo para mojar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Tienes que aprobar los términos para continuar