- cURL / curl
- Ferramenta de linha de comando de código aberto e biblioteca libcurl, para enviar requisições de protocolos como HTTP/HTTPS/FTP por linha de comando via URL, é a ferramenta mais utilizada por desenvolvedores para depurar APIs.
- Método HTTP
- Ação de requisição HTTP, comuns são GET (ler), POST (criar), PUT (atualização completa), PATCH (atualização parcial), DELETE (excluir), HEAD (obter cabeçalhos), OPTIONS (consultar capacidades do servidor).
- Cabeçalho (Header)
- Pares chave-valor de metadados na requisição HTTP, como Content-Type, Authorization, User-Agent, Cookie, Accept, etc., especificados no curl através de -H/--header.
- Corpo (Body)
- Parte de dados da requisição HTTP, comum em POST/PUT/PATCH, especificada no curl através de -d/--data/--data-binary/-F, formatos comuns são JSON, form-urlencoded, multipart/form-data.
- Content-Type
- Cabeçalho de requisição/resposta que indica o tipo de mídia do body. application/json indica JSON, application/x-www-form-urlencoded indica formulário codificado em URL, multipart/form-data indica formulário de upload de arquivos.
- Autenticação Basic
- Autenticação básica HTTP, transmite usuário e senha através do cabeçalho Authorization: Basic base64(user:pass), especificada no curl com -u user:pass.
- Bearer Token
- Método de autenticação baseado em tokens, transmitido através do cabeçalho Authorization: Bearer <token>, comum em JWT/OAuth2.
- User-Agent
- Cabeçalho de requisição que identifica o tipo de cliente (navegador/rastejador/script), curl envia por padrão "curl/número da versão", muitos sites bloqueiam UAs não de navegador, comumente especificado com -A.
- Cookie
- Pares chave-valor enviados pelo servidor através de Set-Cookie e devolvidos pelo navegador em requisições posteriores através do cabeçalho Cookie, para manter sessões. curl -b envia Cookie, -c salva Cookie.
- Referer
- Cabeçalho de requisição que indica a URL da página de origem da requisição atual, algumas verificações de anti-hotlink/CSRF a verificam. Definido no curl com -e.
- Redirecionamento (3xx)
- Quando o servidor retorna códigos de status 301/302/303/307/308, indica ao navegador que salte para uma nova URL. curl por padrão não segue, adicione -L/--location para seguir.
- --compressed
- Opção do curl, adiciona automaticamente o cabeçalho Accept-Encoding: deflate, gzip e descomprime automaticamente a resposta. Sem definir, a resposta pode ser dados comprimidos ilegíveis.
- -k/--insecure
- Opção do curl, ignora a verificação de certificado HTTPS, apenas para ambientes de teste com certificados autoassinados, proibido em produção.
- fetch API
- API de requisições HTTP JavaScript nativa do navegador, retorna Promise, compatível com navegadores modernos.
- Axios
- Biblioteca cliente HTTP popular baseada em Promise, compatível com navegador e Node.js, serialização JSON automática, interceptores, cancelamento por timeout.
- OkHttp
- Biblioteca cliente HTTP Java/Android da Square, alto desempenho, compatível com HTTP/2, pool de conexões, GZIP transparente.
- HttpClient (.NET)
- Cliente HTTP recomendado para C#/.NET, namespace System.Net.Http, API padrão do .NET Core/.NET 5+.
- Invoke-RestMethod
- Cmdlet de requisição HTTP integrado no PowerShell 3.0+, analisa automaticamente respostas JSON/XML como objetos do PowerShell.