cURL e wget no Linux: qual é a diferença?

cURL e wget no Linux: qual é a diferença?

Se você perguntar a um grupo de usuários do Linux o que eles usam para baixar arquivos, alguns dirão wgete outros dirão cURL. Qual é a diferença e um é melhor que o outro?

Tudo começou com conexão

Pesquisadores do governo começaram a conectar várias redes já na década de 1960, resultando em redes interconectadas. Mas o nascimento da Internet como a conhecemos foi em 1º de janeiro de 1983, quando o protocolo TCP/IP foi implementado. Era o elo perdido. Isso permitiu que computadores e redes diferentes se comunicassem usando um padrão comum.

Em 1991,  o CERN  lançou seu software para a World Wide Web, que eles usaram internamente por vários anos. O interesse nessa sobreposição visual para a web foi imediato e generalizado. No final de 1994, havia  10.000 servidores web e 10 milhões de usuários .

Esses dois marcos – a Internet e a World Wide Web – representam lados muito diferentes da conectividade. Mas eles também compartilham muitos dos mesmos recursos.

Comunicação significa exatamente isso. Você está se conectando a algum dispositivo remoto, como um servidor. E você se conecta a ele porque tem algo que você precisa ou deseja. Mas como obter esse recurso hospedado remotamente na máquina local a partir da linha de comando do Linux?

Em 1996, surgiram dois utilitários que permitiam o download de recursos hospedados remotamente. Este é wgeto que saiu em janeiro, e cURLque saiu em dezembro. Ambos funcionam na linha de comando do Linux. Ambos se conectam a servidores remotos e ambos buscam dados para você.

Mas não é apenas o caso usual que o Linux fornece duas ou mais ferramentas para fazer o mesmo trabalho. Esses utilitários têm diferentes finalidades e diferentes especializações. O problema é que eles são semelhantes o suficiente para causar confusão sobre qual usar e quando.

Considere dois cirurgiões. Você provavelmente não quer que um cirurgião oftalmologista faça uma cirurgia de ponte de safena em você, nem quer que um cirurgião cardíaco faça uma operação de catarata em você. Sim, ambos são profissionais médicos altamente qualificados, mas isso não significa que possam substituir um ao outro.

O mesmo vale para wgete cURL.

Diferentes propósitos, diferentes funções, algumas se sobrepõem

A letra “w” no wgetcomando indica sua finalidade. Seu principal objetivo é carregar páginas da web ou até mesmo sites inteiros. Sua manpágina o descreve como um utilitário para baixar arquivos da Internet usando os protocolos HTTP, HTTPS e FTP.

Pelo contrário, cURLfunciona com 26 protocolos, incluindo SCP, SFTP e SMSB, além de HTTPS. Sua manpágina diz que é uma ferramenta para transferir dados de ou para um servidor. Ele não foi projetado especificamente para funcionar com sites. Ele foi projetado para se comunicar com servidores remotos usando qualquer um dos muitos protocolos de Internet suportados.

Portanto wget, é predominantemente orientado a sites, cURLenquanto funciona em um nível mais profundo, no nível da internet simples.

wgetpode recuperar páginas da Web e pode navegar recursivamente por estruturas de diretório inteiras em servidores da Web para baixar sites inteiros. Ele também pode definir os links nas páginas recuperadas para apontar corretamente para as páginas da Web em seu computador local, em vez de suas contrapartes em um servidor Web remoto.

cURLpermite que você interaja com um servidor remoto. Ele pode baixar arquivos e extraí-los. cURL funciona com proxies SOCKS4 e SOCKS5 e HTTPS para proxies. Ele suporta a descompactação automática de arquivos compactados nos formatos GZIP, BROTLI e ZSTD. cURLtambém permite que você baixe várias transferências em paralelo.

A sobreposição entre os dois é que wgetambos cURLpermitem que você obtenha páginas da web e use servidores FTP.

Esta é apenas uma métrica aproximada, mas você pode ter uma ideia dos conjuntos de recursos relativos das duas ferramentas observando o comprimento de suas manpáginas. Em nossa máquina de teste, a página de manual para wgettem 1433 linhas. A página manpara cURLé uma gritante 5296 linhas.

Uma rápida olhada no wget

Como wgetfaz parte do projeto GNU , você deve encontrá-lo pré-instalado em todas as distribuições Linux. É fácil de usar, especialmente para os usos mais comuns: download de páginas ou arquivos da web.

Basta usar wgeto comando com a URL da página da web ou arquivo remoto.

wget https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

O arquivo é extraído e salvo em seu computador com o nome original.

Para salvar o arquivo com um novo nome, use a -Oopção (documento de saída).

wget -O word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

O arquivo resultante é salvo com o nome que escolhemos.

Não use esta -Oopção ao pesquisar sites. Se você fizer isso, todos os arquivos extraídos serão adicionados a um.

Para obter todo o site, use o -mparâmetro (espelho) e a URL da página inicial do site. Você também pode usar --page-requisitespara garantir que todos os arquivos de suporte necessários para exibir as páginas da Web corretamente também sejam carregados. Essa --convert-linksconfiguração configura os links no arquivo resultante para apontar para os destinos corretos em seu computador local, em vez de para locais externos no site.

Uma rápida olhada no cURL

cURLé um projeto independente de código aberto. Ele vem pré-instalado no Manjaro 21 e no Fedora 36, ​​mas precisava ser instalado no Ubuntu 21.04.

Este é o comando para instalar o cURL no Ubuntu.

sudo apt install curl

Para carregar o mesmo arquivo com wgete salvá-lo com o mesmo nome, precisamos usar este comando. Observe que a -oopção (sair) é escrita em letras minúsculas com cURL.

curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

O arquivo foi baixado para nós. Uma barra de progresso ASCII é exibida durante o download.

Para se conectar a um servidor FTP e fazer upload de um arquivo, use a -uopção (usuário) e especifique um par de nome de usuário/senha, assim:

curl -o test.png -u demo:password ftp://test.rebex.net/pub/example/KeyGenerator.png

Isso baixa e renomeia o arquivo do servidor FTP de teste.

Não há melhor

É impossível responder “Qual devo usar” sem perguntar “O que você está tentando fazer?”

Depois de entender o que wgete o cURLque fazer, você entenderá que eles não estão competindo. Eles não atendem ao mesmo requisito e não tentam fornecer a mesma funcionalidade.

Carregar páginas da web e sites é wgetonde está a excelência. Se é isso que você está fazendo, use wget. Para todo o resto – como baixar ou usar qualquer um dos muitos outros protocolos – use cURL.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *