Analiza HTTP z uporabo Wiresharka

Http Analysis Using Wireshark



Kaj je HTTP?

Prvič, celotna oblika HTTP je protokol za prenos hiperteksta. HTTP je protokol aplikacijske plasti v modelu ISO ali TCP/IP. Na spodnji sliki najdete HTTP, ki se nahaja pod aplikacijsko plastjo.







HTTP uporablja Svetovni splet (w.w.w) in določa, kako se brskalnik oblikuje in prenaša sporočila. Tako HTTP definira, kakšno dejanje je treba izvesti, ko brskalnik prejme ukaz HTTP. Prav tako HTTP določa pravila za prenos ukaza HTTP za pridobivanje podatkov s strežnika.



Ko na primer vnesete URL v brskalnik (Internet Explorer, Chrome, Firefox, Safari itd.), Ta dejansko strežniku pošlje ukaz HTTP, strežnik pa odgovori z ustreznim ukazom.



Metode HTTP:

Obstaja nekaj metod za HTTP/1.1 (to je različica HTTP)





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

Ne bomo se podrobneje posvečali vsaki metodi, temveč se bomo seznanili z metodami, ki se pojavljajo precej pogosto



DOBI: Zahteva GET zahteva podatke s spletnega strežnika. To je glavna metoda, ki se uporablja za obnovo dokumentov. Videli bomo en praktičen primer te metode.

OBJAVA: Metoda POST se uporablja, ko je potrebno poslati nekaj podatkov na strežnik.

HTTP je Wiresahark:

Poskusimo kaj praktičnega razumeti, kako deluje HTTP?

Tako bomo v tem primeru prenesli alice.txt (v strežniku je podatkovna datoteka) od gaia.cs.umass.edu strežnika.

Nastavitve:

  1. Odprite URL http://gaia.cs.umass.edu/wireshark-labs/alice.txt [Vemo celoten URL za prenos alice.txt] v brskalnik računalnika.
  2. Zdaj v brskalniku vidimo preneseno datoteko. Tukaj je posnetek zaslona

  1. Vzporedno imamo zajem paketov v Wiresharku.

Izmenjave paketov HTTP v Wiresharku:

Preden se lotimo HTTP, bi morali vedeti, da HTTP uporablja vrata 80 in TCP kot protokol transportne plasti [TCP bomo razložili v drugi razpravi o temi].

Zdaj pa poglejmo, kaj se zgodi v omrežju, ko postavimo ta URL in pritisnemo enter v brskalniku.

Tukaj je posnetek zaslona za

TCP 3-smerno rokovanje ——-> HTTP OK ——-> Podatki TCP [vsebina alice.txt] ——->

HTTP-V redu

Zdaj pa poglejmo, kaj je znotraj paketov HTTP GET in HTTP OK.

Opomba: Izmenjave TCP bomo razložili v drugi razpravi o temi.

HTTP GET:

Po končanem tristranskem rokovanju TCP [SYN, SYN+ACK in ACK paketi] se zahteva HTTP GET pošlje strežniku in tukaj so pomembna polja v paketu.

1. Metoda zahteve: DOBI ==> Paket je HTTP GET.

2. URI zahteve: /wireshark-labs/alice.txt ==> Odjemalec zahteva datoteko alice.txt, ki je prisotna pod /Wireshark-labs

3. Zahtevaj različico: HTTP/1.1 ==> To je različica HTTP 1.1

4. Sprejmi: text/html, application/xhtml+xml, image/jxr, */ * ==> Strežniku pove o vrsti datoteke, ki jo [brskalnik na strani odjemalca] lahko sprejme. Tu odjemalec pričakuje alice.txt, ki je tip besedila.

5. Sprejmi jezik: sl-ZDA ==> Sprejet jezikovni standard.

6. Uporabniški agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv: 11.0), kot je Gecko ==> Vrsta brskalnika na strani odjemalca. Tudi če smo uporabili Internet Explorer, vendar ga vidimo vedno/največ časa, pravi Mozilla

7. Sprejmi-kodiranje: gzip, izprazni ==> Sprejemljivo kodiranje na strani odjemalca.

8. Gostitelj: gaia.cs.umass.edu ==> To je ime spletnega strežnika, kamor odjemalec pošilja zahtevo HTTP GET.

9. Povezava: Keep-Alive ==> Povezava nadzoruje, ali omrežna povezava ostane odprta po končani trenutni transakciji. Vrsta povezave je ohranjena.

Tu je posnetek zaslona za polja paketov HTTP-GET

HTTP v redu:

Ko so podatki TCP [vsebina alice.txt] uspešno poslani, odjemalcu pošlje HTTP OK in tu so pomembna polja v paketu.
1. Različica odgovora: HTTP / 1.1 ==> Tukaj strežnik tudi v različici HTTP 1.1
2. Koda statusa: 200 ==> Kodo stanja pošlje strežnik.
3. Fraza za odgovor: v redu ==> Odzivni stavek, ki ga pošlje strežnik.

Tako od 2 in 3 dobimo 200 OK, kar pomeni, da je zahteva [HTTP GET] uspela.

4. Datum: Ned, 10. februar 2019 06:24:19 GMT ==> Trenutni datum, čas v GMT, ko je strežnik prejel HTTP GET.
5. strežnik: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.10 Perl/v5.16.3 ==> Podrobnosti strežnika in različice konfiguracij.
6. Zadnja sprememba : Sat, 21. avgust 2004 14:21:11 GMT ==> Datum in ura zadnje spremembe datoteke alice.txt.
7.Oznaka: 2524a-3e22aba3a03c0 ==> Oznaka ETag označuje, da se vsebina ne spremeni, da bi pomagala predpomnjenju in izboljšala delovanje. Če pa se je vsebina spremenila, so etagi uporabni, da preprečijo, da bi se sočasne posodobitve vira prepisale.
8. Accept-Ranges: bytes ==> Bajt je enota, ki se uporablja v strežniku za vsebino.
9. Dolžina vsebine: 152138 ==> To je skupna dolžina datoteke alice.txt v bajtih.
10. Keep-Alive: časovna omejitev = 5, max = 100 ==> Ohrani parametre.
11. Povezava: Obdržati pri življenju ==> Povezava nadzoruje, ali omrežna povezava ostane odprta po končani trenutni transakciji. Vrsta povezave je ohranjena.
12. Vrsta vsebine: besedilo/navaden; charset = UTF-8 ==> Vrsta vsebine [alice.txt] je besedilo, standard nabora znakov pa UTF-8.

Tu je posnetek zaslona za različna polja paketa HTTP OK.

Zdaj vemo, kaj se zgodi, ko zahtevamo katero koli datoteko, ki je prisotna v spletnem strežniku.

Zaključek:

HTTP je preprost aplikacijski protokol, ki ga uporabljamo vsak dan v življenju. Vendar ni varen, zato je bil implementiran HTTPS. To S pomeni varno. Zato se tako največje ime spletnega strežnika začne s http s: // [ime spletnega mesta] . To pomeni, da je vsa komunikacija med vami in strežnikom šifrirana. O tem HTTPS bomo v prihodnje imeli ločeno razpravo.