Ambos curl
y wget
se usan para descargar archivos, etc. ¿Hay alguna razón para usar uno sobre el otro?
Ambos curl
y wget
se usan para descargar archivos, etc. ¿Hay alguna razón para usar uno sobre el otro?
Respuestas:
Después de haber definido "uso apropiado", use wget
.
¿Por qué? Es por eso:
Recursivo! La principal ventaja de wget en comparación con curl es su capacidad de descargar de forma recursiva, o incluso simplemente descargar todo lo que se hace referencia desde un recurso remoto, ya sea una página HTML o una lista de directorios FTP.
Desvergonzado copiado de aquí
curl
biblioteca . curl
está alimentado por libcurl
: una biblioteca multiplataforma con una API estable que puede ser utilizada por todos y cada uno. Esta diferencia es importante ya que crea una actitud completamente diferente sobre cómo hacer las cosas internamente. También es un poco más difícil crear una biblioteca que una "simple" herramienta de línea de comandos.
tuberías . curl
funciona más como el cat
comando tradicional de Unix , envía más cosas stdout
y lee más de stdin
una manera "todo es una tubería". wget
es más como cp
usar el mismo análogo.
Un solo disparo . curl
básicamente está hecho para hacer transferencias de datos de un solo disparo. Transfiere solo las URL que especifica el usuario y no contiene ninguna lógica de descarga recursiva ni ningún tipo de analizador HTML.
Más protocolos . curl
admite FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, ARCHIVO, POP3, IMAP, SMB / CIFS, SMTP, RTMP y RTSP. Wget solo es compatible con HTTP, HTTPS y FTP.
Más portátil . curl
se construye y se ejecuta en muchas más plataformas que wget
. Por ejemplo: OS / 400, TPF y otras plataformas más "exóticas" que no son clones directos de Unix.
Más bibliotecas SSL y soporte SSL . curl
se puede construir con una de once (¡11!) bibliotecas SSL / TLS diferentes, y ofrece más control y un soporte más amplio para los detalles del protocolo. curl
admite fijación de clave pública.
HTTP auth . curl
admite más métodos de autenticación HTTP, especialmente a través de servidores proxy HTTP: Basic, Digest, NTLM y Negotiate
SOCKS . curl
admite varias versiones de protocolo SOCKS para acceso proxy
Bidireccional . curl
ofrece capacidades de carga y envío. wget
solo ofrece soporte HTTP POST simple.
Envío de datos multiparte / formulario HTTP , que permite a los usuarios realizar "carga" HTTP y, en general, emular navegadores y automatizar HTTP en mayor medida
curl
admite gzip
e infla la codificación de contenido y realiza la descompresión automática
curl
ofrece y realiza la descompresión de HTTP codificado por transferencia, wget no
curl
admite HTTP / 2 y se conecta con doble pila utilizando Happy Eyeballs
Mucho más actividad de desarrollador . Si bien esto se puede debatir, considero tres métricas aquí: actividad de la lista de correo, frecuencia de confirmación del código fuente y frecuencia de lanzamiento. Cualquiera que siga estos dos proyectos puede ver que el proyecto curl tiene un ritmo mucho más alto en todas estas áreas, y lo ha sido durante más de 10 años. Comparar en openhub
wget
wget
es solo línea de comando. No hay biblioteca
Recursivo ! wget
El principal lado positivo en comparación con curl es su capacidad de descargar de forma recursiva, o incluso simplemente descargar todo lo que se hace referencia desde un recurso remoto, ya sea una página HTML o una lista de directorios FTP.
Más viejos . wget
tiene rastros desde 1995, mientras que curl
puede rastrearse no antes de finales de 1996.
GPL . wget
es 100% GPL v3. curl tiene licencia MIT.
GNU . wget
es parte del proyecto GNU y todos los derechos de autor se asignan a FSF. El proyecto curl es completamente independiente e independiente, sin ninguna organización de padres, con casi todos los derechos de autor propiedad de Daniel.
wget
no requiere opciones adicionales para simplemente descargar una URL remota a un archivo local, mientras que curl
requiere -o
o -O
.
wget
admite la Lista de sufijos públicos para manejar dominios de cookies, curl no.
wget
solo admite GnuTLS u OpenSSL para SSL / TLS
wget
admite solo autenticación básica como el único tipo de autenticación sobre proxy HTTP
wget
no tiene soporte SOCKS
Su capacidad para recuperarse de una transferencia interrumpida prematuramente y continuar la descarga no tiene contrapartida en curl.
wget
se puede escribir usando solo la mano izquierda en un teclado qwerty!
curl -C -
continúa la descarga interrumpida?
wget can be typed in using only the left hand on a qwerty keyboard!
¿ WTF? wget requires no extra options to simply download a remote URL to a local file, while curl requires -o or -O.
Hay muchas herramientas que pueden descargar como curl
, snarf
, wget
, pavuk
, fget
, fetch
, lftp
, aria2
, HTTrack
etc Uso de acuerdo a sus necesidades y que cuentan desea utilizar junto con la descarga. Verifique la tabla de características y utilícela en consecuencia.
Rizo:
Wget:
Recursos importantes para más información:
Aquí hay una buena explicación curl vs Wget .
Tabla de características: Compare las características de cURL con otras herramientas de descarga
Detalle de las funciones compatibles con curl: Características: ¿qué puede hacer curl?
Detalle de las funciones compatibles con wget : características de wget
Tienen mucha funcionalidad en común, pero curl
tiene más opciones. De wget
vez en cuando puede ser suficiente para hojear man wget
, pero curl
necesito estudiar esta página web en un navegador. Creo que cualquier cosa que su navegador pueda hacer, también curl
puede hacerlo.
Hay otra diferencia entre wget y curl que creo que es significativa.
Wget es una utilidad de línea de comandos independiente destinada principalmente a recuperar contenido de Internet de forma rápida y sencilla.
Curl, por otro lado, es básicamente un extremo frontal de la poderosa biblioteca libcurl. Libcurl proporciona un conjunto muy poderoso de herramientas para trabajar con URL en todas sus formas y sabores, y está disponible para casi todos los idiomas y plataformas. Básicamente, Curl te da la posibilidad de usar esta biblioteca en scripts de shell.