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

Что такое HTTP?

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

HTTP используется во всемирной паутине (www) и определяет, как сообщения форматируются и передаются браузером. Таким образом, 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: запрос GET запрашивает данные с веб-сервера. Это основной используемый метод возврата документов. Мы увидим один практический пример этого метода.

POST: метод 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-OK

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

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

HTTP GET:

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

1. Метод запроса : GET ==> Пакет представляет собой HTTP-запрос GET.

2. URI запроса :/wirehark-labs /alice.txt ==> Клиент запрашивает файл alice.txt, находящийся в/Wireshark-labs

3.Request version : HTTP/1.1 ==> Это HTTP версии 1.1

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

5.Accept-Language : en-US ==> Стандарт принятого языка.

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

7.Accept-Encoding : gzip, deflate ==> Принимаемая кодировка на стороне клиента.

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

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

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

HTTP OK:

После успешной отправки данных 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 = => Текущая дата, время по Гринвичу, когда 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. Accept-Ranges : bytes ==> Байт — это единица измерения, используемая на сервере для содержимого.
9.Content-Length : 152138 ==> Это общая длина alice.txt в байтах.
10. Keep-Alive : timeout = 5, max = 100 ==> Не отключать параметры.
11.Connection : Keep-Alive ==> Connection контролирует, остается ли сетевое соединение открытым после завершения текущей транзакции. Тип подключения — keep alive.
12.Content-Type : text/plain; charset = UTF-8 ==> Тип содержимого [alice.txt] — текст, стандарт кодировки — UTF-8.

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

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

Заключение:

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

Оцените статью
nanomode.ru
Добавить комментарий