Скриптуемый отладочный прокси Fiddler
Fiddler - прокси, который работает с трафиком между Вашим компьютером и удаленным сервером, и позволяет инспектировать и менять его.
Fiddler можно расширять с помощью скриптов на языке JScript.NET (писать их очень просто), кустомизировать меню программы, и вообще - замечательный инструмент.
Использовать его можно с любым браузером.
Эта статья описывает Fiddler 2.1 с некоторыми обновлениями, которые я периодически добавляю в статью при выходе новых версий.
В вашей версии Fiddler какие-то возможности могут измениться, какие-то образоваться.
У Fiddler есть 2 способа подключения. Первый - это просто запустить его. При этом он автоматически будет работать для программ, использующих WinINET.
Это, например, Internet Explorer и приложения MS Office.
Второй - это поставить Fiddler как прокси для браузера. Например, такой способ удобен для Firefox. Настройки Fiddler как прокси находятся в меню Fiddler Tools -> Fiddler Options, под General в Proxy Settings.
Чтобы сделать возможной подключение других браузеров, нужно включить галочку Allow remote clients to connect. После этого Fiddler станет доступен как прокси, по умолчанию - на IP 127.0.0.1 порту 8888
Для удобного переключения на Fiddler и обратно при наличии Firefox - установочный скрипт установит специальное расширение Fiddler Hook, которое позволит переключаться на фиддлер и обратно по мини-менюшке внизу-справа.
Выглядит вот так:
При заходе в Fiddler, открывается окно запросов слева и рабочие вкладки справа.
- Performance Statistics
Позволяет получать различные статистики как по одному запросу, так и по пачке выделенных
- Session Inspector
Дает возможность просматривать в различном виде заголовки и данные запроса. Кроме того, в режиме перехвата запроса (см ниже), ответ сервера можно модифицировать "на лету".
- AutoResponder
В этой вкладке задаются правила, которые говорят Fiddler выдавать на нужные запросы - уже готовые ответы, без обращения к серверу.
- RequestBuilder
Удобный (уж лучше, чем telnet) способ самостоятельно конструировать HTTP-запросы.
Можно загрузить готовый запрос из левого окна, "перетащив" его мышой в эту вкладку.
- Filters
Назначить действия в зависимости от вида запроса..
Правила (Rules) - основа мощи Fiddler, то, за что он нежно и искренне любим. Они находятся в верхнем меню.
Есть несколько стандартных правил, но, что самое важное, новые правила можно задавать через пункт "Customize Rules" (или Fiddler Script Editor).
При наступлении любого события из обширного списка, Fiddler вызывает соответствующий обработчик из правил. Например, onBeforeRequest, onShutdown.
Стандартные правила отлично прокомментированы, и писать новые весьма просто.
Можно манипулировать заголовками, запросом, менять ширину канала, управлять выводом запроса в Fiddler и так далее и т.п.
Язык для задания правил - JScript.NET, что во-первых, дает удобство разработки, а во-вторых - интеграцию с другими компонентами Windows.
Например, на JScript.NET можно написать логирование определенного вида запросов в MSSQL или Access. Сам я не пробовал, но разработчик Fiddler говорит о возможности задания правил вообще на любом языке .NET.
Там же, в правилах, задаются и пункты меню Rules.
В меню Rules -> Automatic Breakpoints можно включить автоматическое прерывание Fiddler при обработке запроса.
После этого, если сделать запрос в браузере, подключенном к Fiddler, то его выполнение зависнет, а в левом окошке Fiddler этот запрос будет отмечен специальным значком.
Это показано на скриншоте ниже, и, кстати, внизу-справа режим брейкпойнтов отмечается спец. значком.
Если выбрать такой подвисший запрос мышкой, то во вкладке SessionInspector им можно управлять: менять сам запрос и ответ сервера (после Break on Response, когда сервер уже ответил).
Задавать прерывание на запросах определенного вида можно через правила.
Старые версии Fiddler использовали для отладки HTTPS специальную программу RPASpy. Начиная с 2.1, Fiddler благополучно обходится без этой программы, достаточно установить соответствующие настройки в Fiddler options.
К фиддлеру прилагается галерея расширений http://www.fiddlertool.com/fiddler2/extensions.asp. Среди них есть даже расширение для потоковой обработки запроса, которая очень полезна при отладке Server Push-приложений, хотя лично я предпочитаю для этого расширение IE HTTP Analyzer
Fiddler можно бесплатно скачать с сайта разработчика. Там же доступна документация и видео, например, такое.
Стартовое видео (англ.)
Примеры скриптов для Fiddler, которые дают общее представление о том, на что он может быть способен: http://www.fiddlertool.com/fiddler/dev/scriptsamples.asp.
|
cпосибо
Есть еще Proxomitron. Функционал в чем-то аналогичен, даже более широк.
Здравствуйте, требуется перехватить пакет поменять его и отправить. Я полный нуб в таких вопросах, помогите пожалуйста советом именно по данной программе. Более подробная инфа в основном на английском языке, а мне бы на русском.
русифицируй справку
Спасибо!
Статья никакая? Сплошные ссылки.
Хотя бы примера три на создание правил можно было привести ? Для знающего человека это что проблема?
Что читал, что не читал...толку нет
Спасибо за статью
Отлично, понял куда двигать с публикацией.
Куда мне указать IP прокси? Я также хотел бы знать, работает ли это с сайтами wordpress? благодаря