Por que você deve codificar base64 o cabeçalho de autorização?

A API do Twitter exige o envio de um cabeçalho de autorização que é uma codificação base64 de uma chave de API concatenada com uma chave secreta da API. No Nó, eu uso:

var base64 = new Buffer(apiKey + ':' + apiSecret).toString('base64');

O cabeçalho enviado se torna:

Authorization: 'Basic ' + base64

Qual é o ponto da base64 que codifica a sequência "apiKeyHere: apiSecretHere"? Por que não aceitar apenas um cabeçalho de autorização contendo as credenciais da API bruta?

Esta pergunta é semelhante aQual é o objetivo da codificação base 64 e por que ela é usada na autenticação básica HTTP? mas a resposta votada não responde totalmente à minha pergunta. A chave api e a chave secreta da api do Twitter já são caracteres compatíveis com HTTP. Eles se parecem com isso (estes não são reais):

Chave do consumidor (chave da API) 8dme3utVQfOhlPk5BUG9XbFxR

Segredo do consumidor (segredo da API) QFZXoC7MP72JZtGMBNpjLGI4Vl1xr1q9dyPLp3u7jGtkESpbLm

Então, por que base64 codificá-lo? Além disso, essa publicação afirma que "a intenção da codificação é codificar caracteres não compatíveis com HTTP que possam estar no nome do usuário ou senha naqueles compatíveis com HTTP". Um nome de usuário e senha já não seriam caracteres compatíveis com HTTP?

questionAnswers(4)

yourAnswerToTheQuestion