Qual é a diferença entre curl e wget?

258

Estou ansioso para saber a diferença entre curle wget. Ambos são usados ​​para obter arquivos e documentos, mas qual a principal diferença entre eles.

Por que existem dois programas diferentes?

lakesh
fonte
5
A principal diferença é que o wget é usado para baixar coisas, enquanto o curl é usado para testar a comunicação usando um protocolo específico.
Pithikos
9
Um fato interessante sobre o wget:> O Wget pode ser digitado usando apenas a mão esquerda em um teclado qwerty!
Habeeb Perwad 26/09

Respostas:

265

As principais diferenças são:

  • wgetO principal lado forte do comparado com curla capacidade de fazer o download recursivamente.
  • wgeté apenas linha de comando. Não há lib ou qualquer coisa, mas curlos recursos são alimentados por libcurl.
  • curlsuporta FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMPe RTSP. wgetsuporta HTTP, HTTPSe FTP.
  • curlconstrói e roda em mais plataformas que wget.
  • wgeté lançado sob uma licença copyleft de software livre (a GNU GPL). curlé lançado sob uma licença permissiva de software livre (um derivado do MIT).
  • curloferece recursos de envio e envio. wgetoferece apenas suporte HTTP POST simples.

Você pode ver mais detalhes no seguinte link:

curl vs Wget

Saeed Zarinfam
fonte
1
Obrigado, é exatamente isso que estou pensando há algumas horas. Eu costumava fazer o wget para fazer uma aranha recursiva em um site, parece parado em uma página que tem onze bilhões de links. A realidade é que ele está rodando com 100% da CPU em um núcleo. Estava esperando que houvesse algo melhor que fizesse aquela coisa multicore nova e variada da qual ouvi falar.
Brian Topping
1
Uma das coisas wgetque deixa de fora dessa resposta é a capacidade de espelhamento http (ou 'spidering'). curlé muito bom no que faz, mas por si só não se destina a ser usado para espelhar um site.
Jsbillings
E quanto ao wput ser um alias, suportando ftp.
Mckenzm
1
Essas frases não fazem sentido: "e todos os direitos autorais são atribuídos à FSF", "é totalmente independente e independente, sem a organização dos pais". É óbvio que o autor do cURL é o proprietário dos direitos autorais. É óbvio que o autor do wget é o proprietário dos direitos autorais. Mas ambos são gratuitos como no software da liberdade. Você pode dizer que o wget está sob uma licença copyleft e cURL sob uma licença permissiva.
Valerio Bozz
1
@ValerioBozz: Na verdade não. Curl e wget são projetos comunitários. Com o curl, cada pessoa possui os direitos autorais do código que contribui. Com o Wget, como na maioria dos outros programas GNU, os vários autores cedem seus direitos autorais à FSF. Ou seja, eles não possuem mais esse código. Isso permite que o FSF aplique rigorosamente o copyleft e renove o código, se necessário.
darnir
57

Em poucas palavras:

  • wget é uma ferramenta para baixar arquivos de servidores
  • curl é uma ferramenta que permite trocar solicitações / respostas com um servidor

wget

O Wget apenas permite baixar arquivos de um HTTP/ HTTPSou FTPservidor. Você atribui um link e ele baixa automaticamente o arquivo para onde o link aponta. Ele cria a solicitação automaticamente.

ondulação

A ondulação em contraste com o wget permite criar a solicitação como você deseja . Isso dá muita liberdade ao usuário e cria uma incrível ferramenta de depuração. Acrescente a isso a outra diferença principal entre os dois: a infinidade de protocolos suportados. Suportes onda FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, LDAP, LDAPS, IMAP, POP3, SMTP, RTSPe URI. Combine esses dois pontos-chave e você terá uma ferramenta incrível para testar protocolos, testar a configuração do servidor, etc.

Como muitos dizem, você pode baixar um arquivo com ondulação. No entanto, isso só é útil se você quiser baixar um arquivo de um servidor que usa um protocolo que o wget não suporta.

Pithikos
fonte
2
Na verdade, wgettambém segue o redirecionamento e salva a resposta diferente curl. Ambos podem alcançar o oposto ao comportamento padrão wget -qO - http://google.co.uk/ oucurl http://google.co.uk/ > index.html
Matt
1
O @mtm curl http://google.co.uk/ > index.htmlnão está usando uma funcionalidade embutida. De qualquer forma, a principal distinção é o objetivo para o qual cada ferramenta foi feita. Não há como negar que as ferramentas evoluem e muitas vezes se desviam de sua trajetória inicial.
Pithikos
1
O @mtm curl http://google.co.uk -o index.htmlusaria os internos do curl em vez do redirecionamento de saída do shell com >.
Petrus Repo
19

Na verdade, a principal diferença é que curlinclui uma biblioteca ( libcurl) e essa biblioteca é amplamente usada por outros aplicativos. wgeté autônomo.

sendmoreinfo
fonte