paint-brush
Uma introdução ao cURL: o cliente HTTP mais popularpor@brightdata
Novo histórico

Uma introdução ao cURL: o cliente HTTP mais popular

por Bright Data6m2024/07/29
Read on Terminal Reader

Muito longo; Para ler

CURL é uma ferramenta de linha de comando e uma biblioteca chamada libcurl, que possui recursos como suporte SSL, tunelamento de proxy, configuração de cabeçalho e gerenciamento de cookies. cURL é pré-instalado no Linux, macOS e Windows, tornando-o a ferramenta ideal para solicitações da web na linha de comando.
featured image - Uma introdução ao cURL: o cliente HTTP mais popular
Bright Data HackerNoon profile picture
0-item

Segurem seus teclados, desenvolvedores web! Se o seu kit de ferramentas não possui cURL, você pode estar perdendo uma das ferramentas mais poderosas do jogo. cURL não é apenas um cliente HTTP baseado em CLI – é o cliente HTTP de linha de comando!


Junte-se a nós em uma jornada ao coração do cURL, onde descobriremos seus mistérios, exploraremos seus recursos e equiparemos você com o conhecimento para usá-lo como um profissional. Pronto para liberar o verdadeiro poder do cURL? Vamos rolar!

O que é cURL?

cURL , abreviação de “Cliente para URLs”, é um projeto de software que abrange uma ferramenta de linha de comando e uma biblioteca chamada libcurl. Esta dupla é especializada em transferência de dados com sintaxe de URL em uma variedade de protocolos de rede. libcurl também possui recursos como suporte SSL, tunelamento de proxy, configuração de cabeçalho e gerenciamento de cookies.


Aprofundar-se na lista completa de protocolos suportados pelo libcurl é como navegar em uma sopa de letrinhas digital. Isso inclui HTTP, HTTPS, FTP, SFTP, IMAP, POP3, SMTP, MQTT e dezenas de outros. A lista é tão longa que talvez você nunca tenha ouvido falar de alguns deles – fique tranquilo, se for esse o caso, você não está sozinho! 😜


Por que o cURL alcançou o status de estrela do rock entre os desenvolvedores? É tudo uma questão de habilidade multiplataforma! Com ligações libcurl disponíveis em tantas linguagens de programação – pense em PHP, Python e Java – o cURL integra-se perfeitamente em diversas pilhas de tecnologia. A popularidade reside na sua onipresença. cURL é pré-instalado no Linux, macOS e Windows, tornando-o a ferramenta ideal para solicitações da Web no terminal de qualquer máquina, pronta para uso.


Seja recuperando conteúdo da web, testando APIs ou fazendo upload de arquivos, cURL se destaca como uma ferramenta essencial no kit de ferramentas de qualquer desenvolvedor web. Nada se compara à sua flexibilidade e eficiência incomparáveis. 🚀

cURL em ação: sintaxe e exemplos

Então você tem cURL em seu kit de ferramentas, mas como usá-lo? Simples! Execute um comando em seu terminal seguindo esta sintaxe:

 curl [options] [URL]

URL é o destino – o servidor ou recurso online que você está almejando, enquanto algumas opções comuns de cURL são:

  • -X ou --request : para definir o método HTTP a ser usado.

  • -d ou --data : para adicionar dados no corpo da sua solicitação.

  • -b ou --cookie : para gerenciar cookies para suas solicitações.

  • -H ou --header : para adicionar um cabeçalho personalizado às suas solicitações. Para vários cabeçalhos, repita as opções várias vezes. GET por padrão.

  • -v ou --verbose : para imprimir informações detalhadas para depuração.


Para conhecer todas as opções disponíveis, confira a documentação 🔎


⚠️ Nota 1 : Cuidado, as opções curl da linha de comando são sensíveis. Assim, -x e -X têm dois significados diferentes.


⚠️ Nota 2 : No PowerShell, curl é um alias para Invoke-Request . Para usar cURL no Windows, escreva curl.exe em vez de curl .


Agora prepare-se para ver a sintaxe cURL em ação em exemplos do mundo real categorizados por métodos HTTP !

PEGAR

Veja como usar cURL para obter o HTML de origem de uma página da web de destino:

 curl "https://example.com/"


Nos bastidores, cURL fará uma solicitação GET, buscará o documento HTML associado à página da web https://example.com/ e o imprimirá no terminal.


Você acabou de recuperar informações com um único comando. Impressionante, não é? 🔥

PUBLICAR

O exemplo cURL POST abaixo chama o endpoint https://api.example.com/users com os dados JSON necessários para criar um novo usuário:

 curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' "https://api.example.com/users"


Observe a opção -X para especificar o método HTTP desejado. Preste atenção também ao uso da opção -H , que define o cabeçalho Content-Type , e da opção -d , especificando os dados JSON brutos em uma string. Confira um guia de solicitação cURL POST dedicado!

COLOCAR

As chamadas cURL PUT seguem a seguinte sintaxe:

 curl -X PUT -d "name=Amazon%20Scraping&description=Automated%20data%20extraction%20for%20retrieving%20price%20data&status=completed" "https://api.example.com/projects/12"


A solicitação HTTP atualizará o projeto com ID 12 usando os dados fornecidos. Neste exemplo, os dados no corpo da solicitação estão no formato application/x-www-form-urlencoded , em contraste com o corpo JSON usado na chamada cURL POST acima. Essa flexibilidade nos formatos de dados mostra a adaptabilidade do cURL para diferentes casos de uso.

CORREÇÃO

Quer realizar uma solicitação PUT em cURL para atualizar um único campo de um recurso online? Veja como você pode fazer isso:

 curl -X PATCH -d "status=failed" "https://api.example.com/projects/12"

EXCLUIR

cURL permite fazer solicitação DELETE e apagar a existência de entidades existentes, conforme abaixo:

 curl -X DELETE https://api.example.com/user/431


Após esta chamada de API, o usuário com ID 431 não existirá mais!

Opções avançadas de cURL

cURL oferece uma infinidade de opções, cada uma oferecendo um recurso exclusivo para casos de uso complexos. À medida que você navega por esse universo, certas opções avançadas se destacam. Aqui estão as 10 opções avançadas de cURL mais úteis:


  • -o ou --output : para gravar a saída no arquivo local especificado em vez de<stdoud> .
  • -O ou --remote-name : para salvar a saída em um arquivo remoto.
  • -i ou --include : para incluir os cabeçalhos HTTP de resposta na saída.
  • -u ou --user : Para autenticar com um nome de usuário e senha no formato user:password .
  • -L ou --location : Para seguir os redirecionamentos quando o servidor responder com um código de resposta 3XX .
  • -e ou --referer : Para enviar as informações da “Página de referência” para o servidor HTTP.
  • -x ou --proxy : para especificar a URL do servidor proxy para fazer a solicitação. Para mais informações, leia nosso tutorial sobre como usar cURL com proxy ou assista ao vídeo abaixo.
  • --rate : para especificar a frequência máxima de transferência que você deseja que o cURL respeite para evitar o acionamento de medidas de limitação de taxa.
  • --data-binary : Para enviar dados ao servidor exatamente como especificado, sem nenhum processamento extra.
  • --compressed : para solicitar uma resposta compactada e descompactar automaticamente o conteúdo da resposta.


Dominar essas opções permite que você use cURL com sutileza incomparável no reino em constante evolução das interações na web. 🌐

Como tirar o máximo proveito do cURL

cURL é uma potência para solicitações da web, mas sua configuração padrão o deixa vulnerável a medidas anti-bot. Considere, por exemplo, seu cabeçalho User-Agent padrão:

 curl/XYZ


Veja como alterar o valor do agente do usuário cURL .


Agora, compare isso com o agente de usuário mais recente do Chrome:

 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Essa é uma string bem diferente!


Usar cURL sem substituir esse cabeçalho é como gritar para o servidor de destino: “Olhe para mim! Sou uma solicitação de robô automatizada, sem navegador!”

Não é à toa que isso pode desencadear mecanismos defensivos 😅. Além disso, não esqueça que cURL é apenas um cliente HTTP. Portanto, ele não pode lidar com páginas que dependem de JavaScript para renderização ou recuperação de dados.


👎Isso é ruim se você quiser usar cURL para web scraping !👎


Você deveria parar de usar cURL, então? De jeito nenhum! Você só precisa equipá-lo com as ferramentas certas! Para desbloquear todo o potencial do cURL e resolver suas limitações, integre-o a:


  • Proxy da Web : para obter um IP novo, geolocalizado e confiável a cada solicitação; ou um
  • Ferramenta de desbloqueio da Web : para acessar estáticas públicas ou páginas da Web dependentes de JavaScript e, ao mesmo tempo, ignorar tecnologias de detecção de bots.


Seja qual for a sua decisão, a Bright Data ajuda você! Com uma das maiores e mais confiáveis redes proxy do mercado , a Bight Data possui milhões de servidores proxy espalhados por todo o mundo. Além disso, sua solução Web Unlocker permite acessar qualquer site público via cURL, independentemente do nível de proteção contra bot.

Conclusão

cURL, a estrela do rock dos clientes HTTP, é a ferramenta ideal para desenvolvedores que fazem solicitações da web no terminal. Aqui, você dominou seu uso com métodos HTTP comuns e explorou suas diversas opções. Essa é uma ferramenta poderosa, mas sejamos realistas: a maioria dos sites será capaz de detectar que você os está contatando via cURL.


Não tenha medo! O antídoto é simples: peça a ajuda de um proxy da web ou, para obter melhores resultados, adote a solução Web Unlocker da Bright Data . Junte-se a nós em nossa missão de democratizar a Internet, tornando-a acessível a todos, em qualquer lugar – até mesmo através do poderoso cURL!


Até a próxima, continue explorando a Web com liberdade!