¿Cuál es la diferencia entre wget vs curl?

What Is Difference Between Wget Vs Curl



A menudo necesitamos descargar archivos de servidores remotos a nuestra máquina local. En un escritorio gráfico, podemos usar un navegador GUI y hacer clic en el botón de descarga. Sin embargo, en un terminal, necesitamos usar herramientas desarrolladas para el terminal. Al descargar archivos del terminal, a menudo surgen cuatro herramientas: rizo , hombro , wget , y aria2 . Si bien axel y aria2 pueden no ser muy conocidos, la mayoría de los usuarios de terminales conocen curl y wget.

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 cURL

sudo apt-get installrizo

# instalar wget

sudo apt-get install wget

Arch/Manjaro:

# instalar cURL

sudopacman-Srizo

# instalar wget

sudopacman-S wget

REHL / CentOS / Fedora:

# instalar cURL

sudo 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.html

rizo 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.zst

wget --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.