1. ホーム
  2. c#

[解決済み] C#で簡単なプロキシを作成する方法は?

2022-05-07 03:28:22

質問

数週間前にPrivoxyをダウンロードしたのですが、その簡単なバージョンがどのようにできるのか知りたくなりました。

ブラウザ(クライアント)がプロキシにリクエストを送信するように設定する必要があることは理解しました。プロキシはWebにリクエストを送信する(httpプロキシとする)。プロキシはその答えを受け取ります。しかし、プロキシはどのようにしてブラウザ(クライアント)にリクエストを送り返すことができるのでしょうか?

C#とhttpプロキシについてウェブで検索してみましたが、舞台裏でどのように動作しているかを正しく理解できるものは見つかりませんでした。(私はリバースプロキシが必要ではないと信じていますが、私は確信していません)。

この小さなプロジェクトを続けられるような説明や情報をお持ちの方はいらっしゃいませんか?

更新情報

これは私が理解していることです(下の図参照)。

ステップ1 クライアント(ブラウザ)は、すべてのリクエストをプロキシがリッスンするポートの 127.0.0.1 に送信するように設定しました。この方法では、リクエストは直接インターネットに送信されるのではなく、プロキシによって処理されます。

ステップ2 プロキシは新しい接続を見て、HTTPヘッダを読み、彼が実行しなければならない要求を参照してください。彼はそのリクエストを実行する。

ステップ3 プロキシはリクエストからアンサーを受信します。ここで彼はウェブからクライアントにアンサーを送らなければなりませんが、どのように?

お役立ちリンク

メンタリス・プロキシ : 私はプロキシであるこのプロジェクトを見つけました(しかし、私が望むより多くのもの)。私はソースをチェックするかもしれませんが、私は本当にコンセプトをより理解するための基本的な何かを望んでいました。

ASPプロキシ : こちらでも情報を得られるかもしれませんね。

リクエストリフレクター : これは簡単な例です。

以下は Git Hub リポジトリとシンプルな Http プロキシ .

解決するには?

で構築することができます。 HttpListener クラスで受信したリクエストをリッスンし HttpWebRequest クラスがリクエストを中継します。