HTTP анализ с помощта на Wireshark

Http Analysis Using Wireshark



Какво е HTTP?

Първо, пълната форма на HTTP е HyperText Transfer Protocol. HTTP е протокол на приложен слой в ISO или TCP/IP модел. Вижте снимката по -долу, за да разберете HTTP, който се намира под слоя на приложението.







HTTP се използва от World Wide Web (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: Методът 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 3-посочно ръкостискане ——-> HTTP OK ——-> TCP данни [съдържание на alice.txt] ——->

HTTP-OK

Сега нека видим какво има вътре в пакетите HTTP GET и HTTP OK.

Забележка: Ще обясним обмена на TCP в друга дискусия по темата.

HTTP GET:

След TCP 3-посочно ръкостискане [SYN, SYN+ACK и ACK пакети] се извършва HTTP GET заявка се изпраща до сървъра и тук са важните полета в пакета.

1. Метод на заявка: GET ==> Пакетът е 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. Приемане на език: bg-САЩ ==> Приет езиков стандарт.

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 ==> Връзката контролира дали мрежовата връзка остава отворена след приключване на текущата транзакция. Типът връзка е жив.

Ето екранна снимка за HTTP-GET пакетни полета

HTTP OK:

След успешно изпращане на TCP данни [съдържание на alice.txt] HTTP OK се изпраща на клиента и тук са важните полета в пакета.
1. Версия на отговора: HTTP / 1.1 ==> Тук сървърът също в HTTP версия 1.1
2. Код на състоянието: 200 ==> Код на състоянието, изпратен от сървъра.
3. Фраза за отговор: Добре ==> Фраза за отговор, изпратена от сървъра.

Така че от 2 и 3 получаваме 200 ОК, което означава, че заявката [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. ЕТАГ: 2524a-3e22aba3a03c0 ==> ETag показва, че съдържанието не се променя, за да подпомогне кеширането и да подобри производителността. Или ако съдържанието се е променило, етаговете са полезни, за да предотвратят едновременното обновяване на ресурса да се презаписват.
8. Accept-Ranges: байтове ==> Байт е единицата, използвана в сървъра за съдържание.
9. Дължина на съдържанието: 152138 ==> Това е общата дължина на alice.txt в байтове.
10. Keep-Alive: таймаут = 5, макс = 100 ==> Поддържайте живи параметри.
11. Връзка: Запази живи ==> Връзката контролира дали мрежовата връзка остава отворена след приключване на текущата транзакция. Типът връзка е жив.
12. Тип съдържание: текст/обикновен; charset = UTF-8 ==> Типът съдържание [alice.txt] е текст, а стандартният символ е UTF-8.

Ето екранна снимка за различни полета на HTTP OK пакет.

Така че сега знаем какво се случва, когато поискаме всеки файл, който присъства в уеб сървъра.

Заключение:

HTTP е прост протокол за приложение, който използваме всеки ден в живота си. Но това не е сигурно, така че HTTPS е внедрен. Това S означава сигурно. Ето защо така максималното име на уеб сървъра започва с http s: // [име на уебсайт] . Това означава, че цялата комуникация между вас и сървъра е криптирана. В бъдеще ще имаме отделна дискусия по този HTTPS.