Cabeçalhos, autenticação e cookies são como uma requisição se apresenta a um servidor.

-H "Nome: valor" adiciona um cabeçalho; repita para vários. A autenticação tem duas formas comuns. -u usuário:senha é HTTP Basic: o curl codifica o par em base64 num cabeçalho Authorization. Um token bearer é simplesmente um cabeçalho: -H "Authorization: Bearer TOKEN". Ambos são credenciais, então qualquer comando que os inclua deve ser tratado como sensível.

Cookies chegam com -b / --cookie (enviar um cookie, ou lê-los de um arquivo) e são salvos com -c / --cookie-jar.

Ao traduzir a requisição, o HTTP Basic vira o mecanismo de autenticação da linguagem de destino, por exemplo a tupla auth=(usuário, senha) no Python requests, enquanto um token bearer permanece um cabeçalho simples em qualquer linguagem.

Onde a credencial realmente termina

Uma senha na linha de comando do curl não fica na linha de comando. Vai para o histórico do shell e, na maioria dos sistemas, fica visível na lista de processos para qualquer um que consiga rodar ps enquanto o comando executa — inclusive outros usuários num host de salto compartilhado.

-u usuario sem os dois-pontos faz o curl perguntar a senha. --netrc lê credenciais de um arquivo. Um arquivo de configuração passado com -K as mantém fora do argv por completo.

É por isso que um comando funcional copiado de um chamado para um bastion compartilhado é uma pequena divulgação de credencial, e por que vale ler o history de uma conta compartilhada antes de supor que um segredo ainda é segredo.

O tradutor de requisições HTTP nunca envia a requisição, então qualquer token, senha ou cookie colado nele é decodificado no navegador e não vai a lugar nenhum.