[11] [DFN[[CODE[[[nextnonce]]]]]] [[引数]]は、
[[クライアント]]が次に使うべき [[nonce]]
を[[サーバー]]が指定するものです。
[[HTTP]] [[ダイジェスト認証]]で使います。

* 仕様書

[REFS[
- [1] '''[CITE@en[RFC 7616 - HTTP Digest Access Authentication]] ([TIME[2015-11-10 07:05:08 +09:00]] 版) <https://tools.ietf.org/html/rfc7616#section-3.5>'''
- [12] [CITE@en[RFC 7616 - HTTP Digest Access Authentication]] ([TIME[2015-11-10 07:05:08 +09:00]] 版) <https://tools.ietf.org/html/rfc7616#section-3.8>
]REFS]

* 意味

[4] [CODE(HTTP)@en[[[nextnonce]]]] [[引数]]の値は、
後の[[認証]]の[[応答]]で[[クライアント]]が使うべきだと[[サーバー]]の指定する
[[nonce]] です [SRC[>>1]]。

[6] 一過性 (one-time) の [[nonce]] の指定や、何らかの理由で [[nonce]]
を変更したい時に、使うことができます [SRC[>>1]]。

;; [9] [[要求]]が[[パイプライン化]]されていると[[クライアント]]が次の[[要求]]にこれを反映させることができないかもしれませんから、
[[サーバー]]は一時的に古い [[nonce]] も認めるなど、[[性能]]と[[保安性]]の[[トレードオフ]]を十分考慮する[['''べきです''']]。
[CODE[[[nc]]]] [[引数]]を使えば、[[パイプライン化]]の効果を犠牲にせず[[保安性]]をほぼ保つことができます。
[SRC[>>1]]

* 構文

[10] [[引用文字列]]構文で[[生成]]しなければ[['''なりません''']] [SRC[>>1]]。

* 文脈

[3] [[ダイジェスト認証]]に成功した際の[[応答]]の [CODE(HTTP)@en[[[Authentication-Info:]]]]
[[ヘッダー]] [SRC[>>1]]
や [CODE(HTTP)@en[[[Proxy-Authentication-Info:]]]] [[ヘッダー]] [SRC[>>12]] の [CODE(ABNF)@en[[[auth-param]]]] として指定できます。

;; [13] [[RFC 2617]] は本[[引数]]を必須としていました [SRC[>>5]]
([CODE(HTTP)@en[[[Authentication-Info;]]]] [[ヘッダー]]自体は必須ではありません)。
[[RFC 7616]] では必須とはされていません (が、意図的な変更なのかどうかは不明です)。

* 処理

[7] [[クライアント]]は、 [CODE(HTTP)@en[[[nextnonce]]]] [[引数]]を受け取ったら、
次の[[要求]]で [CODE(HTTP)@en[[[Authorization:]]]] [[ヘッダー]]を構築するときに使う[['''べきです''']]
[SRC[>>1]]。

;; [8] そうしなければ、[[サーバー]]は [CODE[[[stale]]=[[true]]]] で再[[認証]]を求めることになるかもしれません
[SRC[>>1]]。

* 歴史

[REFS[
- [2] [CITE@en[RFC 2069 - An Extension to HTTP : Digest Access Authentication]] ([TIME[2012-02-26 10:05:21 +09:00]] 版) <http://tools.ietf.org/html/rfc2069#section-2.1.3>
- [5] [CITE@en[RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication]] ([TIME[2012-01-09 21:04:30 +09:00]] 版) <http://tools.ietf.org/html/rfc2617#section-3.2.3>
]REFS]