-
Notifications
You must be signed in to change notification settings - Fork 4
/
27.txt
83 lines (60 loc) · 5.16 KB
/
27.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
81
82
83
[1] [[クライアント]]によって選択されたメッセージ転送エージェントで、
何らかの[[絶対URL]]の[[要求]]を受け取り、
[[HTT`]] のインターフェイスを通じて翻訳することによりその要求を満足しようとするものを、
[RUBYB[[[串]]][proxy]] ([DFN[[[プロキシ]]]], [DFN[[[プロクシ]]]]) といいます [SRC[>>7]]。
[8] [CODE(URI)@en[[[http:]]]] [[URL]] の[[要求]]の場合のように翻訳が最低限で済むこともあれば、
まったく異なる[[プロトコル]]のこともあります [SRC[>>7]]。
[FIG(sequence)[
:C:[[クライアント]]
:P:[[串]]
:S:[[鯖]]
:C -> P:[[要求]]
:P -> S:[[要求]]
:S -> P:[[応答]]
:P -> C:[[応答]]
]FIG]
* 仕様書
[REFS[
- [7] [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#page-10>
]REFS]
* 串の種類
[10] [[串]]には色々な種類があります。
[FIG(short list)[
- [[キャッシュ串]]
- [[共有串]]
- [[open proxy]]
- [[変形串]]
- [[逆串]]
- [[透過串]]
- [[interception proxy]]
]FIG]
;; [11] これらは必ずしも [[HTTP]] 仕様上の[[串]]ではありません。
[13] 通常の[[串]] (狭義の[[串]]) を[[逆串]]と区別したい時は[DFN[[RUBYB[順串]@en[forward proxy]]]]といいます。
[14] [[串]]は多段化できます。すなわち、[[串]]もまた[[串]]を使うことができます。
[15] [[串]]は、[[キャッシュ]]、[[変形]]、[[経路制御]]、[[防火壁]]、[[ウイルス検査]]、
[[検閲]]など様々な目的のために利用されています。
* 歴史
[FIG(quote)[
[FIGCAPTION[
[4] [[HTTP]] ([[RFC 1945]] 1.2, [[RFC 2068]] 1.3, [[RFC 2616]] 1.3)
]FIGCAPTION]
>
:proxy:An intermediary program which acts as both a server and a client
for the purpose of making requests on behalf of other clients.
Requests are serviced internally or by passing them [INS[[INS[{2068,2616}]] on]], with
possible translation, [DEL[on]]
to other servers. [DEL[A proxy must interpret and, if necessary, rewrite a request message before forwarding it. Proxies are often used as client-side portals through network firewalls and as helper applications for handling requests via protocols not implemented by the user agent.]] [INS[[INS[{2068,2616}]] A proxy [DEL[must]] [INS[MUST]] implement both the client and server requirements of this specification.]] [INS[[INS[{2616}]] A "transparent proxy" is a proxy that does not modify the request or response beyond what is required for proxy authentication and identification. A "non-transparent proxy" is a proxy that modifies the request or response in order to provide some added service to the user agent, such as group annotation services, media type transformation, protocol reduction, or anonymity filtering. Except where either transparent or non-transparent behavior is explicitly stated, the HTTP proxy requirements apply to both types of proxies.]]
:串:他の[[クライアント]]のために[[要求]]を行う目的で、[[サーバー]]とクライアントの両方として動作する中間プログラム。要求は内部的に service するか、又は必要なら翻訳した上で他のサーバーに渡します。 [DEL[串は、要求メッセージを転送する前に解釈し、必要なら書き換えなければなりません。串は、しばしばネットワーク防火壁のクライアント側玄関として使われたり、[[利用者エージェント]]が実装していないプロトコルを介した要求を扱う[[補助応用]]として使われたりします。]] [INS[串は、この仕様書のクライアント要件とサーバー要件の両方を実装しなければ'''なりません'''。]] [INS[[DFN[[[透過串]]]]は、串認証・識別に必要な分以上には要求や応答を編集しない串です。[DFN[[[非透過串]]]]は、利用者エージェントに[[集団注釈サービス]]、[[媒体型]]変換、プロトコル変更や匿名性濾過などの追加のサービスを提供するために要求や応答を修正する串です。透過か非透過かの動作が陽に言明されているところを除いて、 HTTP 串の要件は両方の型の串に適用します。]]
]FIG]
* 関連
[9] [[interception proxy]] や[[透過串]]は、[[クライアント]]によって選択されたものではありませんから、
[[HTTP]] の定義による[[串]]ではありません [SRC[>>7 2.3.]]。
[12] [[串]]は[[上流]]に対しては[[クライアント]]、[[下流]]に対しては[[鯖]]として機能します。
* メモ
[2] もともと[CODE[串]]というのは「プロクシ」の後半の音から取った[[俗語]]だけど、語呂がいいのですっかり定着してしまった。
[3] 派生語: [[串刺し]], [[串規制]]
[5]
[CITE[国内open proxyの現状]] <http://spam.h1r.org/jpproxy/index.html>
([[名無しさん]] [WEAK[2006-05-27 02:42:05 +00:00]])
[6]
[CITE@en[RFC 3143 - Known HTTP Proxy/Caching Problems]] ([TIME[2008-08-30 12:43:01 +09:00]] 版) <http://tools.ietf.org/html/rfc3143>