* 構文 [3] [[誰何]]は [CODE(ABNF)@en[[[auth-scheme]]]] と [CODE(ABNF)@en[[[auth-param]]]] で構成されます。 [4] 両者の間は1文字以上の [CODE(ABNF)[[[SP]]]] で分離します。 ;; [5] [CODE(ABNF)[[[LWS]]]] ではなく [CODE(ABNF)[[[SP]]]] とされています。 従って[[タブ]]や[[折り畳み]]はできません。 [FIG[ [FIGCAPTION[ [2] [[RFC 1945]] における [CODE(ABNF)[[[challenge]]]] の構文 ]FIGCAPTION] [ORE(ABNF code)[ challenge = auth-scheme 1*SP realm *( "," auth-param ) auth-param = token "=" quoted-string ]PRE] ]FIG] * 引数 [7] [[誰何]]における[[引数]]は [DFN[[CODE(ABNF)[[[auth-param]]]]]] と呼ばれています。 ;; [8] ただし [[ABNF]] 構文上 [CODE(HTTP)@en[[[realm]]]] は [CODE(ABNF)@en[[[auth-param]]]] に含まれないことになっています。 ** 構文 [6] [[MIME]] や [[HTTP]] の他の[[ヘッダー]]では[[引数]]は [CODE(char)[[[;]]]] で区切るのが普通ですが、 [[誰何]]では [CODE(char)[[[[,]]]] で区切ります。 ;; [9] そのため [CODE(HTTP)@en[[[WWW-Authenticate:]]]] や [CODE(HTTP)@en[[[Proxy-Authenticate:]]]] は[[HTTPヘッダーの連結]]の処理の際に注意が必要です。 [13] [[引数]]の名前は[[ASCII大文字・小文字不区別]]です。 ** 順序 [11] [CODE(HTTP)@en[[[realm]]]] [[引数]]は唯一、 [CODE(HTTP)@en[[[auth-scheme]]]] に関わらず必須で構文的にも最初に定義されている特殊な[[引数]]です。 ;; [12] ただ最初の[[引数]]でなければならないのが [[ABNF]] 構文の定義上のものなのか、 現実にそうでなければならない要件なのかははっきりしません。 ** 引数の一覧 - [10] [CODE(HTTP)@en[[[realm]]]] * 歴史 ** RFC [REFS[ - [1] [CITE@en[RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0]] ([TIME[2012-02-18 23:25:56 +09:00]] 版) ]REFS]