Захват HTTP-трафика через код - какие есть варианты?

Я работал над этим некоторое время - я создаю модуль, который должен захватывать трафик HTTP/HTTP, который идет от и к хост-компьютеру. Мой оригинальный язык - Java, и я могу сделать следующее:

  1. Создайте прокси-сервер, используя LittleProxy
  2. Измените настройки моего браузера, чтобы использовать созданный мной прокси
  3. Выполните транзакции в браузере, чтобы мой прокси мог их записать.

Это работает нормально, за исключением следующих проблем:

  1. Для кого-то, использующего мое приложение, это создает дополнительные накладные расходы для ручной настройки сведений о прокси в браузере (хотя это можно сделать с помощью кода, изменив настройки браузера и запустив его).
  2. Мое приложение может записывать только транзакции из определенного браузера, который указывает на прокси.

Я хотел бы улучшить этот модуль таким образом, чтобы пользовательские накладные расходы были удалены. Что-то вроде того, что Wireshark, Fiddler и LoadRunner (VuGen). У меня вопрос, как они это делают? Они также управляют прокси где-нибудь за кулисами? Или они перехватывают HTTP-трафик из сети, ОС или какого-то другого уровня?

Если быть точным, у меня есть следующие вопросы:

  1. Является ли создание прокси единственным способом получения HTTP-запросов?
  2. Могу ли я отслеживать запросы / ответы с уровня ОС (без прокси)? Если да, достаточно ли хорошо Java или я должен склоняться к.NET (C# или что-то)?
  3. Если прокси является единственным способом, могу ли я использовать Fiddler или Wireshark? Есть ли у них API, которые я могу включить в свой код? (Я не сталкивался ни с одним в их документации - вероятно, я не выгляжу достаточно усердно)

Любая информация поможет мне с направлением. Пожалуйста помоги!

Спасибо, Шрирам Шридхарен

0 ответов

Другие вопросы по тегам