Лабораторная работа Wireshark: HTTP (решение)
Взаимодействие посредством обычных GET-запросов
Снимки, представленные ниже, демонстрируют процесс обмена HTTP-сообщениями (GET-запрос от браузера и ответ на него сервера) и отвечают на следующие вопросы:
1.Какую версию протокола HTTP использует ваш браузер –1.0 или 1.1? А какую
– сервер?
2.Что указывает браузер серверу относительно поддерживаемых языков?
3.Какой IP-адрес у сервера gaia.cs.umass.edu? Каков адрес вашего компьютера?
4.Какой код состояния возвратил сервер браузеру?
5.Какова дата последнего изменения на сервере HTML-файла, который вы вызываете?
6.Каков размер содержимого, которое возвратил сервер браузеру?
7.Проанализировав исходные данные в окне содержимого пакетов, видите ли вы какие-либо заголовки, не отображенные в окне списка пакетов? Если да, то какие? Ответ: Нет, больше никаких заголовков нет.
IP-адрес клиента |
IP-адрес сервера Gaia |
Клиент использует http 1.1
Поддерживаемые языки
Код состояния
Версия http, используемая
сервером
Дата последнего изменения
Размер контента: 128
Взаимодействие посредством условных GET-запросов
Ниже представлен скриншот после двух идентичных GET-запросов:
Первый GET, потом ответ сервера, потом еще один идентичный GET,
затем ответ (304 not modified)
Отвечаем на следующие вопросы:
8.Изучите содержимое первого GET-запроса от вашего браузера серверу. Видите ли вы строку IF-MODIFIED-SINCE в запросе?
9.Проверьте ответ сервера. Возвращает ли он содержимое файла?
10.Теперь изучите содержимое второго GET-запроса серверу. Видите ли вы теперь строку IF-MODIFIED-SINCE в запросе? Если да, то какая информация идет после заголовка IF-MODIFIED-SINCE?
11.Что возвращает сервер в ответ на второй запрос (код состояния и
фраза)? Возвращает ли он содержимое файла? Почему?
Ниже представлены четыре результата перехвата пакетов (два GET-запроса и два ответа на них в хронологическом порядке):
В первом GET-запросе нет IF-MODIFIED-SINCE
Текст, возвращенный в ответ на первый GET-запрос
Во втором GET-запросе есть
IF-MODIFED-SINCE
Файл не менялся! Поэтому текст файла не возвращается в HTTP-ответе
Запрос больших документов
В ответе мы использовали файл трассировки http-ethereal-trace-3. Пакет под номером 8 представляет собой запрос большого документа (момент времени t=4.623732); ответ сервера OK – это пакет 14 (в момент t=6.680432).
Ответное HTTP-сообщение с текстом Билля о правах поступило в TCP-пакетах с номерами 10, 11 и 13. Если взглянуть на подробности пакета 10 в окне содержимого, то можно обнаружить начало данного документа в формате ASCII. Обратим внимание, что пакет 12 содержит флаг подтверждения TCP ACK.
Отвечаем на следующие вопросы:
12.Сколько GET-запросов отправил ваш браузер?
Ответ: 1.
В пакете с каким номером содержится запрос Билля о правах в файле результатов?
Ответ: в пакете 8.
13.Какой пакет в результатах трассировки содержит код состояния и фразу, связанные с GET-запросом?
Ответ: пакет 10.
14.Какой код состояния и фраза в ответном сообщении?
Ответ: 200 (OK)
15.Сколько необходимо сегментов TCP для передачи одного HTTP-ответа и текста Билля о правах? Ответ: три пакета (10, 11, 13 в файле трассировки)
HTML-документы, включающие встроенные объекты
В ответах ниже мы использовали файл результатов трассировки http-ethereal-trace-4 . Отвечаем на следующие вопросы:
16.Сколько GET-запросов отправил ваш браузер?
Ответ: было отправлено три GET-запроса: пакет 10 (получение основного файла), пакет 17 (получение логотипа Pearson) и пакет 20 (получение изображения обложки книги).
На какие IP-адреса в Интернете были отправлены эти запросы?
Ответ: все три запроса были отправлены на разные IP-адреса! Пакет 10
отправлен на 128.119.245.12, пакет 17 – на 165.193.123.218, а пакет 20 – на адрес 134.241.6.82.
17.Можете ли вы сказать, каким способом ваш браузер загрузил изображения с двух веб-сайтов – параллельно или один за другим? Объясните.
Ответ: Загрузки происходили параллельно. Два GET-запроса изображений – это пакеты 17 и 20. Ответные пакеты, содержащие запрошенные изображения – это пакеты с номерами 25 и 54. Таким, образом, мы видим, что запрос второго изображения (пакет 20) был сделан до того, как было получено первое (пакет25).
HTTP-Аутентификация
Наконец, давайте посетим веб-сайт, который защищен паролем, и изучим последовательность HTTP-сообщений при обмене с таким сайтом. Обратимся к URL-
адресу http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-Wireshark-file5.html,
защищенному паролем. Для доступа используйте имя пользователя wiresharkstudents и пароль network. Выполните следующие действия:
Убедитесь, что кэш вашего браузера очищен, как обсуждалось ранее, затем закройте браузер и снова откройте его.
Запустите программу Wireshark.
Введите в адресную строку следующий URL: http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark- file5.html
Введите запрашиваемые учетные данные.
Остановите захват пакетов в Wireshark и введите http в поле фильтра, чтобы в окне списка отображались только HTTP-сообщения.
Примечание. Если у вас нет возможности запустить захват пакетов, используя активное подключение к сети Интернет, вы можете использовать готовые результаты трассировки из файла http-ethereal-trace-5.
Теперь давайте рассмотрим результаты вывода Wireshark. Вы также можете сначала ознакомиться с материалами о методах проверки подлинности в HTTP, изучив документ frontier.userland.com/stories/storyReader$2159.
Отвечаем на следующие вопросы:
18.Каков первоначальный ответ сервера (код состояния и фраза) на первый GETзапрос вашего браузера?
Ответ: в пакете 6 содержится первый GET-запрос, а пакет 9 –ответ на него сервера. В ответе содержится: 401 Authorization Required
19.Какие новые поля добавляются в GET-сообщение при втором запросе браузера?
Ответ: новое поле в запросе – Authorization: Basic:.