Quanto à votação para fechar como baseada em opiniões: como perguntar sobre a diferença entre duas ferramentas incentiva respostas baseadas em opiniões?
Michael Martin-Smucker
1
@ MichaelMartin-Smucker "Suponha que eu precise baixar uma página da web, digamos www.google.com, devo procurar por wget ou curl?" o que é isso se não for baseado em opiniões?
muru 26/09/15
2
@ muru, depende do que você quer dizer com "baixar uma página da web". Se você quer enviar uma solicitação http e receber de volta os resultados, a curvatura é ideal. Se você deseja fazer o download de uma página, de outras páginas às quais ele vincula e de ativos relacionados, a ondulação não funcionará e o wget é a única opção. Existem diferenças factuais entre eles que tornam isso não baseado em opiniões.
churrasco
3
@muru Acho que temos apenas interpretações diferentes do sentimento por trás da pergunta. Na minha interpretação, o sentimento é: "Ouvi falar dessas duas ferramentas que parecem fazer a mesma coisa. Qual é a diferença entre elas e quando devo escolher uma sobre a outra? E neste caso específico?" ... o que me parece uma pergunta razoável.
Michael Martin-Smucker 27/09/2015
Respostas:
33
Depois de definir "uso adequado", use wget.
Por quê? É por isso:
Recursivo! O principal ponto forte do wget, em comparação com o curl, é a capacidade de fazer o download recursivamente, ou até mesmo fazer o download de tudo o que é referido a partir de um recurso remoto, seja uma página HTML ou uma lista de diretórios FTP.
biblioteca . curlé alimentado por libcurl- uma biblioteca de plataforma cruzada com uma API estável que pode ser usada por todos e por todos. Essa diferença é grande, pois cria uma atitude completamente diferente sobre como fazer as coisas internamente. Também é um pouco mais difícil criar uma biblioteca do que uma "mera" ferramenta de linha de comando.
canos . curlfunciona mais como o catcomando tradicional do Unix , envia mais coisas para stdoute lê mais de stdinuma maneira "tudo é um cachimbo". wgeté mais como cpusar o mesmo analógico.
Um tiro . curlé basicamente feito para fazer transferências de dados de uma só vez. Ele transfere apenas os URLs que o usuário especifica e não contém nenhuma lógica de download recursiva nem qualquer tipo de analisador de HTML.
Mais protocolos . curlsuporta FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, ARQUIVO, POP3, IMAP, SMB / CIFS, SMTP, RTMP e RTSP. O Wget suporta apenas HTTP, HTTPS e FTP.
Mais portátil . curlcria e roda em muito mais plataformas do que wget. Por exemplo: OS / 400, TPF e outras plataformas mais "exóticas" que não são clones simples do Unix.
Mais bibliotecas SSL e suporte a SSL . curlpode ser construído com uma das onze (11!) bibliotecas SSL / TLS diferentes e oferece mais controle e suporte mais amplo aos detalhes do protocolo. curlsuporta fixação de chave pública.
Autenticação HTTP . curlsuporta mais métodos de autenticação HTTP, especialmente em proxies HTTP: Básico, Digest, NTLM e Negociar
MEIAS . curlsuporta várias versões do protocolo SOCKS para acesso ao proxy
Bidirecional . curloferece recursos de upload e envio. wgetoferece apenas suporte HTTP POST simples.
Envio multipart / dados de formulário HTTP , que permite aos usuários fazer "upload" de HTTP e, em geral, emular navegadores e automatizar HTTP em uma extensão mais ampla
curlsuporta gzipe aumenta a codificação de conteúdo e descompacta automaticamente
curl oferece e executa a descompactação do HTTP codificado por transferência, o wget não
Muito mais atividade do desenvolvedor . Embora isso possa ser debatido, considero três métricas aqui: atividade da lista de correspondência, frequência de confirmação do código-fonte e frequência de liberação. Qualquer pessoa que siga esses dois projetos pode ver que o projeto curl tem um ritmo muito mais alto em todas essas áreas, e isso ocorre há mais de 10 anos. Compare no openhub
wget
wgeté apenas linha de comando. Não há biblioteca.
Recursivo ! wgetO lado mais importante do comparado com o curl é a capacidade de baixar recursivamente, ou até mesmo baixar tudo o que é referido a partir de um recurso remoto, seja uma página HTML ou uma lista de diretórios FTP.
Mais velhos . wgettem traços desde 1995, enquanto curlpode ser rastreado até o final de 1996.
GPL . wgeté 100% GPL v3. curl é licenciado pelo MIT.
GNU . wgetfaz parte do projeto GNU e todos os direitos autorais são atribuídos à FSF. O projeto curl é totalmente independente e independente, sem a organização dos pais, com quase todos os direitos autorais de propriedade de Daniel.
wgetnão requer opções extras para simplesmente baixar um URL remoto para um arquivo local, enquanto curlrequer -oou -O.
wget suporta a lista pública de sufixos para manipular domínios de cookies, a ondulação não.
wget suporta apenas GnuTLS ou OpenSSL para suporte a SSL / TLS
wget suporta apenas autenticação básica como o único tipo de autenticação no proxy HTTP
wget não tem suporte a SOCKS
Sua capacidade de recuperar-se de uma transferência interrompida prematuramente e continuar o download não tem contrapartida na ondulação.
wget pode ser digitado usando apenas a mão esquerda em um teclado qwerty!
"O projeto curl é totalmente autônomo e independente, sem a organização dos pais, com quase todos os direitos autorais de propriedade de Daniel". Não tenho certeza de que é uma coisa ruim ...
churrasqueira
"Sua capacidade de recuperar-se de uma transferência interrompida prematuramente e continuar o download não tem contrapartida no processo". Eu entendi esta frase errada? Não está curl -C -continuando o download interrompido?
Siyuan Ren
1
Por que você recomenda o wget ? Mesmo depois de analisar as comparações que você mesmo escreveu, enrolar parece ser muito superior. 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.
Anmol Singh Jaggi
2
O tamanho importa muito: em uma ubuntu fresco, tamanho wget é 2M vs. onda 5M embalado (com deps, o total x3 descompactado)
Eran W
19
Existem muitas ferramentas que podem ser baixados como curl, snarf, wget, pavuk, fget, fetch, lftp, aria2, HTTracketc. Use-o de acordo com suas necessidades e que apresentam você quiser usar junto com o download. Verifique a tabela de recursos e use de acordo.
Ondulação :
Suporte a ondulação mais protocolo FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, ARQUIVO, POP3, IMAP, SMTP, RTMP e RTSP
O Curl suporta mais bibliotecas SSL
O Curl suporta mais métodos de autenticação HTTP, especialmente em proxies HTTP: Básico, Digest, NTLM e Negociar
O Curl é desenvolvido com a libcurl - uma biblioteca de plataforma cruzada com uma API estável que pode ser usada por todos e todos
Wget:
Enquanto o wget suporta HTTP, HTTPS e FTP
O Wget suporta apenas GnuTLS ou OpenSSL para suporte a SSL / TLS
O Wget suporta apenas autenticação básica como o único tipo de autenticação no proxy HTTP
O Wget é apenas uma ferramenta de linha de comando, não possui biblioteca.
"o wget é uma ferramenta de linha de comando, apenas possui biblioteca conhecida." Eu não entendo essa linha.
Lucio
3
Eles têm muita funcionalidade em comum, mas curltem mais opções. Por wgetvezes, pode ser suficiente folhear man wget, mas curlpreciso estudar esta página da Web em um navegador. Acredito que qualquer coisa que seu navegador possa fazer, também curlpode fazer.
Há outra diferença entre wget e curl, que eu acho significativa.
O Wget é um utilitário de linha de comando independente que se destina principalmente à recuperação de conteúdo da Internet de forma rápida e simples.
Curl, por outro lado, é basicamente um front end terminal para a poderosa biblioteca libcurl. O Libcurl fornece um conjunto muito poderoso de ferramentas para trabalhar com URLs em todas as suas formas e sabores, e está disponível para quase todos os idiomas e plataformas. O Curl basicamente oferece a capacidade de usar essa biblioteca em scripts de shell.
Respostas:
Depois de definir "uso adequado", use
wget
.Por quê? É por isso:
Recursivo! O principal ponto forte do wget, em comparação com o curl, é a capacidade de fazer o download recursivamente, ou até mesmo fazer o download de tudo o que é referido a partir de um recurso remoto, seja uma página HTML ou uma lista de diretórios FTP.
Desavergonhado copiado daqui
curl
biblioteca .
curl
é alimentado porlibcurl
- uma biblioteca de plataforma cruzada com uma API estável que pode ser usada por todos e por todos. Essa diferença é grande, pois cria uma atitude completamente diferente sobre como fazer as coisas internamente. Também é um pouco mais difícil criar uma biblioteca do que uma "mera" ferramenta de linha de comando.canos .
curl
funciona mais como ocat
comando tradicional do Unix , envia mais coisas parastdout
e lê mais destdin
uma maneira "tudo é um cachimbo".wget
é mais comocp
usar o mesmo analógico.Um tiro .
curl
é basicamente feito para fazer transferências de dados de uma só vez. Ele transfere apenas os URLs que o usuário especifica e não contém nenhuma lógica de download recursiva nem qualquer tipo de analisador de HTML.Mais protocolos .
curl
suporta FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, ARQUIVO, POP3, IMAP, SMB / CIFS, SMTP, RTMP e RTSP. O Wget suporta apenas HTTP, HTTPS e FTP.Mais portátil .
curl
cria e roda em muito mais plataformas do quewget
. Por exemplo: OS / 400, TPF e outras plataformas mais "exóticas" que não são clones simples do Unix.Mais bibliotecas SSL e suporte a SSL .
curl
pode ser construído com uma das onze (11!) bibliotecas SSL / TLS diferentes e oferece mais controle e suporte mais amplo aos detalhes do protocolo.curl
suporta fixação de chave pública.Autenticação HTTP .
curl
suporta mais métodos de autenticação HTTP, especialmente em proxies HTTP: Básico, Digest, NTLM e NegociarMEIAS .
curl
suporta várias versões do protocolo SOCKS para acesso ao proxyBidirecional .
curl
oferece recursos de upload e envio.wget
oferece apenas suporte HTTP POST simples.Envio multipart / dados de formulário HTTP , que permite aos usuários fazer "upload" de HTTP e, em geral, emular navegadores e automatizar HTTP em uma extensão mais ampla
curl
suportagzip
e aumenta a codificação de conteúdo e descompacta automaticamentecurl
oferece e executa a descompactação do HTTP codificado por transferência, o wget nãocurl
suporta HTTP / 2 e conecta pilha dupla usando Happy EyeballsMuito mais atividade do desenvolvedor . Embora isso possa ser debatido, considero três métricas aqui: atividade da lista de correspondência, frequência de confirmação do código-fonte e frequência de liberação. Qualquer pessoa que siga esses dois projetos pode ver que o projeto curl tem um ritmo muito mais alto em todas essas áreas, e isso ocorre há mais de 10 anos. Compare no openhub
wget
wget
é apenas linha de comando. Não há biblioteca.Recursivo !
wget
O lado mais importante do comparado com o curl é a capacidade de baixar recursivamente, ou até mesmo baixar tudo o que é referido a partir de um recurso remoto, seja uma página HTML ou uma lista de diretórios FTP.Mais velhos .
wget
tem traços desde 1995, enquantocurl
pode ser rastreado até o final de 1996.GPL .
wget
é 100% GPL v3. curl é licenciado pelo MIT.GNU .
wget
faz parte do projeto GNU e todos os direitos autorais são atribuídos à FSF. O projeto curl é totalmente independente e independente, sem a organização dos pais, com quase todos os direitos autorais de propriedade de Daniel.wget
não requer opções extras para simplesmente baixar um URL remoto para um arquivo local, enquantocurl
requer-o
ou-O
.wget
suporta a lista pública de sufixos para manipular domínios de cookies, a ondulação não.wget
suporta apenas GnuTLS ou OpenSSL para suporte a SSL / TLSwget
suporta apenas autenticação básica como o único tipo de autenticação no proxy HTTPwget
não tem suporte a SOCKSSua capacidade de recuperar-se de uma transferência interrompida prematuramente e continuar o download não tem contrapartida na ondulação.
wget
pode ser digitado usando apenas a mão esquerda em um teclado qwerty!fonte
curl -C -
continuando o download interrompido?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.
Existem muitas ferramentas que podem ser baixados como
curl
,snarf
,wget
,pavuk
,fget
,fetch
,lftp
,aria2
,HTTrack
etc. Use-o de acordo com suas necessidades e que apresentam você quiser usar junto com o download. Verifique a tabela de recursos e use de acordo.Ondulação :
Wget:
Recursos importantes para mais informações:
Aqui está uma boa explicação curl vs Wget .
Tabela de recursos: Compare os recursos cURL com outras ferramentas de download
Detalhe dos recursos suportados pelo curl: Recursos - o que o curl pode fazer
Detalhe dos recursos suportados pelo wget : recursos do wget
fonte
Eles têm muita funcionalidade em comum, mas
curl
tem mais opções. Porwget
vezes, pode ser suficiente folhearman wget
, mascurl
preciso estudar esta página da Web em um navegador. Acredito que qualquer coisa que seu navegador possa fazer, tambémcurl
pode fazer.fonte
Há outra diferença entre wget e curl, que eu acho significativa.
O Wget é um utilitário de linha de comando independente que se destina principalmente à recuperação de conteúdo da Internet de forma rápida e simples.
Curl, por outro lado, é basicamente um front end terminal para a poderosa biblioteca libcurl. O Libcurl fornece um conjunto muito poderoso de ferramentas para trabalhar com URLs em todas as suas formas e sabores, e está disponível para quase todos os idiomas e plataformas. O Curl basicamente oferece a capacidade de usar essa biblioteca em scripts de shell.
fonte