Guia Rápido de cURL
Comandos úteis do cURL com parâmetros
Aqui está uma referência rápida dos comandos mais úteis do cURL e seus parâmetros:

A imagem acima foi gerada pelo Flux - modelo de IA de texto para imagem.
O cURL é uma ferramenta essencial de linha de comando para fazer requisições HTTP e transferir dados. Para um guia abrangente sobre ferramentas de desenvolvimento, incluindo Git, Docker, VS Code, bash, Terraform, PostgreSQL, GitHub Actions e gerenciamento de pacotes do Linux, consulte Ferramentas de Desenvolvimento: O Guia Completo para Fluxos de Trabalho Modernos de Desenvolvimento.
Uso Básico do cURL
- Baixar um arquivo:
curl http://example.com/file.zip -o file.zip - Baixar vários arquivos:
curl -O URL1 -O URL2 - Seguir redirecionamentos:
curl -L http://example.com/file - Exibir apenas cabeçalhos:
curl -I http://example.com
Autenticação
- Autenticação básica:
curl -u username:password http://example.com. O curl defineAuthorization: Basica partir desse usuário e senha. O mesmo cabeçalho, construído comprintfebase64, está na referência rápida de codificação e decodificação Base64. - Usar arquivo .netrc:
curl --netrc-file .netrc http://example.com
Métodos HTTP
- Requisição POST:
curl -X POST -d 'name=value' http://example.com - Requisição PUT:
curl -X PUT -d @file http://example.com - Método personalizado:
curl -X METHOD http://example.com
Cabeçalhos e Dados
- Adicionar cabeçalho personalizado:
curl -H "X-Header: Value" http://example.com - Enviar dados JSON:
curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com - Enviar dados de formulário:
curl -F "key=value" -F "file=@localfile" http://example.com
Opções SSL/TLS
- Ignorar verificação do certificado SSL:
curl -k https://example.com - Usar certificado de cliente:
curl --cert cert.pem --key key.pem https://example.com
Proxy e Rede
- Usar um proxy:
curl -x proxysever.server.com:PORT http://example.com - Limitar taxa de download:
curl --limit-rate 1000B -O http://example.com/file
Controle de Saída
- Modo silencioso:
curl -s http://example.com - Modo detalhado:
curl -v http://example.com - Escrever saída em arquivo:
curl -o file.html http://example.com - Salvar com nome de arquivo remoto:
curl -O http://example.com/file.zip
Diversos
- Retomar um download interrompido:
curl -C - -o partial_file.zip http://example.com/file.zip - Definir um tempo limite:
curl --connect-timeout 10 http://example.com - Usar um arquivo de configuração:
curl -K config_file http://example.com
Esta referência rápida cobre os comandos cURL mais comumente usados e seus parâmetros, fornecendo uma referência rápida para diversas operações HTTP e transferências de dados.
Comandos Avançados de cURL
Aqui estão alguns comandos avançados de curl para depuração:
-
Saída detalhada:
curl -v https://example.comEste comando fornece informações detalhadas sobre a requisição e a resposta, incluindo cabeçalhos e detalhes da conexão. -
Rastreamento completo:
curl --trace - https://example.comEste comando exibe um hexdump de todos os dados recebidos e enviados, oferecendo uma visão abrangente de toda a comunicação. -
Rastreamento com marcas de tempo:
curl --trace - --trace-time https://example.comEste comando adiciona marcas de tempo à saída do rastreamento, ajudando a analisar problemas relacionados ao tempo. -
Imprimir apenas cabeçalhos de resposta:
curl -s -o /dev/null -D - https://example.comEste comando mostra apenas os cabeçalhos de resposta, útil para análise rápida de cabeçalhos. -
Imprimir apenas cabeçalhos de requisição:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'Este comando complexo filtra apenas os cabeçalhos de requisição, útil para inspecionar o que está sendo enviado. -
Usar o Depurador Pantheon:
curl -I -H "Pantheon-Debug:1" https://example.comEste comando usa o cabeçalho de Debug do Pantheon para obter informações adicionais sobre uma requisição, útil para sites hospedados no Pantheon. -
Forçar o protocolo HTTP/2:
curl --http2 https://example.comIsso garante o uso do protocolo HTTP/2, que pode ser combinado com -I para verificar o suporte a HTTP/2. -
Depurar com netcat: Em um terminal:
nc -l 1234Em outro:curl http://127.0.0.1:1234Isso permite que você veja exatamente o que o curl está enviando, útil para depuração de payloads.
Estes comandos avançados fornecem capacidades poderosas de depuração, permitindo que os desenvolvedores inspecionem vários aspectos das comunicações HTTP e resolvam problemas complexos.
Casos de Uso Comuns do cURL
O curl é uma ferramenta de linha de comando versátil com diversas aplicações. Aqui estão alguns dos casos de uso mais comuns para o curl:
Interações Web
- Baixando arquivos: O curl pode baixar arquivos de URLs.
- Web scraping: O curl pode recuperar o conteúdo de páginas da web para fins de raspagem.
- Testando sites: O curl é útil para verificar se um site está acessível e recuperar seu conteúdo.
Interações com APIs
- Enviando requisições de API: O curl suporta vários métodos HTTP (GET, POST, PUT, DELETE) para interagir com APIs.
- Testando endpoints de API: O curl oferece uma maneira rápida de testar e depurar endpoints de API sem precisar de um cliente de API dedicado.
Solução de Problemas de Rede
- Verificando conectividade: O curl pode ser usado para verificar conexões de rede e solucionar problemas.
- Testando DNS: O curl permite forçar servidores DNS específicos para solucionar problemas relacionados ao DNS.
- Inspecionando cabeçalhos: O curl pode exibir cabeçalhos HTTP, o que é útil para depuração.
Transferência de Dados
- Operações FTP: O curl suporta transferências de arquivos usando o Protocolo de Transferência de Arquivos (FTP).
- Interações SMTP: O curl pode ser usado para enviar e-mails via Simple Mail Transfer Protocol (SMTP).
Segurança e Autenticação
- Conexões SSL: O curl suporta conexões seguras usando SSL/TLS.
- Autenticação: O curl pode gerenciar vários métodos de autenticação, incluindo autenticação básica e certificados de cliente.
Desenvolvimento e Depuração
- Simulando diferentes métodos HTTP: O curl permite que os desenvolvedores testem vários métodos HTTP facilmente.
- Log detalhado: O modo detalhado do curl fornece informações detalhadas sobre o ciclo de requisição-resposta, auxiliando na depuração.
Estes casos de uso demonstram a flexibilidade do curl como ferramenta para interações web, testes de API, solução de problemas de rede e tarefas de desenvolvimento.
Teste de Desempenho de Sites com cURL
O curl é uma ferramenta poderosa para testar o desempenho de sites. Veja como você pode usá-lo para medir vários aspectos da velocidade de carregamento de um site:
Teste de Desempenho Básico
Para obter uma medida simples do tempo de carregamento de um site, use este comando:
curl -o /dev/null -s -w "Tempo Total: %{time_total}s\n" "https://example.com"
Este comando exibirá o tempo total que levou para buscar o site[2].
Métricas de Desempenho Detalhadas
Para uma análise mais abrangente, você pode usar o curl para medir várias métricas de desempenho:
curl -s -w 'Testando Tempo de Resposta do Site para: %{url_effective}\n\nTempo de Busca DNS:\t\t%{time_namelookup}\nTempo de Conexão:\t\t%{time_connect}\nTempo Pré-Transferência:\t%{time_pretransfer}\nTempo de Início da Transferência:\t%{time_starttransfer}\n\nTempo Total:\t\t%{time_total}\n' -o /dev/null https://example.com
Este comando fornece um detalhamento das diferentes etapas no processo de carregamento, incluindo o tempo de busca DNS, o tempo de conexão e o tempo total[1].
Métricas Avançadas
Para uma análise ainda mais detalhada, você pode incluir métricas adicionais:
curl -o /dev/null -w "Versão HTTP: %{http_version}\nTamanho da Página: %{size_download} bytes\nCódigo de Resposta: %{response_code}\nBusca DNS: %{time_namelookup} s\nTempo de Conexão: %{time_connect} s\nTempo Até o Primeiro Byte: %{time_starttransfer} s\nTempo Total: %{time_total} s\n" -s https://example.com
Este comando inclui informações sobre a versão HTTP, o tamanho da página e o código de resposta[3].
Benchmarking de Várias Requisições
Para testar a consistência ou monitorar o desempenho ao longo do tempo, você pode usar um loop para fazer várias requisições:
for i in {1..5}; do curl -o /dev/null -s -w "Requisição $i Tempo Total: %{time_total}\n" https://example.com; done
Isso executará o teste cinco vezes e mostrará o tempo total para cada requisição[3].
Criando um Script de Teste de Desempenho
Você pode criar um script bash simples para automatizar esses testes e salvar os resultados:
#!/bin/bash
curl -s -w 'Testando Tempo de Resposta do Site para: %{url_effective}\n\nTempo de Busca DNS:\t\t%{time_namelookup}\nTempo de Conexão:\t\t%{time_connect}\nTempo Pré-Transferência:\t%{time_pretransfer}\nTempo de Início da Transferência:\t%{time_starttransfer}\n\nTempo Total:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"
Substitua “URL” pelo site que você deseja testar. Este script salvará os resultados em um arquivo com data[5].
Ao usar estes comandos e scripts do curl, você pode medir e monitorar eficazmente o desempenho do site, ajudando a identificar possíveis gargalos e otimizar os tempos de carregamento.