Guia de Dicas para cURL
Comandos úteis do cUrl com parâmetros
Aqui está um guia rápido para os comandos mais úteis do cURL com seus parâmetros:
A imagem acima foi gerada por Flux - modelo de IA de texto para imagem.
Uso básico do cURL
- Baixar um arquivo:
curl http://example.com/file.zip -o file.zip
- Baixar múltiplos 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
- Usar arquivo .netrc:
curl --netrc-file .netrc http://example.com
Métodos HTTP
- Solicitação POST:
curl -X POST -d 'name=value' http://example.com
- Solicitaçã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 do 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 a taxa de download:
curl --limit-rate 1000B -O http://example.com/file
Controle de saída
- Modo silencioso:
curl -s http://example.com
- Modo verboso:
curl -v http://example.com
- Escrever saída em um arquivo:
curl -o file.html http://example.com
- Salvar com o nome do arquivo remoto:
curl -O http://example.com/file.zip
Diversos
- Retomar um download falhado:
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
Este guia rápido cobre os comandos do cURL mais comumente usados e seus parâmetros, fornecendo uma referência rápida para várias operações HTTP e transferências de dados.
Comandos avançados do cURL
Aqui estão alguns comandos avançados do cURL para depuração:
-
Saída verbosa:
curl -v https://example.com
Este comando fornece informações detalhadas sobre a solicitação e a resposta, incluindo cabeçalhos e detalhes da conexão. -
Volta completa de rastreamento:
curl --trace - https://example.com
Isso exibe um hexdump de todos os dados entrantes e saientes, oferecendo uma visão abrangente de toda a comunicação. -
Rastreamento com marcas de tempo:
curl --trace - --trace-time https://example.com
Isso adiciona marcas de tempo à saída do rastreamento, ajudando a analisar problemas relacionados a tempo. -
Imprimir apenas cabeçalhos de resposta:
curl -s -o /dev/null -D - https://example.com
Este comando mostra apenas os cabeçalhos de resposta, útil para análise rápida de cabeçalhos. -
Imprimir apenas cabeçalhos de solicitação:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'
Este comando complexo filtra apenas os cabeçalhos de solicitação, útil para inspecionar o que está sendo enviado. -
Usar o Pantheon Debugger:
curl -I -H "Pantheon-Debug:1" https://example.com
Este comando usa o cabeçalho de depuração do Pantheon para obter informações adicionais sobre uma solicitação, útil para sites hospedados no Pantheon. -
Forçar o protocolo HTTP/2:
curl --http2 https://example.com
Isso 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 1234
Em outro:curl http://127.0.0.1:1234
Isso permite que você veja exatamente o que o cURL está enviando, útil para depuração de payloads.
Esses comandos avançados oferecem capacidades poderosas de depuração, permitindo que os desenvolvedores inspecionem vários aspectos das comunicações HTTP e solucionem problemas complexos.
Casos de uso comuns do cURL
O cURL é uma ferramenta versátil de linha de comando com diversas aplicações. Aqui estão alguns dos casos de uso mais comuns do cURL:
Interações com a Web
- Baixar arquivos: o cURL pode baixar arquivos de URLs.
- Raspagem de web: o cURL pode recuperar conteúdo de páginas da web para fins de raspagem.
- Testar sites: o cURL é útil para verificar se um site está acessível e recuperar seu conteúdo.
Interações com APIs
- Enviar solicitações de API: o cURL suporta vários métodos HTTP (GET, POST, PUT, DELETE) para interagir com APIs.
- Testar endpoints de API: o cURL fornece 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
- Verificar conectividade: o cURL pode ser usado para verificar conexões de rede e solucionar problemas.
- Testar DNS: o cURL permite forçar servidores DNS específicos para solucionar problemas relacionados a DNS.
- Inspecionar 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 Protocolo de Transferência de Correio Simples (SMTP).
Segurança e autenticação
- Conexões SSL: o cURL suporta conexões seguras usando SSL/TLS.
- Autenticação: o cURL pode lidar com vários métodos de autenticação, incluindo autenticação básica e certificados de cliente.
Desenvolvimento e depuração
- Simular diferentes métodos HTTP: o cURL permite que os desenvolvedores testem facilmente vários métodos HTTP.
- Log verboso: o modo verboso do cURL fornece informações detalhadas sobre o ciclo de solicitação-resposta, ajudando na depuração.
Esses casos de uso demonstram a flexibilidade do cURL como uma ferramenta para interações com a web, testes de API, solução de problemas de rede e tarefas de desenvolvimento.
Teste de desempenho de site com cURL
O cURL é uma ferramenta poderosa para testar o desempenho de sites. Aqui está 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 carregar 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 o Tempo de Resposta do Site para :%{url_effective}\n\nTempo de Lookup:\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 uma quebra detalhada das etapas do processo de carregamento, incluindo o tempo de lookup de DNS, tempo de conexão e 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}\nLookup de DNS: %{time_namelookup} seg\nTempo de Conexão: %{time_connect} seg\nTempo até o Primeiro Byte: %{time_starttransfer} seg\nTempo Total: %{time_total} seg\n" -s https://example.com
Este comando inclui informações sobre a versão HTTP, tamanho da página e código de resposta[3].
Benchmarking de múltiplas solicitações
Para testar a consistência ou monitorar o desempenho ao longo do tempo, você pode usar um loop para fazer várias solicitações:
for i in {1..5}; do curl -o /dev/null -s -w "Solicitação $i Tempo Total: %{time_total}\n" https://example.com; done
Isso executará o teste cinco vezes e mostrará o tempo total para cada solicitação[3].
Criando um script de teste de desempenho
Você pode criar um script simples de bash para automatizar esses testes e salvar os resultados:
#!/bin/bash
curl -s -w 'Testando o Tempo de Resposta do Site para :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"
Substitua “URL” pelo site que deseja testar. Este script salvará os resultados em um arquivo com marcação de data[5].
Ao usar esses comandos e scripts do cURL, você pode medir e monitorar eficientemente o desempenho de sites, ajudando a identificar possíveis gargalos e otimizar os tempos de carregamento.