Как создать простой прокси в C #?

Я скачал Privoxy несколько недель назад, и мне было любопытно узнать, как сделать простую версию.

Я понимаю, что мне нужно настроить браузер (клиент) для отправки запроса на прокси. Прокси-сервер отправляет запрос в Интернет (скажем, это http-прокси). Прокси-сервер получит ответ ... но как прокси-сервер может отправить запрос обратно в браузер (клиент)?

Я ищу в Интернете прокси C # и http, но не нашел чего-то, что позволило бы мне понять, как это работает за кулисами. (Я считаю, что я не хочу обратного прокси, но я не уверен).

Есть ли у кого-нибудь из вас какие-либо объяснения или информация, которая позволит мне продолжить этот небольшой проект?

Обновить

Это то, что я понимаю (см. Рисунок ниже).

Шаг 1 Я настраиваю клиент (браузер) для отправки всех запросов на 127.0.0.1 через порт, который прослушивает Прокси. Таким образом, запрос не будет отправлен напрямую в Интернет, а будет обработан прокси.

Шаг 2 Прокси видит новое соединение, читает заголовок HTTP и видит запрос, который он должен выполнить. Он выполняет запрос.

Шаг 3 Прокси получит ответ на запрос. Теперь он должен отправить ответ из Интернета клиенту, но как ???

Полезная ссылка

Mentalis Proxy Я нашел этот проект, который является прокси (но больше, что я хотел бы). Я мог бы проверить источник, но я действительно хотел чего-то простого, чтобы лучше понять концепцию.

ASP Proxy Я мог бы также получить некоторую информацию здесь.

Отражатель запроса Это простой пример.

ВотGit Hub Repository с простым Http-прокси.

Ответы на вопрос(9)

Ваш ответ на вопрос