¿Qué es un comando cURL y cómo usarlo?

¿Qué es un comando cURL? Es un comando disponible en la mayoría de los sistemas basados ​​en Unix. Es una abreviatura de «Client URL». Los comandos de cURL están diseñados para funcionar como una forma de verificar la conectividad a las URL y como una gran herramienta para transferir datos.

En este tutorial te enseñaremos cómo aprender a usarlo.

cURL (Client URL) es una herramienta de línea de comandos, que permite transferir datos hacia o desde un servidor sin interacción del usuario utilizando la biblioteca libcurl. cURL también se puede utilizar para solucionar problemas de conexión.

Compatibilidad de cURL

El comando cURL es compatible con la siguiente lista de protocolos:

  • HTTP y HTTPS
  • FTP y FTPS
  • IMAP e IMAPS
  • POP3 y POP3S
  • SMB y SMBS
  • SFTP
  • SCP
  • TELNET
  • GOPHER
  • LDAP y LDAPS
  • SMTP y SMTPS

Estos son los protocolos compatibles más importantes, pero también hay algunos otros. cURL funciona con libcurl, que es una biblioteca de transferencia de URL gratuita en el lado del cliente.

Verifica la versión de cURL

Al igual que con cualquier comando de Linux, antes de comenzar a trabajar con cURL, debemos iniciar sesión en nuestro VPS. Si necesitas ayuda, consulta este tutorial sobre SSH.

Primero, verifiquemos qué versión de cURL está disponible con el siguiente comando:

curl --version

La salida mostrará la versión cURL una lista de protocolos compatibles. Ahora podemos ver algunos ejemplos de comandos de cURL.

Sintaxis básica del comando cURL

Aprendamos a usar los comandos cURL. La sintaxis básica de cURL se ve así:

curl [OPTIONS] [URL]

El uso más simple de cURL es mostrar el contenido de una página. El siguiente ejemplo mostrará la página de inicio de testdomain.com.

curl testdomain.com

Esto generará el código fuente completo de la página de inicio del dominio. Si no se especifica ningún protocolo, cURL lo interpretará a HTTP.

Opciones de archivo de comandos de cURL

Los comandos cURL pueden descargar archivos desde una ubicación remota. Puedes hacerlo de dos maneras diferentes:

  • -O guardará el archivo en el directorio de trabajo actual con el mismo nombre de archivo que el remoto.
  • -o permite especificar un nombre de archivo o ubicación diferente.

A continuación se muestra un ejemplo:

curl -O http://testdomain.com/testfile.tar.gz

El comando anterior guardará esto como testfile.tar.gz.

curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz

El comando anterior guardará esto como newtestfile.tar.gz.

Si por alguna razón, la descarga se interrumpe, puedes reanudarla usando cURL. Puedes hacerlo con el siguiente comando:

curl -C - -O  http://testdomain.com/testfile.tar.gz

Usando cURL, también podemos descargar varios archivos, como se muestra a continuación:

curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz

Si quieres descargar múltiples archivos de múltiples URLs, inclúyelos todos en un archivo. Los comandos cURL se pueden combinar con xargs para descargar las diferentes URLs.

Por ejemplo, si tenemos un archivo allUrls.txt que contiene una lista de todas las URLs que se descargarán, el siguiente ejemplo se puede usar para descargar todos los archivos.

xargs –n 1 curl -O < allUrls.txt

Comandos cURL para HTTP

cURL también se puede usar cuando hay un servidor proxy. Si estás detrás de un servidor proxy que escucha en el puerto 8090 en sampleproxy.com, descarga los archivos como se muestra a continuación:

curl -x  sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz

En el ejemplo anterior, puedes omitir -U username:password si el proxy no requiere un método de autenticación.

Una solicitud HTTP típica siempre contendrá un encabezado. El encabezado HTTP envía información adicional sobre el servidor web remoto junto con la solicitud real. Si bien a través de las herramientas de desarrollador de un navegador puedes verificar la información del encabezado, puedes verificarla utilizando un comando cURL.

A continuación se muestra un ejemplo de cómo recuperar la información del encabezado de un sitio web.

curl -I www.testdomain.com

Usando cURL, puedes hacer una solicitud GET y una POST. Una solicitud GET será así:

curl http://mydomain.com

Una muestra de una solicitud POST será como esta:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp

Aquí text=Hello es el parámetro de solicitud POST. Este comportamiento sería similar a los formularios HTML.

También puedes especificar varios métodos HTTP en un solo comando cURL. Hazlo usando la opción –next, así:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp

Esta contiene una solicitud POST seguida de una solicitud GET.

Cada solicitud HTTP tendrá un agente de usuario que se envía como parte de la solicitud. Esto indica los detalles del navegador web del cliente. Por defecto, una solicitud cURL contiene cURL y el número de versión como los detalles del agente usuario. Una salida de esto se vería así:

“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”

Puedes cambiar esta información de agente usuario predeterminada utilizando el siguiente comando:

curl -I http://mydomain.com –-user-agent “My new Browser”

Ahora el resultado modificado será:

“GET / HTTP/1.1” 200 “_” ”My new Browser”

cURL para Cookies

Los comandos cURL se pueden usar para verificar qué cookies se descargan en cualquier URL. Entonces, si estás accediendo a https://www.samplewebsite.com, puedes enviar a un archivo, guardar las cookies y acceder a ellas usando cat o un editor VM.

La siguiente es una muestra de dicho comando:

curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O

Del mismo modo, si tienes las cookies en un archivo, puedes enviarlo al sitio web. Un ejemplo de dicho comando es el que se muestra a continuación:

curl --cookie Mycookies.txt https://www. samplewebsite.com

cURL para FTP

¡El comando cURL es compatible con FTP! Puedes usarlo para descargar archivos de un servidor remoto.

curl -u username:password -O ftp://sampleftpserver/testfile.tar.gz

En el comando anterior, ftp://sampleftpserver es un servidor FTP que acepta conexiones. El nombre de usuario y la contraseña se pueden omitir para conexiones FTP anónimas. Escribe el comando y observa cómo avanza la barra de progreso.

También puedes cargar archivos con el siguiente comando:

curl -u username:password -T testfile.tar.gz ftp://sampleftpserver

Nuevamente, podemos omitir el nombre de usuario y la contraseña para conexiones FTP anónimas.

Limitar la salida de cURL

Mientras usas cURL, no puedes saber qué tan grande será la salida. Puedes restringir el ancho de banda para asegurarte de que no sea estrangulado por cURL.

El siguiente comando restringe el ancho de banda a 100K:

curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O

Conclusión

cURL es un comando poderoso y ampliamente utilizado. Es útil cuando dependes de la línea de comando. Tiene varias opciones y soporta múltiples protocolos. ¡Esa es una muy buena razón para aprender este comando!

Recuerda, si quieres aprender algunos comandos avanzados, simplemente consulta el manual que debería estar en todas las versiones de Unix:

man curl

¡Esperamos que este tutorial te haya dado un buen punto de partida para usar cURL! ¿Cómo usarás este comando? ¡Déjanos saber en los comentarios!

Author
El autor

Gustavo B.

Gustavo es un apasionado por la creación de sitios web. Se enfoca en la aplicación de estrategias SEO en Hostinger para España y Latinoamérica, así como la creación de contenidos de alto nivel. Cuando no está aplicando nuevos trucos en WordPress lo puedes encontrar tocando la guitarra, viajando o tomando un curso online.