Opção cURL | Descrição | Exemplo de uso |
---|---|---|
-H , --header | Passar cabeçalho(s) personalizado(s) para o servidor | curl -H "Header: Value" http://example.com |
-A , --user-agent | Defina a sequência de caracteres do agente do usuário | curl -A "MyAgent" http://example.com |
-e , --referer | Defina o cabeçalho Referer | curl -e "http://referrer.com" http://example.com |
-b , --cookie | Enviar cookies de string ou arquivo | curl -b "name=value" http://example.com |
-d , --data | Enviar dados em uma solicitação POST | curl -d "key=value" http://example.com |
Enviar cabeçalhos HTTP personalizados com cURL é essencial para testar e depurar aplicativos da web. Neste artigo, exploraremos como enviar cabeçalhos HTTP usando cURL, uma ferramenta de linha de comando poderosa para transferir dados com URLs.
Compreendendo os cabeçalhos HTTP
Cabeçalhos HTTP são pares de chave-valor enviados em solicitações e respostas entre clientes e servidores. Eles transmitem meta-informações sobre a solicitação ou resposta, como tipo de conteúdo, credenciais de autorização e diretivas de cache. Cabeçalhos HTTP comuns incluem:
Nome do Cabeçalho | Propósito |
---|---|
User-Agent | Identifica o software cliente |
Accept | Especifica tipos de conteúdo aceitáveis |
Authorization | Contém credenciais para autenticação |
Content-Type | Indica o tipo de mídia do recurso |
Referer | O endereço da página da web anterior |
Por que enviar cabeçalhos HTTP personalizados com cURL?
Cabeçalhos HTTP personalizados permitem que você:
- Simule solicitações de diferentes navegadores ou dispositivos.
- Teste APIs que exigem cabeçalhos específicos.
- Depure problemas modificando cabeçalhos.
- Controle o cache e a negociação de conteúdo.
- Autentique solicitações para recursos protegidos.
Enviando cabeçalhos HTTP com cURL
Usando o -H
ou --header
Opção
Para enviar um cabeçalho HTTP personalizado com cURL, use o -H
ou --header
opção seguida do cabeçalho:
curl -H "Header-Name: Header-Value" http://example.com
Vários Cabeçalhos
Você pode enviar vários cabeçalhos especificando vários -H
opções:
curl -H "First-Header: Value1" -H "Second-Header: Value2" http://example.com
Substituindo ou modificando cabeçalhos padrão
cURL envia automaticamente certos cabeçalhos como Host
e User-Agent
. Para substituir um cabeçalho padrão, especifique-o com um novo valor. Por exemplo, para alterar o User-Agent
:
curl -H "User-Agent: MyCustomAgent" http://example.com
Se você quiser remover um cabeçalho, defina-o como uma string vazia:
curl -H "Accept:" http://example.com
Exemplos de envio de cabeçalhos HTTP com cURL
Exemplo: Configurando User-Agent
O User-Agent
header identifica o software cliente. Para defini-lo:
curl -H "User-Agent: Mozilla/5.0" http://example.com
Alternativamente, você pode usar o -A
opção:
curl -A "Mozilla/5.0" http://example.com
Exemplo: Adicionando Cabeçalho de Autorização
Para APIs que exigem autenticação, pode ser necessário enviar um Authorization
cabeçalho:
curl -H "Authorization: Bearer your_token_here" http://api.example.com
Exemplo: Definindo Content-Type para solicitações POST
Ao enviar dados em uma solicitação POST, pode ser necessário especificar o Content-Type
cabeçalho:
curl -d '{"key":"value"}' -H "Content-Type: application/json" http://example.com/api
Exemplo: Usando cabeçalhos personalizados com proxies
Se estiver usando um proxy para enviar suas solicitações, você pode combinar opções de proxy com cabeçalhos personalizados:
curl -x http://proxyelite.info:8080 -H "Custom-Header: Value" http://example.com
Dicas e Melhores Práticas
- Coloque os cabeçalhos entre aspas: Sempre coloque os valores do cabeçalho entre aspas para evitar a interpretação do shell, especialmente quando eles contêm espaços ou caracteres especiais.
- Modo verboso: Use o modo detalhado
-v
para ver os cabeçalhos enviados e recebidos. Isso é útil para depuração:
curl -v -H "Header: Value" http://example.com
- Dados sensíveis: Tenha cuidado ao enviar dados confidenciais em cabeçalhos, especialmente ao compartilhar exemplos de comandos ou logs.
- Cabeçalhos Padrão: Lembre-se de que o cURL envia alguns cabeçalhos padrão. Sobrescrevê-los pode afetar como o servidor responde.
Erros comuns a evitar
- Citações ausentes: Esquecer aspas nos cabeçalhos pode levar a erros ou comportamento inesperado.
- Sintaxe de cabeçalho incorreta: Os cabeçalhos devem estar no formato
Header-Name: Value
. - Sensibilidade a maiúsculas e minúsculas:Embora os nomes dos cabeçalhos não diferenciem maiúsculas de minúsculas, é uma boa prática usar a capitalização padrão.
Conclusão
Enviar cabeçalhos HTTP com cURL é simples e poderoso. Não importa se você está testando APIs ou simulando clientes diferentes, dominar as opções de cabeçalho do cURL aumenta sua capacidade de interagir com servidores web de forma eficaz.