HTTP analizė naudojant „Wireshark“

Http Analysis Using Wireshark



Kas yra HTTP?

Pirma, visa HTTP forma yra „HyperText Transfer Protocol“. HTTP yra taikymo sluoksnio protokolas pagal ISO arba TCP/IP modelį. Žiūrėkite žemiau esantį paveikslėlį, kad sužinotumėte HTTP, kuris yra po programos sluoksniu.







HTTP naudoja Pasaulinis tinklas (w.w.w) ir apibrėžia, kaip naršyklė formato ir perduoda pranešimus. Taigi HTTP apibrėžia, kokius veiksmus reikia atlikti, kai naršyklė gauna HTTP komandą. Taip pat HTTP nustato HTTP komandos perdavimo taisykles, kad gautų duomenis iš serverio.



Pvz., Kai naršyklėje įvedate URL („Internet Explorer“, „Chrome“, „Firefox“, „Safari“ ir kt.), Jis iš tikrųjų siunčia HTTP komandą į serverį. Ir serveris atsako naudodami atitinkamą komandą.



HTTP metodai:

Yra keletas HTTP/1.1 metodų rinkinio (tai yra HTTP versija)





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

Mes nesigilinsime į kiekvieną metodą, o mes susipažinsime su gana dažnai matomais metodais



GET: GET užklausa prašo duomenų iš žiniatinklio serverio. Tai yra pagrindinis dokumentų gavimo metodas. Pamatysime vieną praktinį šio metodo pavyzdį.

POST: POST metodas naudojamas, kai reikia siųsti kai kuriuos duomenis į serverį.

HTTP yra „Wiresahark“:

Pabandykime ką nors praktiško suprasti, kaip veikia HTTP?

Taigi šiame pavyzdyje mes atsisiųsime alice.txt (duomenų failas yra serveryje) nuo gaia.cs.umass.edu serveris.

Nustatymai:

  1. Atidarykite URL http://gaia.cs.umass.edu/wireshark-labs/alice.txt [Mes žinome visą URL, kaip atsisiųsti alice.txt] kompiuterio naršyklėje.
  2. Dabar naršyklėje matome atsisiųstą failą. Čia yra ekrano kopija

  1. Lygiagrečiai mes užfiksuojame paketus „Wireshark“.

HTTP paketų mainai „Wireshark“:

Prieš pradėdami naudotis HTTP, turėtume žinoti, kad HTTP naudoja 80 prievadą ir TCP kaip transportavimo sluoksnio protokolą [TCP paaiškinsime kitoje temos diskusijoje].

Dabar pažiūrėkime, kas nutinka tinkle, kai įdedame tą URL ir paspaudžiame „Enter“ naršyklėje.

Čia yra ekrano kopija, skirta

TCP trijų krypčių rankos paspaudimas ——-> HTTP Gerai ——-> TCP duomenys [alice.txt turinys] ——->

HTTP-Gerai

Dabar pažiūrėkime, kas yra HTTP GET ir HTTP OK paketuose.

Pastaba: TCP mainus paaiškinsime kitoje temos diskusijoje.

HTTP GET:

Baigus TCP trijų krypčių rankos paspaudimą [SYN, SYN+ACK ir ACK paketai], HTTP GET užklausa siunčiama į serverį ir čia yra svarbūs paketo laukai.

1. Prašymo metodas: GET ==> Paketas yra HTTP GET.

2. Užklausos URI: /wireshark-labs/alice.txt ==> Klientas prašo failo alice.txt, esantį /Wireshark-labs

3. Prašymo versija: HTTP/1.1 ==> Tai HTTP versija 1.1

4. Priimti: text/html, application/xhtml+xml, image/jxr, */ * ==> Praneša serveriui apie failo tipą, kurį [kliento pusės naršyklė] gali priimti. Čia klientas laukia teksto tipo alice.txt.

5. Priimtina kalba: lt-US ==> Priimtas kalbos standartas.

6. Vartotojo agentas: „Mozilla“/5.0 („Windows NT 10.0; WOW64; Trident/7.0; rv: 11.0)“, kaip „Gecko“ ==> Kliento pusės naršyklės tipas. Net jei mes naudojome interneto naršyklę, bet ją matome visada/maksimalus laikas sako „Mozilla“

7. Priimti kodavimą: gzip, ištuštinkite ==> Priimta koduotė kliento pusėje.

8. Priegloba: gaia.cs.umass.edu ==> Tai yra žiniatinklio serverio pavadinimas, kuriame klientas siunčia HTTP GET užklausą.

9. Jungtis: Išlaikyti gyvą ==> Ryšys valdo, ar tinklo ryšys lieka atidarytas pasibaigus dabartinei operacijai. Ryšio tipas išlieka gyvas.

Čia yra HTTP-GET paketų laukų ekrano kopija

HTTP gerai:

Po to, kai TCP duomenys [alice.txt turinys] sėkmingai išsiųsti, klientui siunčiamas HTTP Gerai ir čia yra svarbūs paketo laukai.
1. Atsakymo versija: HTTP / 1.1 ==> Čia serveris taip pat yra HTTP versijoje 1.1
2. Būsenos kodas: 200 ==> Būsenos kodas, kurį atsiuntė serveris.
3. Atsakymo frazė: Gerai ==> Atsakymo frazė, išsiųsta serverio.

Taigi iš 2 ir 3 gauname 200 Gerai, o tai reiškia, kad užklausa [HTTP GET] pavyko.

4. Data: 2019 m. Vasario 10 d., 06:24:19 GMT ==> Dabartinė data, laikas GMT, kai serveris gavo HTTP GET.
5. Serveris: „Apache“/2.4.6 („CentOS“) „OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.10 Perl/v5.16.3“ ==> Serverio informacija ir konfigūracijos versijos.
6. Paskutinis modifikuotas : 2004 m. Rugpjūčio 21 d., 14:21:11 GMT ==> Paskutinį kartą pakeista failo alice.txt data ir laikas.
7. ETag: 2524a-3e22aba3a03c0 ==> ETag rodo, kad turinys nekeičiamas, kad būtų lengviau talpykloje išsaugoti ir pagerinti našumą. Arba, jei turinys pasikeitė, etagai yra naudingi, kad būtų išvengta tuo pačiu metu atnaujinamų išteklių.
8. Priimti diapazonai: baitai ==> Baitas yra turinio vienetas, naudojamas serveryje.
9. Turinio ilgis: 152138 ==> Tai yra bendras alice.txt ilgis baitais.
10. Išlaikyti gyvą: skirtasis laikas = 5, maks. = 100 ==> Palaikykite parametrus gyvus.
11. Jungtis: Išlaikyti gyvą ==> Ryšys valdo, ar tinklo ryšys lieka atidarytas pasibaigus dabartinei operacijai. Ryšio tipas išlieka gyvas.
12. Turinio tipas: tekstas/paprastas; simbolių rinkinys = UTF-8 ==> Turinio [alice.txt] tipas yra tekstas, o simbolių rinkinio standartas yra UTF-8.

Čia yra skirtingų HTTP OK paketo laukų ekrano kopija.

Taigi dabar mes žinome, kas atsitinka, kai prašome bet kokio failo, esančio žiniatinklio serveryje.

Išvada:

HTTP yra paprastas taikymo protokolas, kurį naudojame kasdien. Tačiau tai nėra saugu, todėl buvo įdiegtas HTTPS. Tai S reiškia saugumą. Štai kodėl maksimalus žiniatinklio serverio pavadinimas prasideda nuo http s: // [interneto svetainės pavadinimas] . Tai reiškia, kad visi ryšiai tarp jūsų ir serverio yra užšifruoti. Ateityje turėsime atskirą diskusiją apie šį HTTPS.