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!
Comentários
October 18 2021
Muito bom!
June 05 2022
❤️
July 23 2022
Muito bom.