node identifier

節点識別子 (HTTP)

[2] 節点識別子 (node identifier) は、 Forwarded: ヘッダーにおいてホストポートを表す識別子です。

仕様書

構文

[3] 節点識別子は、節点名と省略可能なポート番号を組み合わせたものです。 ポート番号を指定する場合は間に : を置きます。 >>1

  1. 節点名
  2. ?
    1. :
    2. ポート番号

節点名

[8] 節点名は次のいずれかです >>1

[7] IPアドレスRFC 3986 IPv4address または [] で括った RFC 3986 IPv6address として表します >>1

  1. |
    1. IPv4アドレス
    2. =
      1. [
      2. IPv6アドレス
      3. ]
    3. unknown
    4. obfnode

[21] IPv6アドレスの表現は RFC 5952 に従うべきです >>1

[22] IPアドレスは内部ネットワークのものかもしれません >>1

[9] ホスト名ゾーン識別子 (RFC 6874) は認められていません。 ドメイン名が使えない点がホストとポートとは大きく異なります。
[10] IPv6アドレスは括弧で括られていることにより、 obfnode_ から始まることにより、 いずれで指定されているかは曖昧なく決定できます。

ポート番号

[11] 節点識別子におけるポート番号は、実際のポートを表す5桁以下ASCII数字の列か、 実際の値を隠した obfport です >>1

  1. |
    1. 1-5文字のASCII数字
    2. obfport
[12] obfport は常に _ から始まるので、どちらかは曖昧なく決定できます。
[17] 先導0は禁止されていません。

unknown

[23] unknown は、識別情報が不明であるときに使います >>1

[20] unknown であってもポート番号を指定することはできますが、 その意味は当該の管理者によります >>1

[27] Warning: ヘッダープロキシの名前の構文では、 - が相当します。

難読化識別子

[24] obfnode, obfport については難読化識別子を参照。

非 IP ネットワークアドレス

[25] IPアドレスで表せないもの (UnixドメインソケットNetBIOS など) を使ったアクセスに関して節点識別子で記述する方法は用意されていないようです。 必要があれば難読化識別子として表現できそうです。

関連

[19] Host: ヘッダーの値と似ていますが、 ドメイン名は使えないことや、ポート番号の構文がより限定的なこと、 難読化識別子を使えることが違っています。

[26] 他のヘッダーで使われる似たような値については、 プロキシの名前を参照。