2

В настоящее время я пытаюсь написать прокси в C #, используя файл хоста для перенаправления запросов (конкретный запрос). Я хочу, чтобы он перехватывал только один адрес.

Это на Windows, и прокси-сервер запускается локально на компьютере.

Игнорируя все остальные прокси-компоненты, можно сказать, что я просто пытаюсь получить заголовки HTTP первого запроса.

Для HTTP-запроса я настроил прокси на 127.0.0.1:80 и поместил 127.0.0.1 [foo.com] в файл хоста.

Откройте браузер, перейдите по адресу http://foo.com/, и я получу запрос и отобразлю его.

"GET foo.com/ HTTP/ 1.1" и т.д. И т.д.

Теперь, если я:

Для запроса HTTPS я настроил прокси на 127.0.0.1:443 и поместил 127.0.0.1 [foo.com] в файл хоста.

Откройте браузер, перейдите по адресу https://foo.com/, и я получу запрос и отобразлю его.

Я ожидал "ПОДКЛЮЧИТЬ ...... и т.д.", Но на самом деле я получаю только символы мусора.

Если использовать тот же прокси, установленный на 127.0.0.1:8080, и указать его в настройках прокси браузера, я вижу правильные заголовки HTTPS, которые я ожидал.

Почему файл хоста портит заголовки запроса HTTPS?

1 ответ1

2

Это не портит заголовки; вы не сказали ОС / браузеру использовать прокси-сервер, вы сообщаете ОС, что реальный сервер имеет 127.0.0.1, поэтому вы получаете рукопожатие SSL / TLS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .