- •Дослідження мережних протоколів
- •Програма WireShark
- •Інсталяція Wireshark
- •Інтерфейс користувача Wireshark
- •Тестовий запуск Wireshark
- •Завдання
- •Дослідження Ethernet та arp
- •Перехоплення і аналіз кадрів Ethernet
- •Arp (протокол визначення адреси)
- •Arp Кешування
- •Спостереження за arp в дії
- •Протокол ip
- •Перехоплення пакетів програми traceroute
- •Дослідження перехоплених пакетів
- •Фрагментація
- •Протокол icmp
- •Протокол http
- •Базова взаємодія get/response
- •Умовна взаємодія http get/response
- •Завантаження великих документів
- •Html документи, що містять зовнішні об’єкти
- •Аутентифікація http
- •Протокол ssl
- •Перехоплення пакетів ssl сесії
- •Аналіз перехоплених пакетів
- •Протокол tcp
- •Перехоплення tcp пакетів, переданих від вашого комп’ютера на віддалений сервер
- •Перший погляд на перехоплені пакети
- •Основи tcp
- •Керування перенавантаженням tcp
- •Протокол udp
- •Протокол служби dns
- •Стеження за dns пакетами за допомогою Wireshark
- •Протокол dhcp
- •Експеримент з dhcp
Протокол http
У цій лабораторній роботі ми дослідимо декілька аспектів HTTP протоколу: базову взаємодію GET/response, формат повідомлень HTTP, отримання великих файлів через HTTP, отримання файлів в HTML та HTTP автентифікацію.
Базова взаємодія get/response
Почнемо наше дослідження HTTP із завантаження дуже простого HTML файлу – короткого, і що не містить ніяких прикріплених об’єктів. Зробіть наступне:
Запустіть ваш браузер.
Запустіть програму Wireshark (але не запускайте перехоплення пакетів). Введіть “http” в поле для фільтру, щоб відображалися лише пакети HTTP.
Почекайте трошки більше за хвилину і потім запустіть перехоплення пакетів.
Введіть у ваш браузер:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
Після цього має відобразитися сторінка з дуже простим, в один рядок, HTML кодом.
Зупиніть перехоплення пакетів.
Ваше вікно у Wireshark має бути подібним до Мал.1.
Мал. 1. Вікно Wireshark після завантаження сторінки http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html через браузер
Приклад на Мал.1 показує у вікні списку перехоплених пакетів два HTTP повідомлення: повідомлення GET (направленого з вашого браузера до gaia.cs.umass.edu web-сервера) і відповідь з серверу до вашого браузера. Нижнє вікно відображає вміст вибраного пакету (в даному випадку - повідомлення HTTP GET, яке виділене у списку пакетів). Нагадаємо, що так як повідомлення HTTP було загорнуто в TCP пакет, який в свою чергу загорнутий в IP дейтаграму, що міститься в Ethernet кадрі, Wireshark також відображує інформацію про дані Ethernet, IP та TCP заголовків. Ми хочемо вимкнути відображення інформації, що не пов’язана з HTTP, тому переконайтеся, що всі вищезазначені пакети, окрім HTTP, знаходяться у згорнутому вигляді.
Дивлячись на HTTP GET повідомлення та відповідь на нього, дайте відповіді на наступні питання (при можливості роздрукуйте ці повідомлення та інформацію, що допоможе вам при відповіді):
Ваш браузер використовує версію HTTP 1.0 чи 1.1? Яку версію використовує сервер?
В якому мовному кодуванні (якщо таке є) ваш браузер має можливість приймати інформацію від сервера?
Яка IP адреса вашого комп’ютера та сервера gaia.cs.umass.edu?
Який код статусу повертає сервер вашому браузеру?
Який був останній час модифікації HTML файлу, що ви отримали?
Скільки байтів інформації було передано браузеру?
Переглядаючи дані у вікні детального перегляду пакетів, чи ви помітили заголовки, що не були відображені у вікні списку пакетів? Якщо так, назвіть.
При відповіді на п’яте питання ви можете здивуватися, побачивши, що останній час зміни HTTP документу менше хвилини від часу його завантаження вами. Це спостерігається тому (саме для цього файлу), що gaia.cs.umass.edu сервер щохвилини перевстановлює час останньої модифікації на поточний час. Тому, якщо ви почекаєте хвилину, файл буде помічений як нещодавно модифікований, і тому ваш браузер завантажить «нову» копію файлу.
Умовна взаємодія http get/response
Пригадаємо, що більшість web-браузерів дозволяють кешувати об’єкти і тому існує таке поняття, як умовний (conditional) GET запит при отриманні HTTP об’єктів. Перед проведенням наступних кроків впевніться, чи порожній кеш у вашому браузері (у Firefox виберіть Tools->Clear Private Data, в Internet Explorer - Tools->Internet Options->Delete File для очищення кешу). Тепер зробіть наступне:
Запустіть ваш web-браузер, та переконайтеся, що кеш в ньому очищений.
Запустіть перехоплення пакетів у Wireshark.
Введіть наступний URL у ваш браузер:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html
Браузер має відобразити дуже просту HTML сторінку з п’ятьма рядками.
Швидко введіть ту саму адресу у ваш браузер (або просто перезавантажте сторінку).
Зупиніть перехоплення пакетів у Wireshark та введіть “http” в поле для фільтру з метою відображення лише перехоплених повідомлень HTTP.
Дайте відповідь на наступні питання:
8. Дослідіть вміст першого повідомлення HTTP GET, направленого від вашого браузера до сервера. Ви бачите рядок “IF-MODIFIED-SINCE” в заголовках HTTP GET?
9. Дослідіть вміст відповіді сервера. Чи дійсно сервер явно передав вміст HTTP файлу? З чого можна про це судити?
10. Тепер дослідіть вміст другого повідомлення HTTP GET направленого від вашого браузера до сервера. Ви бачите рядок “IF-MODIFIED-SINCE” в заголовках HTTP GET? Якщо так, яка інформація йде після заголовку “IF-MODIFIED-SINCE:”?
11. Який HTTP код та текстову кодову фразу повертає сервер у відповіді на другий HTTP GET запит? Чи явно сервер повернув вміст файлу? Поясніть.
