nc

nc 引数 (HTTP)

仕様書

意味

[6] 「nonce count」の意味です >>3。

[4] credentials では、すべての実装が使わなければなりません >>3。

[5] 「使う」とは具体的に何なのかは謎です。

[9] これは replay attack を検出するものです >>3。

[15] Authentication-Info: ヘッダーや Proxy-Authentication-Info: ヘッダー >>18 では、 クライアントが要求で指定した値です >>14。

構文

[7] credentials では、 値は、本要求の nonce 値を使ってクライアントが送信した要求 (本要求を含みます。) の数を十六進数で表したものです。 >>3

[11] 引用文字列でなく字句を生成しなければなりません >>3, >>14。

[8] 最初の要求では nc=00000001 を送信できます >>3。

[16] Authentication-Info: ヘッダー >>14 や Proxy-Authentication-Info: ヘッダー >>18 では、 十六進数8文字でなければなりません。

[17] credentials における桁数はなぜか規定されていませんが、 サーバーが >>16 の要件を満たすためには、クライアントも >>16 の要件に従う値にしておく必要があります。
[19] RFC 2617 時代には8桁の LHEX と規定されていました >>1 が、 RFC 7616 ではなぜか削除されています。 (たぶん何も考えていないでうっかり削除した、 ただのミスでしょう。 IETF ではよくあることです。) RFC 2617 の LHEX は十六進数ですが、 小文字を使って定義しているものの、 ABNF の "..." を使っていて、大文字・小文字不区別と解釈されます。 LHEX の L は小文字を意図しているようにも思えますが、 謎です。 RFC 7616 は何も言っていません。

文脈

[10] ダイジェスト認証の credentials の auth-param で指定できます >>3。

[13] ダイジェスト認証が成功したら、 サーバーは Authentication-Info: ヘッダー >>11 や Proxy-Authentication-Info: ヘッダー >>18 に指定できます。 qop=auth や qop=auth-int が指定された場合には、 必須です >>14。

処理

[12] credentials の値は、response 引数の値の計算に使われます。

歴史

[2] この引数は RFC 2069 になく、 RFC 2617 で追加されました。