解説
プロキシサーバーはネットワーク仲介者です。クライアントが宛先サーバーに直接接続する代わりに、プロキシに接続し、プロキシが宛先に接続して、双方向にトラフィックを中継します。宛先の観点からは、リクエストはクライアントからではなくプロキシから発信されたように見えます。クライアントの観点からは、プロキシは透過的であり、宛先に直接アクセスするかのようにリクエストを行えます。
プロキシサーバーの価値は、クライアントとプロキシの間に何があるかによって決まります。コンシューマーのプライバシー保護においては、プロキシはクライアントのIPを宛先から隠します。商業的なデータ収集においては、プロキシは特定の地理的地域またはIPタイプ(レジデンシャル、ISP、モバイル)を通じてトラフィックをルーティングし、宛先がリクエストを異なる方法で扱うようにします。内部インフラにおいては、プロキシはポリシーを適用し、レスポンスをキャッシュし、アウトバウンドトラフィックの単一のチョークポイントを提供します。
「プロキシサーバー」という用語は幅広いファミリーをカバーしています。フォワードプロキシ(上記で説明した種類)はクライアント側に位置し、広いインターネットに対してクライアントを代表します。リバースプロキシはサーバー側に位置し、クライアントに対してバックエンドを代表します。トランスペアレントプロキシは、明示的なクライアント設定なしにトラフィックをインターセプトします。それぞれの形態が異なる問題を解決します。
仕組み
典型的なフォワードプロキシのフロー: クライアントはプロキシサーバーへのTCP接続を開き、必要に応じて認証を行い、接続先のホストとポートを指定するCONNECTリクエストを発行します。プロキシはその接続先への独自のTCP接続を開き、2つの接続間でバイトをトンネリングします。HTTPSの場合、暗号化はクライアントと接続先の間でエンドツーエンドで行われます。プロキシは暗号化されたバイトのみを見ており、リクエストの内容は見えません。
プロキシはプロトコル(HTTP CONNECT、SOCKS5)、ジオ(選択した国/都市を経由して出口)、セッション(スティッキー対ローテーション)、および認証方法(ユーザー名/パスワード、IPホワイトリスト、トークン)ごとに設定できます。現代の商用プロキシサービスは、これらすべてをユーザー名文字列およびHTTP/SOCKS5接続パラメーターを通じて提供しています。