Analiza HTTP za pomocą Wireshark

Analiza HTTP za pomocą Wireshark

Co to jest http?

Pierwsza to pełna forma HTTP to protokół transferu hipertekstu. HTTP to protokół warstwy aplikacji w modelu ISO lub TCP/IP. Zobacz poniższe zdjęcie, aby dowiedzieć się HTTP, który znajduje się pod warstwą aplikacji.

HTTP jest używany przez World Wide Web (w.w.w) i określa sposób, w jaki wiadomości są sformatowane i przesyłane przez przeglądarkę. Więc HTTP zdefiniuje ponownie, jakie działanie należy podjąć, gdy przeglądarka odbiera polecenie HTTP. A także HTTP definiuje reguły przesyłania polecenia HTTP, aby uzyskać dane z serwera.

Na przykład po wprowadzeniu adresu URL w przeglądarce (Internet Explorer, Chrome, Firefox, Safari itp.) W rzeczywistości wysyła polecenie HTTP na serwer.I odpowiedzi serwera za pomocą polecenia odpowiednio.

Metody HTTP:

Istnieje kilka metod dla HTTP/1.1 (to jest wersja HTTP)

Zdobądź, skieruj się, publikuj, umieść, usuń, połącz, opcję i śledzenie.

Zamiast tego nie będziemy szczegółowo opisać każdej metody.Jak na przykład

DOSTAWAĆ: Uzyskaj żądanie Zapytanie danych z serwera WWW. Jest to główna metoda używana przez dokumenty. Zobaczymy jeden praktyczny przykład tej metody.

POST: Metoda postu jest stosowana, gdy jest wymagana do wysyłania niektórych danych na serwer.

HTTP to przewody:

Spróbujmy czegoś praktycznego, aby zrozumieć, jak działa HTTP ?

Więc w tym przykładzie pobramy „Alice.txt ”(plik danych obecny na serwerze) z „Gaia.Cs.Umass.edu ” serwer.

Zestaw:

  1. Otwórz URL http: // gaia.Cs.Umass.EDU/Wireshark-Labs/Alice.txt [Znamy pełny adres URL do pobrania Alice.txt] w przeglądarce komputerowej.
  2. Teraz widzimy pobrany plik w przeglądarce. Oto zrzut ekranu
  1. Równolegle przechwyciliśmy pakiety w Wireshark.

Wymiana pakietów HTTP w Wireshark:

Zanim przejdziemy do HTTP, powinniśmy wiedzieć, że HTTP wykorzystuje port 80 i TCP jako protokół warstwy transportowej [wyjaśnimy TCP w innej dyskusji tematu].

Teraz zobaczmy, co dzieje się w sieci, kiedy umieścimy ten adres URL i naciśnij Enter w przeglądarce.

Oto zrzut ekranu dla

TCP 3-dłoniowy uścisk dłoni-> HTTP OK-> Dane TCP [Treść Alice.txt] ->

HTTP-OK

Teraz zobaczmy, co jest w HTTP Get i HTTP OK Packets.

Uwaga: Wyjaśnimy wymianę TCP w innej dyskusji tematycznej.

HTTP Get:

Po 3-drogowym uścisku dłoni [SYN, SYN+ACK i ACK PACKET] jest dokonywane HTTP GET Żądanie jest wysyłane na serwer, a oto ważne pola w pakiecie.

1.Metoda żądania: Get ==> Pakiet to HTTP Get .

2.Żądanie URI: /Wireshark-Labs /Alice.tekst ==> Klient prosi o plik Alice.TXT obecny pod /wireshark-labs

3.Wersja żądania: HTTP/1.1 ==> To wersja HTTP 1.1

4.Zaakceptuj: Text/html, aplikacja/xhtml+xml, image/jxr, */ * ==> Opowiada serwer o typu pliku, który [przeglądarka po stronie klienta] może zaakceptować. Tutaj klient oczekuje Alice.txt, który jest typem tekstu.

5.Akceptuj język: en-us ==> Przyjęty standard języka.

6.Agent użytkownika: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; RV: 11.0) Podobnie jak gecko ==> Typ przeglądarki bocznej klienta. Nawet jeśli korzystaliśmy z Internet Explorer, ale widzimy to zawsze/maksymalny czas mówi Mozilla

7.Akceptacja: gzip, deflate ==> Zaakceptowane kodowanie po stronie klienta.

8.Gospodarz: Gaia.Cs.Umass.Edu ==> To jest nazwa serwera WWW, w której klient wysyła żądanie HTTP.

9.Połączenie: Keep-Alive ==> Połączenie kontroluje, czy połączenie sieciowe pozostaje otwarte po zakończeniu bieżącej transakcji. Typ połączenia jest utrzymywany przy życiu.

Oto zrzut ekranu dla pól pakietów HTTP

Http ok:

Po danych TCP [zawartość Alice.txt] jest wysyłany pomyślnie HTTP OK jest wysyłany do klienta, a oto ważne pola w pakiecie.
1. Wersja odpowiedzi: HTTP/1.1 ==> Tutaj serwer również w wersji 1 HTTP.1
2.Kod stanu: 200 ==> Kod stanu wysyłany przez serwer.
3.Wyrażenie odpowiedzi: OK ==> Wyrażenie odpowiedzi wysyłane przez serwer.

Tak więc od 2 i 3 otrzymujemy 200 OK, co oznacza, że ​​żądanie [HTTP GET].

4.Data: Sun, 10 lutego 2019 06:24:19 GMT ==> Obecna data, godzina w GMT, kiedy http otrzymał przez serwer.
5.Serwer: Apache/2.4.6 (centos) OpenSSL/1.0.2K-FIPS PHP/5.4.16 mod_perl/2.0.10 perl/v5.16.3 ==> Wersje szczegółów serwera i konfiguracje.
6.Ostatnio zmodyfikowany: Sobota, 21 sierpnia 2004 14:21:11 GMT ==> Ostatnia zmodyfikowana data i godzina pliku „Alice.tekst".
7.ETAG: „2524A-3E22ABA3A03C0” ==> ETAG wskazuje, że treść nie jest zmieniana, aby pomóc buforowanie i poprawić wydajność. Lub jeśli treść się zmieniła, ETAG są przydatne, aby zapobiec jednoczesnym aktualizacjom zasobu od wzajemnego zastąpienia.
8. Akceptuj (bajty ==> Bajt to jednostka używana na serwerze dla treści.
9.Długość treści: 152138 ==> To jest całkowita długość Alice.TXT w bajtach.
10. Utrzymać przy życiu: limit czasu = 5, maks. = 100 ==> Zachowaj parametry przy życiu.
11.Połączenie: Utrzymać przy życiu ==> Kontroluje połączenie, czy połączenie sieciowe pozostaje otwarte po zakończeniu bieżącej transakcji. Typ połączenia jest utrzymywany przy życiu.
12.Typ zawartości: Zwykły tekst; Charset = UTF-8 ==> Treść [Alice.TXT] Typ to tekst, a standard znakowania to UTF-8.

Oto zrzut ekranu dla różnych pól pakietu HTTP OK.

Więc teraz wiemy, co się stanie, gdy żądamy dowolnego pliku obecnego na serwerze WWW.

Wniosek:

HTTP to prosty protokół aplikacji, którego używamy każdego dnia w naszym życiu. Ale nie jest bezpieczny, więc HTTPS został wdrożony. Że „s” oznacza bezpieczne. Dlatego tak maksymalna nazwa serwera WWW zaczyna się od HTTPS: // [WebSiteName]. Oznacza to, że cała komunikacja między tobą a serwerem jest szyfrowana. W przyszłości będziemy przeprowadzić osobną dyskusję na temat tego HTTPS.