Javascript.RU

Скриптуемый отладочный прокси 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, открывается окно запросов слева и рабочие вкладки справа.

Fiddler

  1. Performance Statistics
    Позволяет получать различные статистики как по одному запросу, так и по пачке выделенных
  2. Session Inspector
    Дает возможность просматривать в различном виде заголовки и данные запроса. Кроме того, в режиме перехвата запроса (см ниже), ответ сервера можно модифицировать "на лету".
  3. AutoResponder
    В этой вкладке задаются правила, которые говорят Fiddler выдавать на нужные запросы - уже готовые ответы, без обращения к серверу.
  4. RequestBuilder
    Удобный (уж лучше, чем telnet) способ самостоятельно конструировать HTTP-запросы.
    Можно загрузить готовый запрос из левого окна, "перетащив" его мышой в эту вкладку.
  5. 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 этот запрос будет отмечен специальным значком.

Это показано на скриншоте ниже, и, кстати, внизу-справа режим брейкпойнтов отмечается спец. значком.

Fiddler

Если выбрать такой подвисший запрос мышкой, то во вкладке SessionInspector им можно управлять: менять сам запрос и ответ сервера (после Break on Response, когда сервер уже ответил).

Задавать прерывание на запросах определенного вида можно через правила.

Старые версии Fiddler использовали для отладки HTTPS специальную программу RPASpy. Начиная с 2.1, Fiddler благополучно обходится без этой программы, достаточно установить соответствующие настройки в Fiddler options.

HTTPS Fiddler отладка

К фиддлеру прилагается галерея расширений http://www.fiddlertool.com/fiddler2/extensions.asp. Среди них есть даже расширение для потоковой обработки запроса, которая очень полезна при отладке Server Push-приложений, хотя лично я предпочитаю для этого расширение IE HTTP Analyzer

Fiddler можно бесплатно скачать с сайта разработчика. Там же доступна документация и видео, например, такое.

Стартовое видео (англ.)

Fiddler видео

Примеры скриптов для Fiddler, которые дают общее представление о том, на что он может быть способен: http://www.fiddlertool.com/fiddler/dev/scriptsamples.asp.


Автор: divais2 (не зарегистрирован), дата: 28 октября, 2008 - 12:47
#permalink

cпосибо


Автор: with-love-from-..., дата: 19 мая, 2010 - 11:28
#permalink

Есть еще Proxomitron. Функционал в чем-то аналогичен, даже более широк.


Автор: Гость, дата: 11 июня, 2012 - 16:28
#permalink

Здравствуйте, требуется перехватить пакет поменять его и отправить. Я полный нуб в таких вопросах, помогите пожалуйста советом именно по данной программе. Более подробная инфа в основном на английском языке, а мне бы на русском.


Автор: Гость (не зарегистрирован), дата: 15 сентября, 2012 - 11:08
#permalink

русифицируй справку


Автор: Гость (не зарегистрирован), дата: 26 августа, 2014 - 15:32
#permalink

Спасибо!


Автор: Гость (не зарегистрирован), дата: 2 декабря, 2014 - 14:37
#permalink

Статья никакая? Сплошные ссылки.


Автор: Vostokkk, дата: 24 января, 2015 - 03:50
#permalink

Хотя бы примера три на создание правил можно было привести ? Для знающего человека это что проблема?


Автор: _Alex_ (не зарегистрирован), дата: 25 августа, 2015 - 13:51
#permalink

Что читал, что не читал...толку нет


Автор: Гость (не зарегистрирован), дата: 11 января, 2016 - 23:03
#permalink

Спасибо за статью


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
1 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum