Warum sollten Sie den Authorization-Header mit base64 codieren?

ür die API von @ Twitter muss ein Authorization-Header gesendet werden, der eine Base64-Codierung eines API-Schlüssels ist, der mit einem geheimen API-Schlüssel verknüpft ist. In Node verwende ich:

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

Der gesendete Header wird zu:

Authorization: 'Basic ' + base64

Was ist der Punkt, an dem base64 die Zeichenfolge "apiKeyHere: apiSecretHere" codiert? Warum nicht einfach einen Authorization-Header akzeptieren, der die unformatierten API-Anmeldeinformationen enthält?

Diese Frage ähneltWas ist der Zweck der Base 64-Codierung und warum wird sie bei der HTTP-Basisauthentifizierung verwendet? aber die gewählte Antwort beantwortet meine Frage nicht vollständig. Der API-Schlüssel von Twitter und der geheime API-Schlüssel sind bereits HTTP-kompatible Zeichen. Sie sehen ungefähr so aus (diese sind nicht echt):

Consumer Key (API Key) 8dme3utVQfOhlPk5BUG9XbFxR

Consumer Secret (API Secret) QFZXoC7MP72JZtGMBNpjLGI4Vl1xr1q9dyPLp3u7jGtkESpbLm

So warum Base64 es kodieren? Darüber hinaus heißt es in diesem Beitrag, dass "die Absicht der Codierung darin besteht, nicht HTTP-kompatible Zeichen, die im Benutzernamen oder Kennwort enthalten sein können, in solche zu codieren, die HTTP-kompatibel sind." Wären ein Benutzername und ein Passwort nicht bereits HTTP-kompatible Zeichen?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage