RFC 2617HTTP Basic authentication では、ユーザー名とパスワードをbase64でエンコードする必要があります。
認証を受け取るために、クライアントは、資格情報のbase64エンコードされた文字列内の単一のコロン( ":")文字で区切られたユーザーIDとパスワードを送信します。
basic-credentials = base64-user-pass base64-user-pass = <base64 encoding of user-pass, except not limited to 76 char/line> user-pass = userid ":" password userid = *<TEXT excluding ":"> password = *TEXT
ユーザーIDでは大文字と小文字が区別される場合があります。
ユーザーエージェントがユーザーID「Aladdin」とパスワード「open sesame」を送信する場合は、次のヘッダーフィールドを使用します。
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Base64エンコーディングは資格情報のセキュリティを提供しないため、なぜこれが行われるのですか?
これは、セキュリティ上の理由で行われているわけではなく、特殊文字をエスケープする手段として行われています。
https://stackoverflow.com/questions/4070693/why-base64-encryption
TLSはセキュリティのために採用されます。