[11] WWW-Authenticate:
ヘッダーは、
当該対象資源へのアクセスに必要な認証についての情報を含む challenge
を指定するものです。
[5] WWW-Authenticate:
ヘッダーは、
対象資源に適用できる認証方式(群)と認証引数を示します >>3。
[414] WWW-Authenticate:
ヘッダーの値は、
1つ以上の challenge のリスト (#
) です >>3, >>413, >>417。
[1] この欄は、読点で分離することで複数の誰何を併記できます。
ところが、他の同様の欄とは異なり、誰何自体が引数の分離のために読点を使ってしまっています。
auth-scheme
があるので構文上曖昧性はないのですが、
このために (欄名に依存しない) 汎用の構文解析器で複数の誰何を分離することができません。
おそらくこのような困った仕様になった原因は太古の HTTP では読点とセミコロンが曖昧に使われていたときの名残でしょう。
[8] 実装によっては、複数の challenge の指定に対応していないことがあります。 鯖は複数の challenge の指定を避けるべきでしょう。
[407] 鯖は、 401
応答を生成する場合、
1つ以上の challenge を含む
WWW-Authenticate:
ヘッダーを送信しなければなりません。
>>3, >>406, >>413, >>417, >>408, >>409, >>411, >>416。
[6] 鯖は、credentials を指定すると (あるいは他の credentials
に変更すると) 応答に影響するかもしれないことを示すため、
他の応答でも WWW-Authenticate:
ヘッダーを生成して構いません >>3。
[424] RFC 4559 は 200
でも WWW-Authenticate:
ヘッダーを用いるとしています。
[7] WWW-Authenticate:
ヘッダーは複数指定できます >>3。
[410] プロキシは、転送の際に WWW-Authenticate:
ヘッダーを変更してはなりません >>3, >>409, >>412, >>419, >>17。
[421] OAuth 1.0 を使う場合、 auth-scheme が OAuth
である
WWW-Authenticate:
欄を含めても構わない >>420 とされています。
[18] WWW-Authenticate:
ヘッダーは、
要求に適切な credentials が含まれず認証に失敗した時に使います。
認証に成功した時のサーバーからクライアントへの情報伝達には、
Authentication-Info:
ヘッダーが使われます。
[2] realm
にセミコロンが含まれると、
(quoted-string
にしているのに)
ClassicMozilla はセミコロン前でぶった切ってしまいます。
(そのくせ、引用開始の引用符はちゃんと省いて表示してくれる。)
(NN2, NC 4.01 で確認。)
WinIE1 ですらこんなことはありませんでした。
なんと、 Mosaic Netscape 0.9 は正しく処理します。
[402] フォームの提出先が基本認証の時の動作が変なブラウザーがありますね。
Gecko とか WinIE とか WebKit とか。最初必ず認証なしで試して、 401
なら再試行するところ、なぜか再試行しようとして接続を試みたままだったり。
Firefox だと最初の1回目だけ変なことがあって次からはうまくいくみたいですが。
リンク先が違うディレクトリだったりとかも関係してるっぽ。
Safari と Chrome の間でもなんかちがうな。。。
[405] 起源鯖ではなく、途中の串について行う認証のための
Proxy-Authenticate:
欄もあります。
Negotiate
の項を参照。