HTTP-анализ с использованием Wireshark

Http Analysis Using Wireshark



Что такое HTTP?

Во-первых, полная форма HTTP - это протокол передачи гипертекста. HTTP - это протокол прикладного уровня в модели ISO или TCP / IP. На рисунке ниже показано, как HTTP находится под уровнем приложения.







HTTP используется Всемирная сеть (w.w.w) и определяет, как сообщения форматируются и передаются браузером. Таким образом, HTTP определяет, какое действие следует предпринять, когда браузер получает команду HTTP. А также HTTP определяет правила передачи HTTP-команды для получения данных с сервера.



Например, когда вы вводите URL-адрес в браузере (Internet Explorer, Chrome, Firefox, Safari и т. Д.), Он фактически отправляет HTTP-команду на сервер, и сервер отвечает соответствующей командой.



Методы HTTP:

Есть некоторый набор методов для HTTP / 1.1 (это версия HTTP)





GET, HEAD, POST, PUT, DELETE, CONNECT, OPTION и TRACE.

Мы не будем вдаваться в подробности каждого метода, вместо этого мы узнаем о методах, которые встречаются довольно часто.



ПОЛУЧАТЬ: Запрос GET запрашивает данные с веб-сервера. Это основной используемый метод возврата документов. Мы увидим один практический пример этого метода.

ПОЧТА: Метод POST используется, когда требуется отправить некоторые данные на сервер.

HTTP - это Wiresahark:

Давайте попробуем что-нибудь практическое, чтобы понять, как работает HTTP?

Итак, в этом примере мы загрузим alice.txt (файл данных присутствует на сервере) из gaia.cs.umass.edu сервер.

Установки:

  1. Откройте URL http://gaia.cs.umass.edu/wireshark-labs/alice.txt [Нам известен полный URL-адрес для загрузки alice.txt] в браузере компьютера.
  2. Теперь мы видим загруженный файл в браузере. Вот скриншот

  1. Параллельно у нас есть захват пакетов в Wireshark.

Обмен HTTP-пакетами в Wireshark:

Прежде чем мы перейдем к HTTP, мы должны знать, что HTTP использует порт 80 и TCP в качестве протокола транспортного уровня [мы объясним TCP в другом обсуждении темы].

Теперь давайте посмотрим, что происходит в сети, когда мы помещаем этот URL и нажимаем Enter в браузере.

Вот скриншот для

Трехстороннее подтверждение TCP ——-> HTTP OK ——-> Данные TCP [содержимое alice.txt] ——->

HTTP-ОК

Теперь давайте посмотрим, что находится внутри пакетов HTTP GET и HTTP OK.

Примечание: мы объясним обмен TCP в другом обсуждении темы.

HTTP GET:

После завершения трехстороннего установления связи TCP [пакеты SYN, SYN + ACK и ACK] на сервер отправляется HTTP-запрос GET, и вот важные поля в пакете.

1. метод запроса: ПОЛУЧИТЬ ==> Пакет представляет собой HTTP-запрос GET.

2. URI запроса: /wireshark-labs/alice.txt ==> Клиент запрашивает файл alice.txt в папке / Wireshark-labs

3. версия запроса: HTTP / 1.1 ==> Это HTTP версии 1.1.

4. принять: текст / HTML, приложение / xhtml + xml, изображение / jxr, * / * ==> Сообщает серверу, какой тип файла он [браузер на стороне клиента] может принять. Здесь клиент ожидает alice.txt текстового типа.

5. принять язык: en-US ==> Принятый языковой стандарт.

6. Пользователь-агент: Mozilla / 5.0 (Windows NT 10.0; WOW64; Trident / 7.0; rv: 11.0) как Gecko ==> Тип браузера на стороне клиента. Даже если мы использовали Internet Explorer, но видим его всегда / максимальное время, говорит Mozilla

7. принять-кодирование: gzip, выкачать ==> Принятая кодировка на стороне клиента.

8. хост: gaia.cs.umass.edu ==> Это имя веб-сервера, на который клиент отправляет HTTP-запрос GET.

9. подключение: Keep-Alive ==> Connection контролирует, остается ли сетевое соединение открытым после завершения текущей транзакции. Тип подключения - активный.

Вот скриншот для полей пакета HTTP-GET

HTTP ОК:

После успешной отправки данных TCP [содержимое alice.txt] клиенту отправляется HTTP OK, и вот важные поля в пакете.
1. Версия ответа: HTTP / 1.1 ==> Здесь также сервер в HTTP версии 1.1
2. код состояния: 200 ==> Код состояния, отправленный сервером.
3. ответная фраза: Ok ==> Ответная фраза отправлена ​​сервером.

Итак, из 2 и 3 мы получаем 200 OK, что означает, что запрос [HTTP GET] выполнен успешно.

4. Дата: Вс, 10 фев 2019 06:24:19 GMT ==> Текущая дата, время в GMT, когда сервер получил HTTP GET.
5.Сервер: Apache / 2.4.6 (CentOS) OpenSSL / 1.0.2k-fips PHP / 5.4.16 mod_perl / 2.0.10 Perl / v5.16.3 ==> Сведения о сервере и версии конфигураций.
6.Последние модификации : Сб, 21 авг. 2004 14:21:11 GMT ==> Дата и время последнего изменения файла alice.txt.
7.ETag: 2524a-3e22aba3a03c0 ==> ETag указывает, что содержимое не изменено для облегчения кэширования и повышения производительности. Или, если содержимое изменилось, etags полезны, чтобы помочь предотвратить одновременные обновления ресурса от перезаписи друг друга.
8. Допустимые диапазоны: байты ==> Байт - это единица, используемая на сервере для содержимого.
9. длина содержимого: 152138 ==> Это общая длина alice.txt в байтах.
10. Keep-Alive: тайм-аут = 5, максимум = 100 ==> Сохранить параметры.
11. подключение: Keep-Alive ==> Соединение контролирует, остается ли сетевое соединение открытым после завершения текущей транзакции. Тип подключения - активный.
12.Тип содержимого: текст / простой; кодировка = UTF-8 ==> Тип содержимого [alice.txt] - текст, стандарт кодировки - UTF-8.

Вот скриншот для разных полей пакета HTTP OK.

Итак, теперь мы знаем, что происходит, когда мы запрашиваем любой файл, который присутствует на веб-сервере.

Заключение:

HTTP - это простой протокол приложения, который мы используем каждый день в нашей жизни. Но это небезопасно, поэтому был реализован HTTPS. Это S означает безопасность. Поэтому максимальное имя веб-сервера начинается с http. s: // [websitename] . Это означает, что вся связь между вами и сервером зашифрована. У нас будет отдельное обсуждение этого HTTPS в будущем.