Fiddler – це потужний інструмент для аналізу та налагодження HTTP та HTTPS-трафіку, розроблений компанією Telerik. Він широко використовується розробниками та тестувальниками для захоплення, аналізу та налагодження мережевих запитів та відповідей.
Історія
Fiddler був розроблений Еріком Лоуренсом і випущений у 2003 році. Спочатку він був призначений для використання з браузером Internet Explorer, але з часом став багатоплатформовим інструментом, підтримуючи різні браузери та додатки.
Fiddler може перехоплювати трафік між вашим браузером (або іншим клієнтом) і сервером. Це дозволяє бачити всі запити та відповіді, що допомагає у налагодженні та аналізі мережевої взаємодії.
Fiddler дозволяє модифікувати HTTP-запити перед відправкою на сервер, а також відповіді перед тим, як вони будуть отримані клієнтом. Це корисно для тестування різних сценаріїв та поведінки програми.
Fiddler підтримує створення власних скриптів та використання плагінів для автоматизації завдань та розширення функціональності.
Fiddler може розшифровувати зашифрований HTTPS трафік для його аналізу. Для цього необхідно встановити сертифікат Fiddler у систему.
Сесії у Fiddler можна зберігати для подальшого аналізу чи обміну з колегами.
Fiddler надає інструменти для аналізу продуктивності завантаження веб-сторінок та ресурсів, включаючи таймінги запитів та відповідей.
Fiddler працює як проксі-сервер, що перехоплює HTTP/HTTPS трафік між вашим комп’ютером та інтернетом. Коли ви запускаєте Fiddler, він встановлює себе як проміжну точку між вашим браузером і віддаленим сервером, дозволяючи переглядати, аналізувати і модифікувати запити і відповіді.
Скачування та встановлення:
Запуск та базова конфігурація:
Tools -> Options -> HTTPS та увімкніть опцію «Decrypt HTTPS traffic». Виконуйте вказівки для встановлення сертифіката.
Перехоплення трафіку:
Натиснувши на будь-який запит, ви зможете побачити докладну інформацію про нього в правій панелі, включаючи заголовки, тіло запиту та відповіді, параметри та кукі.
Для редагування запитів виберіть запит, клацніть правою кнопкою миші та оберіть «Edit in Composer». Тут ви можете змінити метод, URL-адресу, заголовки і тіло запиту, а потім відправити його заново.
У Fiddler можна писати скрипти мовою JScript.NET для автоматизації завдань. Перейдіть доRules->Customize Rulesдля створення чи зміни скриптів. Rules -> Customize Rules для створення чи зміни скриптів.
Фільтрування трафіку:Використовуйте вкладку Filters для фільтрації трафіку за доменом, статусом відповіді, типом контенту та іншими параметрами.
Безпека: Не забувайте відключати перехоплення HTTPS-трафіку після завершення роботи з Fiddler, щоб уникнути можливих ризиків безпеки.
Запуск Fiddler:
Tools -> Options.HTTPS і встановіть галочку на Decrypt HTTPS traffic.Відкриття браузера та пошук в Google:
https://www.google.com/search?q=Fiddler.Клацніть на запит до https://www.google.com/search?q=Fiddler у списку сесій. У правій панелі з'явиться докладна інформація про запит та відповідь.
Перегляд заголовків запиту:
Inspectors.Request Headers ви побачите всі заголовки запиту, надіслані браузером на сервер.Перегляд тіла запиту:
q=Fiddler.Перегляд заголовків відповіді:
Response Headers для перегляду заголовків, надісланих сервером у відповідь ваш запит.Перегляд тіла відповіді:
Response Body Ви можете побачити тіло відповіді. Оскільки це HTML-сторінка, ви зможете переглянути її вміст.У Fiddler перейдіть до меню Rules -> Customize Rules. Відкриється редактор скриптів.
Редагування наявної функції OnBeforeRequest::
OnBeforeRequest і внесіть до неї наступний код для заміни значення параметра q у запитах до Google.public static function OnBeforeRequest(oSession: Session) {
// Ваш існуючий код тут…
// Додаємо перевірку та зміну параметра q
if (oSession.uriContains(«www.google.com/search») && oSession.uriContains(«q=»)) {
// Отримуємо поточний URL
var fullUrl = oSession.fullUrl;
// Логуємо оригінальний URL для налагодження
FiddlerApplication.Log.LogString(«Оригінальна URL: » + fullUrl);
// Регулярний вираз пошуку параметра q
var regex = /q=([^&]*)/;
// Перевіряємо, чи містить URL параметр q і замінюємо його значення
if (regex.test(fullUrl)) {
// Замінюємо значення параметра q на Wireshark
fullUrl = fullUrl.replace(regex, «q=Wireshark»);
// Логуємо змінений URL для налагодження
FiddlerApplication.Log.LogString(«Змінений URL: » + fullUrl);
// Встановлюємо нову URL-адресу запиту
oSession.fullUrl = fullUrl;
}
}
// Ваш існуючий код може продовжуватись тут…
}
Перевірка URL: Функція OnBeforeRequest виконується перед відправкою запиту. Вона перевіряє, чи URL містить www.google.com/search та параметр q=.
Логування оригінального URL: Якщо умови виконуються, поточний URL запиту зберігається в змінній fullUrl, і його значення логуються для відладки.
Регулярний вираз: Використовується для пошуку значення параметра q в URL.
Замінювання значення: Якщо параметр q знайдено, його значення змінюється на Wireshark.
Логування зміненого URL: Змінений URL також логуються для відладки.
Оновлення запиту: Змінений URL встановлюється як новий для подальшого виконання запиту.
Цей код використовується для автоматичної зміни параметра q в URL запитів до Google, перенаправляючи всі пошуки на тему «Wireshark».
Збереження та запуск скрипту:
Збережіть зміни у скрипті та закрийте редактор.
Пошук у Google:
Відкрийте браузер і зробіть пошук у Google, наприклад, Fiddler.
Перевірка заміни:
У Fiddler ви побачите, що запит, надісланий на Google, тепер містить q=Wireshark замість цього q=Fiddler.
Откройте запрос и проверьте URL в Inspectors, щоб переконатися в успішній заміні.
Запуск Fiddler:
Composer.Створення запиту GET:
https://api.escuelajs.co/api/v1/products в полі URL.GET.Надсилання запиту::
Execute, щоб надіслати запит.Аналіз відповіді:
Inspectors, щоб переглянути заголовки та тіло відповіді.Перехоплення POST запиту:
https://api.escuelajs.co/api/v1/products.Пошук потрібного запиту::
https://api.escuelajs.co/api/v1/products.Редагування запиту у Composer:
Edit in Composer.Composer відкриється із деталями вашого запиту.title, price чи інших полів.POST /api/v1/products/ HTTP/1.1
Host: api.escuelajs.co
Content-Type: application/json
Accept: application/json
{
«title»: «Old Product»,
«price»: 50.99,
«description»: «Old description»,
«categoryId»: 1,
«images»: [«https://placeimg.com/640/480/any»]
}
Приклад зміненого запиту:
POST /api/v1/products/ HTTP/1.1
Host: api.escuelajs.co
Content-Type: application/json
Accept: application/json
{
«title»: «New Product»,
«price»: 99.99,
«description»: «Updated description»,
«categoryId»: 1,
«images»: [«https://placeimg.com/640/480/any»]
}
Надсилання зміненого запиту:
Execute для надсилання зміненого запиту.Inspectors, щоб переглянути заголовки та тіло відповіді.Завдання:
Ви хочете проаналізувати продуктивність вашого веб-сайту.
Кроки:
Запуск Fiddler:
Запис сесій:
Аналіз часу завантаження:
Statistics для аналізу часу завантаження ресурсівОптимізація:
Перехоплення POST запиту:
https://api.escuelajs.co/api/v1/products.Пошук потрібного запиту::
https://api.escuelajs.co/api/v1/products.Редагування запиту у Composer:
Edit in Composer.Composer відкриється із деталями вашого запиту.title, price чи інших полів.// Ця функція викликається перед кожним запитом
public static function OnBeforeRequest(oSession: Session) {
// Перевірка, чи URL запиту відповідає цільовому API
if (oSession.uriContains(«api.escuelajs.co/api/v1/products»)) {
// Зміна заголовка User-Agent
oSession.oRequest[«User-Agent»] = «MyCustomUserAgent/1.0»;
// Логування змін для цілей налагодження
FiddlerApplication.Log.LogString(«User-Agent замінено для: » + oSession.fullUrl);
}
}
public static function OnBeforeRequest(oSession: Session): Це метод, який викликається перед кожним запитом. oSession представляє сесію HTTP-запиту.
if (oSession.uriContains("api.escuelajs.co/api/v1/products")): Умова перевіряє, чи містить URL запиту заданий рядок. Якщо так, виконується код в тілі if.
oSession.oRequest["User-Agent"] = "MyCustomUserAgent/1.0";: Змінює заголовок User-Agent у запиті на власний, вказаний у вигляді MyCustomUserAgent/1.0. Це може бути корисним для маскування клієнта або обходу обмежень сервера.
FiddlerApplication.Log.LogString("User-Agent замінено для: " + oSession.fullUrl);: Логує інформацію про зміну User-Agent для цілей налагодження. Виводиться повний URL запиту.
Збереження змін:
Тестування:
https://api.escuelajs.co/api/v1/products через ваш браузер або будь-який інший додаток, щоб переконатися, що заголовок User-Agent був підмінений.Inspectors у Fiddler, щоб переглянути надіслані запити та перевірити, що заголовок User-Agent внесені зміни до MyCustomUserAgent/1.0.
Ви пройшли інтерактивний практикум та освоїли базові навички роботи з Fiddler. Тепер настав час поглибити свої знання та стати справжнім експертом!

Якщо вам потрібна будь-яка підтримка або у вас виникли додаткові питання, не соромтеся зв'язатися з нами, ми готові швидко надати вам допомогу.