En este tutorial, veremos curl y wget, cómo empezar y, lo más importante, las diferencias entre ellos.
¿Qué es cURL?
cURL es una utilidad de línea de comandos gratuita y de código abierto que permite a los usuarios transferir datos de una máquina remota a otra con una interacción mínima o nula por parte del usuario. El uso de CURL es frecuente en dispositivos como enrutadores, impresoras, teléfonos, tabletas, reproductores multimedia y más.
Admite la descarga y carga mediante protocolos como HTTP / HTTPS, FTP, SFTP, SCP, IMAP, LDAP / LDAPS, SMB / SMBS, TELNET, POP3, GOPHER y muchos, muchos más.
cURL también proporciona proxies, transferencias de reanudación, autenticación de usuario, certificados SSL y mucho más.
¿Qué es wget?
GNU Wget, comúnmente llamado wget, es una utilidad de línea de comandos gratuita para transferir archivos usando HTTP / HTTPS, FTP y FTPS. Proporciona funciones como descargas recursivas, control de ancho de banda, reanuda transferencias abortadas, descargas en segundo plano, archivos y directorios espejo recursivos, y muchos más.
¿Cómo instalar cURL y Wget?
cURL y wget son herramientas populares disponibles en las principales distribuciones de Linux; Si no tiene ninguna de las herramientas instalada, utilice los siguientes comandos para instalar:
Debian / Ubuntu:
# instalar cURLsudo apt-get installrizo
# instalar wget
sudo apt-get install wget
Arch/Manjaro:
# instalar cURLsudopacman-Srizo
# instalar wget
sudopacman-S wget
REHL / CentOS / Fedora:
# instalar cURLsudo yum installrizo
sudodnfInstalar en pcrizo
# instalar wget
sudo yum install wget
sudodnfInstalar en pc wget
¿Cómo utilizar cURL y Wget (ejemplos de casos de uso)?
Para asegurarse de que comprende las similitudes y diferencias entre cURL y wget, es bueno ver algunos ejemplos:
Protocolos HTTP / HTTPS:
Tanto cURL como wget admiten los protocolos HTTP y HTTPS. Por lo tanto, si descargamos un sitio web como linuxhint.com:
rizo https://linuxhint.com-olinuxhint.htmlrizo https://linuxhint.com-olinuxhint.html
%Total%Recibió%Xferd Velocidad promedio Tiempo Tiempo Tiempo Actual
Carga de descarga Velocidad total gastada izquierda
100256k0256k0 0166k0--:--:--0: 00: 01 -: -: - 166k
Por defecto, cURL imprimirá el contenido del recurso web en la terminal. Usamos la bandera -o para redirigir la salida a un archivo.
Lo siguiente se aplica a wget:
wgethttps://linuxhint.com--2021-06-2005:09:45-- https://linuxhint.com/
Resolución de linuxhint.com(linuxhint.com)... 104.21.58.234, 172.67.209.252,2606:4700:3033::6815: 3aea, ...
Conectando a linuxhint.com(linuxhint.com)|104.21.58.234|:443... conectado.
Solicitud HTTP enviada, esperando respuesta ...200OK
Longitud: sin especificar[texto/html]
Guardando en: 'index.html'
index.html
[ <=> ]256.25K 506KB/sen0,5 s
2021-06-2005:09:46 (506KB/s)- 'index.html' guardado[262396]
Wget, por otro lado, guarda el recurso solicitado en un archivo.
Es bueno notar que ambas herramientas descargan el recurso. Los detalles de ls de los dos archivos muestran ambos tamaños de archivo.
$ls -losindex.html linuxhint.html-rw-rw-r-- 1linuxhint linuxhint262396jun19 15:50index.html
-rw-rw-r-- 1linuxhint linuxhint262396jun2005:07 linuxhint.html
Protocolo FTP:
Tanto cURL como wget admiten descargas en protocolos FTP. Sin embargo, cURL admite la carga a ftp.
Utilice el siguiente comando para descargar archivos del servidor FTP con wget:
wget --usuario=debian--contraseña= 'Debian' ftp://192.168.0.112/backup.zstwget --usuario=debian--contraseña='debian'ftp://192.168.0.112/backup.zst
--2021-06-2005:29:06-- ftp://192.168.0.112/backup.zst
=>'Backup.zst'
Conectando a 192.168.0.112:21... conectado.
Inicio sesiónen comodebian ... Registradoen!
==>SYST ... hecho. ==>PWD ... hecho.
==>TIPO I ... hecho. ==>No se necesita CWD.
==>TAMAÑO backup.zst ... hecho.
==>PASV ... hecho. ==>RETR backup.zst ... hecho.
backup.zst
[ <=> ] 0--.- KB/sen0 s
2021-06-2005:29:06(0.00B/s)- 'backup.zst' guardado[0]
Usando curl, agregue el-umarcar como:
rizo-udebian: debian 'ftp://192.168.0.112/backup.zst '-obackup.zst
rizo-udebian:debian'ftp://192.168.0.112/backup.zst' -obackup.zst
%Total%Recibió%Xferd Velocidad promedio Tiempo Tiempo Tiempo Actual
Carga de descarga Velocidad total gastada izquierda
0 0 0 0 0 0 0 0--:--:-- --:--:-- --:--:--0
Para cargar unexpedienteparaftpcon rizo, usamos el-Topción como:
rizo-udebian:debian-Tbackup1.zst ftp://192.168.0.112/ftp/
Asegúrese de que el directorio exista y que el usuario tenga permisos de escritura.
NOTA: Aunque cURL admite una amplia variedad de protocolos, no proporciona descargas recursivas. Por otro lado, Wget admite descargas recursivas utilizando la opción –recursive, ya que los protocolos HTTP / HTTPS y FTP / FTPS ofrecen dicha funcionalidad.
Similitudes entre wget y cURL
Ahora para la guinda del pastel:
- Ambas herramientas admiten protocolos estándar como HTTP, HTTPS, FTP, FTPS.
- Ambas herramientas descargan archivos de Internet.
- Ambas herramientas admiten cookies HTTP.
- Ambas herramientas admiten la salida a un archivo.
- Herramientas tanto gratuitas como desarrolladas activamente.
- Ambas herramientas admiten transferencias de currículum.
- Ambas herramientas admiten HTTP POST.
Diferencias entre wget y cURL
Estas son algunas de las diferencias entre curl y wget:
- Wget es una sencilla utilidad de transferencia, mientras que curl ofrece mucho más.
- Curl proporciona la biblioteca libcurl, que se puede expandir a aplicaciones GUI. Wget, por otro lado, es una sencilla utilidad de línea de comandos.
- Wget admite menos protocolos en comparación con cURL.
- Las descargas recursivas no son compatibles con curl.
- Wget está disponible de forma nativa en los sistemas Linux, mientras que cURL está disponible en los sistemas Windows.
- cURL admite múltiples transferencias paralelas.
- cURL realiza descompresiones HTTP codificadas por transferencia, mientras que wget no lo hace.
- cURL admite HTTP bidireccional, mientras que wget ofrece un POST HTTP simple.
- cURL admite más métodos de autenticación HTTP en comparación con wget.
- Wget no es compatible con SOCKS.
- Wget requiere gnulib instalado.
- A diferencia de curl, las funciones como cookies, marcas de tiempo y redirecciones de seguimiento están habilitadas de forma predeterminada en wget. cURL requiere que cada uno se especifique explícitamente.
Conclusión
Este tutorial se centró en las similitudes y diferencias entre cURL. Aunque pueda parecer que cURL es la mejor opción, hay casos en los que wget es la mejor opción.
Mi consejo para ti es que elijas lo que te funcione.