Enviando uma requisição HTTP com autenticação básica

Bash:
Enviando uma requisição HTTP com autenticação básica

Como Fazer:

Para um rápido giro pelo assunto, eis um exemplo usando o curl:

# Envia uma requisição GET com autenticação básica
curl -u usuario:senha http://exemplo.com/recurso

# Saída esperada: detalhes do recurso solicitado ou mensagem de erro

Se você prefere não colocar a senha diretamente na linha de comando, curl pode pedir interativamente:

# -u com o nome de usuário apenas, `curl` pedirá a senha
curl -u usuario http://exemplo.com/recurso

# Digite a senha quando for solicitada e veja a saída.

Também dá para codificar a senha em base64 e usar diretamente nos cabeçalhos da requisição:

# Codifica as credenciais em base64
credenciais=$(echo -n usuario:senha | base64)

# Envia a requisição com o cabeçalho de Autorização
curl -H "Authorization: Basic $credenciais" http://exemplo.com/recurso

# Saída esperada: detalhes do recurso

Aprofundando

A autenticação básica em HTTP, uma das maneiras mais simples de controlar o acesso a recursos na web, existe desde os primórdios da internet. Usuários e senhas são codificados em base64 e enviados no cabeçalho da requisição. Embora simples, é considerada insegura se não usada com HTTPS, pois os dados podem ser facilmente decodificados se interceptados.

Alternativas mais seguras incluem autenticação Digest, OAuth e tokens de acesso. Estes métodos oferecem mais segurança, mas são mais complexos para implementar.

Detalhes da implementação de autenticação básica em Bash geralmente giram em torno do curl, devido à sua simples sintaxe e vasta adoção. No entanto, scripts Bash podem também aproveitar outras ferramentas como wget ou utilizar recursos internos do próprio Bash para criar sockets e enviar requisições diretamente, embora seja bem mais complicado.

Veja Também