/
972.txt
80 lines (57 loc) · 3.57 KB
/
972.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
[104] [[プロキシの名前]]として、通常の[[ホスト]] ([[ドメイン名]]や[[IPアドレス]])
の他に、真の[[ホスト]]を隠匿した識別子が使われる場合があります。
これは、[[プロキシ]]によって内部[[ネットワーク]]内の構造を外部に晒してしまうことを防ぐのが目的です。
* 仕様書
[REFS[
- [17] [CITE@en[RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing]] ([TIME[2014-06-07 01:59:35 +09:00]] 版) <https://tools.ietf.org/html/rfc7230#section-5.7.1>
- [3] [CITE@en[RFC 7234 - Hypertext Transfer Protocol (HTTP/1.1): Caching]] ([TIME[2014-09-11 10:19:59 +09:00]] 版) <https://tools.ietf.org/html/rfc7234#section-5.5>
]REFS]
* 構文
[23] [CODE[Via:]] [[ヘッダー]]における受信者は、
[CODE(HTTP)@en[[[Host:]]]] [[ヘッダー]]の[[欄値]]と同じような値か、
[[変名]]です。 [SRC[>>17]]
[FIG(railroad)[
= |
== =
=== [[ホストとポート]]
=== ?
==== [CODE(URI)[[[:]]]]
==== [[ポート]]
== [[変名][変名 (HTTP)]]
]FIG]
[1] [DFN[[RUBYB[[[変名]]]@en[[[pseudonym]]]]]]は、[[字句]]です。
通常は[[転送]]を行う[[受信者]]の[[ホスト]]と[[ポート]]ですが、
これを晒したくない場合には[[変名]]を使うことができます。 [SRC[>>17]]
[2] [[ポート]]が省略された場合には、指定された[[プロトコル]]の[[既定のポート番号]]と解釈して構いません。 [SRC[>>17]]
;; [30] [[ホスト]]は [[ASCII]] でなければなりません。 [[IDN]]
は [[Punycode]] 化する必要があります。
;; [31] [[ホスト]]と[[変名][変名 (HTTP)]]は、構文的に完全には区別できません。
ただ実用上は [[TLD]] が[[串]]になっていることは無いでしょう。
([[DNS]] 以外のシステムを使っているネットワークではあり得ますが...)
;; [7] こちらでは未知を表す方法は用意されていません。
[4] 実際に指定する値の決定や置き換えについては、 [CODE[Via:]] を参照。
* 警告エージェント
[19] [CODE[Warning:]] [[ヘッダー][HTTPヘッダー]]の[DFN[警告エージェント]]
([DFN[[CODE(ABNF)@en[warn-agent]]]]) は、
[[RFC 3986]] [CODE(ABNF)@en[[[host]]]] か、それに [CODE(URI)@en[[[:]]]] と
[CODE(ABNF)@en[[[port]]]] を続けたものか、[[変名][変名 (HTTP)]]のいずれかです。
[[変名][変名 (HTTP)]]は、[[字句]]です。 [SRC[>>3]]
[FIG(railroad)[
= |
== =
=== [[ホストとポート]]
== [[変名][変名 (HTTP)]]
]FIG]
[5] [[警告エージェント]]は、 [CODE(HTTP)@en[[[Warning:]]]] [[ヘッダー]]を追加した[[鯖]]の名前か[[変名][変名 (HTTP)]]を[[デバッグ]]目的で記述するものです
[SRC[>>3]]。
[6] 未知の場合には、 [DFN[[CODE[-]]]] と指定することが[RUBYB[推奨]@en[recommended]]されています
[SRC[>>3]]。
;; [38] [[ホスト]]は[[ASCII]]でなければなりません。[[IDN]] は [[Punycode]]
化する必要があります。
;; [35] 未知というのがどのような場合なのかはわかりませんが、明らかにしたくない場合でしょうか?
なお[[節点識別子]]では [CODE[unknown][節点識別子]]という値が使われています。
;; [39] [CODE(HTTP)@en[[[Via:]]]] [[ヘッダー]]とは違って、
[[ポート]]が省略された場合の意味は規定されていません。
* 節点識別子
[8] [CODE[Forwarded:]] [[ヘッダー][HTTPヘッダー]]では[[節点識別子]]が使われています。
* メモ