O Que é Comando Curl e Como Usar?

O que é Comando Curl? É um comando disponível na maioria dos sistemas baseado em Unix. Ele é usado como abreviação para “Client URL”. Comandos Curl são destinados para funcionar como uma forma de verificar a conectividade da URL, além de ser uma ótima ferramenta de transferência de dados. Vamos ver como você poderá usar o Comando Curl.

O Comando Curl suporta a lista de protocolos abaixo:

  • HTTP e HTTPS;
  • FTP e FTPS;
  • IMAP e IMAPS;
  • POP3 e POP3S;
  • SMB e SMBS;
  • SFTP;
  • SCP;
  • TELNET;
  • GOPHER;
  • LDAP e LDAPS;
  • SMTP e SMTPS.

Estes são os protocolos mais importantes suportados, mas existem outros também. Curl é empoderado por libcurl, que é uma biblioteca de transferência URL gratuita para o cliente.

Verificar Versão Curl

Antes de começar a trabalhar com Curl, é preciso fazer login no seu servidor dedicado Linux (VPS). Se você precisa de ajuda, veja este tutorial sobre SSH.

Primeiro vamos ver qual versão do Curl está disponível usando o seguinte comando:

curl --version

A saída mostrará a versão Curl com lista de protocolos suportados. Agora vamos ver alguns exemplos de comandos curl.

Comando Curl – Sintaxe Básica

Vamos aprender como usar comandos curl. A sintaxe básica do curl se parece com isto:

curl [OPTIONS] [URL]

O uso mais simples do curl é para mostrar o conteúdo de uma página. O exemplo abaixo irá renderizar a página inicial de testdomain.com.

curl testdomain.com

Isto renderizará o código-fonte completo da página inicial do domínio. Se nenhum protocolo foi especificado, o curl interpretará como HTTP.

Opções de Comandos Curl de Arquivos

Comandos curl podem fazer downloads de arquivos de um local remoto. Você pode fazer isto de duas formas:

  • -O vai salvar o arquivo no diretório atual em funcionamento com o mesmo nome do arquivo remoto.
  • -o permite especificar um nome de diferente de arquivo ou local.

Abaixo, mostramos um exemplo disso:

curl -O http://testdomain.com/testfile.tar.gz

O comando acima vai salvar isto como testfile.tar.gz.

curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz

O comando acima vai salvar isto como newtestfile.tar.gz.

Se por alguma razão, o download for interrompido, você pode reiniciá-lo usando curl. Você pode fazer isto com o seguinte comando:

curl -C - -O  http://testdomain.com/testfile.tar.gz

Usando curl, nós podemos fazer download de múltiplos arquivos, como mostramos abaixo:

curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz

Se você quer fazer o download de diversos arquivos de uma URL múltipla, liste todas elas em um arquivo. Comandos curl podem ser combinados com xargs para fazer o download de diferentes URL.

Por exemplo, se tivermos um arquivo chamado allUrls.txt que contém uma lista de todas URLs para serem baixadas, então o exemplo abaixo pode ser usado para fazer download de todos os arquivos.

xargs –n 1 curl -O < allUrls.txt

Comandos Curl para HTTP

Curl também pode ser usado quando há um proxy server. Se você está atrás de um proxy server listado no portão 8090 de sampleproxy.com, faça download dos arquivos como mostra abaixo:

curl -x  sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz

No exemplo acima, você pode pular -U username:password se o proxy não requer um método de autenticação.

Uma solicitação típica de HTTP sempre vai ter um cabeçalho. O cabeçalho do HTTP envia as informações adicionais sobre o servidor remoto junto com a solicitação atual. Mesmo que através de uma ferramenta de navegador do desenvolvedor você possa verificar a informação, também pode fazê-lo usando uma url de comando.

Abaixo está um exemplo de como recuperar informações de um site.

curl -I www.testdomain.com

Usando curl, você pode fazer um GET e um POST request. A GET request será como abaixo:

curl http://mydomain.com

Um POST request será como mostramos aqui:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp

No text=Hello está parâmetro de POST request. este comportamento será similar aos formulários HTML.

Você também pode especificar métodos múltiplos de HTTP em um único comando curl. Faça isso usando a opção –next, como esta:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp

Aqui, há um POST request seguido por um GET request.

Toda solicitação HTTP terá um agente usuário que é enviado como parte da solicitação. Isto indica que os detalhes do navegador do cliente. Por padrão, uma solicitação curl contém o curl e detalhes do número da versão do agente usuário. A saída é como mostramos abaixo:

“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”

Você pode alterar esta informação de agente de usuário padrão usando o comando abaixo:

curl -I http://mydomain.com –-user-agent “My new Browser”

Agora a saída alterada será:

“GET / HTTP/1.1” 200 “_” ”My new Browser”

Curl para Cookies

Comandos Curl podem ser usados para verificar quais os cookies são baixados em qualquer  URL. Então, se você está acessando https://www.samplewebsite.com, então você pode imprimir um arquivo, salvar os cookies e acessá-lo usando cat ou editor VM.

Abaixo você vê um exemplo do comando:

curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O

Similar a isto, se você tiver cookies em um arquivo, então você pode enviá-lo para o site. Veja o exemplo abaixo:

curl --cookie Mycookies.txt https://www. samplewebsite.com

Curl para FTP

Comandos curl suportam FTP! Você podem usá-los para baixar arquivos de um servidor remoto.

curl -u username:password -O ftp://sampleftpserver/testfile.tar.gz

No comando acima, ftp://sampleftpserver é um servidor FTP que aceita conexões. O nome do usuário e senha podem ser ignorados por conexões FTP anônimas. Digite o comando e veja a barra de progresso ser preenchida.

Você pode subir arquivos da mesma forma com os comandos abaixo:

curl -u username:password -T testfile.tar.gz ftp://sampleftpserver

De novo, podemos podemos ignorar nome do usuário e senha por conexões FTP anônimas.

Limitando Saídas Curl

Ao usar curl você não pode saber o tamanho das saídas. Você pode restringir a largura de banda para garantir que não será esmagado pelo curl.

O comando abaixo restringe a largura de banda em 100K:

curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O

Resumo

Curl é um comando inteligente e poderoso. É muito útil quando você depende de linhas de comando. Ele tem diversas opções e suporta protocolos múltiplos. Esta é uma ótima razão para aprender este comando.

Lembre-se, se você quer aprender comandos avançados, simplesmente consulte o manual que deve estar presente em todas as versões Unix.

man curl

Espero que este tutorial seja um bom começo para você usar o Curl. Como você usa este comando? Conta pra gente nos comentários abaixo!

Author
O autor

Ariane G.

A Ariane é SEO Team Leader com experiência em conteúdo, localização e SEO. Seu desafio é levar a Hostinger ao topo dos resultados no Brasil, França e Reino Unido. Eventualmente ela compartilha seu conhecimento no blog e nos tutoriais da Hostinger e no tempo livre ela gosta de explorar lugares novos e viver intencionalmente.