Протокол HTTP: практична частина
Тривалість: 2 акад. години.
Мета: навчитися працювати з засобами тестування та налагодження HTTP.
Лабораторна установка
- Апаратне забезпечення: ПК.
- Програмне забезпечення: WireShark, браузер.
Роботу рекомендується виконувати на віртуальній машині з Windows 10. Як створити віртуальну машину описано у практичному занятті Встановлення та налаштування ВМ з Windows 10
Порядок виконання роботи
Для перевірки роботи протоколу HTTP, відлагодження та тестування HTML, CSS і JavaScript в завантажених сторінках використовуються різноманітні інструменти Веб-розробника (WEB Developer Tools). Деякі з них є частиною браузерів, таких як Google Chrome або Mozila FireFox. У даному практичному завданні показані приклали з використанням інструментів WEB Developer Tools, що вбудовані в Mozilla FireFox. Зокрема, для аналізу і тестування HTTP запитів використовується Монітор мережі.
Для перевірки роботи запитів HTTP використовуватимуться сервіси сайту https://barcatreader.onrender.com. Ці сервіси дають можливість декодувати штрих-коди та QR-коди що передаються на сайт у вигляді зображення. Слід відмітити, що є багато програм, які можуть це робити в онлайн, дана використовується тільки в якості прикладу.
1. Встановлення браузера FireFox
- У прикладах в лабораторній роботі використовується українська версія FireFox. Для спрощення роботи завантажте та встановіть її за наступним посиланням https://www.mozilla.org/uk/firefox/download/thanks/. При виконанні лабораторної роботи дозволяється використовувати і інші інструменти.
2. Перевірка роботи ВЕБ-застосунку BarCat Reader
- Відкрийте сторінку в браузері https://barcatreader.onrender.com/ і перевірте її роботу. Для цього завантажте будь-який файл з зображенням штрих-коду, наприклад звідси (див. рис.1).
рис.1. Зовнішній вигляд ВЕБ-застосунку BarCat Reader
Натисніть «Завантажити», оберіть файл з штрих-кодом, завантажте його та натисніть відповідну кнопку “Декодувати” при вдалій обробці запиту буде повернений результат з кодом, подібно до наведеного на рис.2.
рис.2. Результат декодування
3. Робота з Монітором мережі FireFox
- Активуйте в браузері FireFox інструмент монітору мережі «Веб-розробка->Мережі» (CTRL+Shift+E), або аналогічний в інших браузерах.
- Виставте опцію «Вимкнути кеш» з панелі інструментів Монітору мережі. Це потрібно щоб не використовувалася інформація в кеші на Вашому ПК.
- Відкрийте в браузері сторінку https://barcatreader.onrender.com/.
- Проконтролюйте, щоб мережних запитів було 9. Якщо це не так - зробіть оновлення сторінки браузера іі знову впишіть вказану адресу.
- Подивіться список мережних запитів, які були зроблені при завантаженні сторінки, зокрема зверніть увагу на наступні значення:
- скільки запитів було зроблено
- які методи (спосіб) та типи запитів
- які були повернуті результати (стани), скористуйтеся даним ресурсом Вікіпедії для визначення стану

рис.3. Робота з Монітором мережі FireFox
4. Аналіз заголовків 1-го мережного запиту та відповіді
- Виберіть перший запис у списку запит і відкрийте панель «Заголовки».
- Ознайомтеся з призначенням використаних в запиті заголовків з ресурсів Інтернет, наприклад з Вікіпедії.
- Заповніть перші два поля таблиці, наведеної нижче, для пояснення заголовків в запиті. Для зручності розшифрування можете скористатися посиланнями в колонці Заголовок. Інші поля можете розібрати за бажанням.
Таб.1. Пояснення значень заголовків запиту
| Заголовок | Значення | Пояснення значень заголовків |
|---|---|---|
| Accept-Encoding | gzip, deflate, br | |
| Accept-Language | uk-UA,uk;q=0.8,en-US;q=0.5,en;q=0.3 | |
| Cache-Control | no-cache | |
| Connection | keep-alive | |
| Host | barcatreader.onrender.com | |
| Pragma | no-cache | |
| Upgrade-Insecure-Requests | 1 | |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0 |

рис.4. Аналіз заголовків 1-го мережного запиту
- Заповніть поля таблиці для заголовку Location для пояснення відповіді . Для зручності розшифрування можете скористатися посиланнями в колонці Заголовок.
Таб.2. Пояснення значень заголовків відповіді
| Заголовок | Значення | Пояснення значень заголовків |
|---|---|---|
| Location | / |

рис.5. Аналіз заголовків відповіді для 1-го мережного запиту
- Перегляньте вміст відповіді у вкладці «Відповідь» на перший запит. Зробіть висновок щодо результату запиту. Впишіть результати в перший рядок таблиці 3.
Таб.3. Пояснення до запитів та відповідей
| № | Запит (метод, URL) | Пояснення до запиту, ініціатор | Відповідь (стан – пояснення ) | Пояснення до відповіді |
|---|---|---|---|---|
| 1 | GET https://barcatreader.onrender.com/ |
Запит на документ, ініціював користувач в рядку браузеру | 200 - ??? | |
| 2 | … |
5. Аналіз заголовків інших мережних запитів та відповідей
-
Аналогічно проаналізуйте другий запит та відповідь на нього. Зверніть увагу на зовнішній вигляд у вікні «Перегляд» у порівнянні з виглядом завантаженої сторінки у браузері. Чим вони відрізняються?
- Відкрийте “Корисне навантаження відповіді” на панелі «Відповідь» (у форматі HTML). Для того, щоб зручніше проаналізувати вміст завантаженої сторінки:
- скопіюйте цей текст
- відкрийте на іншій закладці браузеру посилання https://www.freeformatter.com/html-formatter.html
- помістіть скопійований текст в поле «Option 1: Copy-paste your HTML document here»
- натисніть на кнопку «format HTML».
-
У вікні «Formatted HTML:» з’явиться відформатований код сторінки в форматі HTML. Проаналізуйте HTML код. Якщо ви до цього не знайомилися з мовою розмітки HTML - можете прочитати цей урок.
-
Зверніть увагу на тег link в заголовку HTML (допомога по призначенню тегу тут), та img (допомога по призначенню тегу тут).
-
Проаналізуйте 3-й та 4-й запити та відповіді. За якої причини з`явилися ці запити? Занотуйте для себе результат для захисту лабораторної.
- Для розуміння 5-го запиту, прочитайте цю статтю. Занотуйте для себе результат для захисту лабораторної.
6. Аналіз заголовків та змісту POST
- Використовуючи кнопку «Очистити» (зображення відерка) що знаходиться на панелі інструментів Монітору мережі, очистіть список запитів.
-
Завантажте будь-який файл з зображенням штрих-коду, як робили це в п.5.2. Натисніть «Декодувати». При вдалій обробці запиту буде повернений результат з кодом.
- Використовуючи подробиці мережного запиту POST продивіться та проаналізуйте Заголовки. Зробіть копію екранів з заголовками та впишіть пояснення в таблиці 4. Для пришвидшення пошуку призначення заголовків користуйтесь посиланнями, що прив’язані до назв заголовків. Про типи MIME можна прочитати тут.
Таб.4. Пояснення значень заголовків запиту
| Заголовок | Значення | Пояснення значень заголовків |
|---|---|---|
| Content-Length | ||
| Content-Type |
-
Використовуючи подробиці мережного запиту POST продивіться та проаналізуйте параметри безпеки (вкладка “Безпека”).
-
Зробіть копію екрану корисного навантаження запиту.
7. Аналіз відповіді на POST
- Відкрийте корисне навантаження відповіді на панелі «Відповідь» (у форматі HTML).
- Для того, щоб зручніше проаналізувати вміст завантаженої сторінки:
- скопіюйте його в буфер
- відкрийте на іншій закладці браузеру посилання https://www.freeformatter.com/html-formatter.html
- помістіть скопійований текст в поле «Option 1: Copy-paste your HTML document here» після чого натисніть на кнопку «format HTML». У вікні «Formatted HTML:» з’явиться відформатований код сторінки в форматі HTML.
- Знайдіть місце в документі HTML, де виводиться числове значення штрих-коду.
8. Аналіз за допомогою Wireshark
Даний пункт рекомендується виконувати на віртуальній машині, так як встановлюється режим запису ключів шифрування в файл.
-
Запустіть віртуальну машину VM Windows 10.
-
У PowerShell виконайте наступну команду
setx SSLKEYLOGFILE "C:\sslkeys\keys.log"
Це встановлює змінною середовища SSLKEYLOGFILE рівною шляху розміщення ключів, для можливості доступу інших програм. Це потрібно для того, щоб можна було прослуховувати власний трафік у WireShark.
-
Перезапустіть VM Windows 10.
-
Запустіть браузер і відкрийте сайт http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
-
Запустіть Wireshark, у налаштуваннях
Edit → Preferences → Protocols → TLS → (Pre)-Master-Secret log filenameвкажіть розміщення файлуkeys.log -
Запустіть захоплення пакетів у Wireshark, і перезавантажте сторінку без використання кешування.
-
Зробіть аналіз чи бачите Ви зміст корисного навантаження HTTPs. Якщо так, переходьте до виконання інших пунктів.
-
Деактивуйте кешування у Wireshark. Перезапуістіть у Wireshark захват пакетів.
-
Обновіть сторінку https://barcatreader.onrender.com/. Зупиніть захват пакетів.
-
Дайте відповіді на наступні питання
- Яка IP-адреса сервера
barcatreader.onrender.com? -
Коли HTML-файл, який ви отримуєте, востаннє змінювався на сервері?
- Зробіть аналіз HTTP трафіку, виконуючи п.6.
Автори
Практичне заняття розробив Олександр Пупена.
Допомога у створенні тестового Веб-застосунку Олексій Григорович
Feedback
Якщо Ви хочете залишити коментар у Вас є наступні варіанти:
Про проект і можливість допомогти проекту написано тут