プロキシとは何か
プロキシ(proxy)とは、クライアント(利用者の端末)とアクセス先サーバーの間に入り、通信を中継する仕組み(またはその機能)です。利用者は、プロキシを“経由して”通信するため、アクセス先から見える情報や通信の経路が変化します。
ポイントは「代理で転送する」ことです。プロキシは、クライアントから受け取ったリクエストを代わりに送信し、サーバーからの応答をクライアントへ返します。このため、通信を制御したり、アクセス元の見え方を調整したりする用途に使われます。
仕組み(基本の流れ)
典型的には、次のような流れで動きます。
- 利用者がプロキシへ接続・送信する(設定により明示的に指定する場合や、環境により透過的に扱われる場合があります)。
- プロキシがリクエストを受け取り、必要なら情報を検査・加工する。
- プロキシがアクセス先サーバーへリクエストを転送する。
- サーバーからの応答をプロキシが受け取り、利用者へ返す。
この過程で、アクセス先が参照するネットワーク上の情報(経由点など)が変わることがあります。また、プロキシ側で認証やアクセス制御、キャッシュ(応答の保存)などの動作を行うケースもあります。
どんな種類があり、何が違うのか
プロキシは一つに統一された動作ではありません。代表的な違いとして、次の観点があります。
- 透過的か明示的か:利用者がプロキシの存在を意識して指定するのか、ネットワーク側の設定で自動的に扱われるのかが異なります。 - クライアント向けかサーバー向けか:一般に、利用者が使う中継(フォワードプロキシ)と、公開サーバーの前段として振る舞うもの(リバースプロキシ)で役割が変わります。 - 検査・加工の程度:リクエスト内容をどこまで確認し、どこまで変更できるかは実装や運用方針に左右されます。
