"username:password" の結果の文字列リテラルが Authorization ヘッダーで Base64 でエンコードされるのはなぜですか? その背景は?
質問する
7240 次
2 に答える
5
これは、エンコードされる前のuserid-passwordタプルの生成規則です。
userid-password = [ token ] ":" *TEXT
ここで、トークンは次のように指定されます。
token = 1*<any CHAR except CTLs or tspecials>
これは基本的に 32 ~ 126 の範囲内の任意の US-ASCII 文字ですが、一部の特殊文字( (
、)
、<
、>
、@
、,
、;
、:
、\
、"
、/
、[
、スペース、および水平タブ)は]
含まれません。?
=
{
}
また、TEXTは次のように指定します。
TEXT = <any OCTET except CTLs,
but including LWS>
これは基本的に、制御文字(コードポイント0 ~ 31、127) を除く任意のオクテット(0 ~ 255) シーケンスですが、CRLF シーケンスが先行する可能性のある 1 つ以上のスペースまたは水平タブ文字である線形空白シーケンスが含まれます。
LWS = [CRLF] 1*( SP | HT )
これはヘッダー フィールドの値を壊しませんが、LWSには単一のスペースと同じセマンティクスがあります。
折りたたみを含むすべての線形空白は、SP と同じセマンティクスを持ちます。
このようなシーケンスをそのまま保持するために、文字列はフィールド値として配置される前にエンコードされます。
于 2012-12-01T16:40:41.537 に答える