Analiza HTTP folosind Wireshark

Http Analysis Using Wireshark



Ce este HTTP?

În primul rând, toată forma completă a HTTP este Protocolul de transfer HyperText. HTTP este un protocol de strat de aplicație în modelul ISO sau TCP / IP. Vedeți imaginea de mai jos pentru a afla HTTP care se află sub stratul aplicației.







HTTP este utilizat de World Wide Web (w.w.w) și definește modul în care mesajele sunt formatate și transmise de browser. Deci, HTTP definește regulile ce acțiune ar trebui luată atunci când un browser primește comanda HTTP. Și, de asemenea, HTTP definește reguli pentru transmiterea comenzii HTTP pentru a obține date de la server.



De exemplu, atunci când introduceți o adresă URL în browser (Internet Explorer, Chrome, Firefox, Safari etc.), aceasta trimite de fapt o comandă HTTP către server, iar serverul răspunde cu comanda corespunzătoare.



Metode HTTP:

Există câteva seturi de metode pentru HTTP / 1.1 (Aceasta este versiunea HTTP)





GET, HEAD, POST, PUT, DELETE, CONECT, OPTION și TRACE.

Nu vom intra în detaliile fiecărei metode, ci vom afla despre metodele care sunt văzute destul de des



OBȚINE: Cererea GET solicită date de la serverul web. Aceasta este o metodă principală folosită retrival document. Vom vedea un exemplu practic al acestei metode.

POST: Metoda POST este utilizată atunci când este necesară trimiterea unor date către server.

HTTP este Wiresahark:

Să încercăm ceva practic pentru a înțelege cum funcționează HTTP?

Deci, în acest exemplu vom descărca alice.txt (Fișier de date prezent pe server) din gaia.cs.umass.edu Server.

Setps:

  1. Deschideți adresa URL http://gaia.cs.umass.edu/wireshark-labs/alice.txt [Știm adresa URL completă pentru descărcarea alice.txt] în browserul computerului.
  2. Acum vedem fișierul descărcat în browser. Iată captura de ecran

  1. În paralel, capturăm pachetele din Wireshark.

Schimburi de pachete HTTP în Wireshark:

Înainte de a intra în HTTP ar trebui să știm că HTTP folosește portul 80 și TCP ca protocol de strat de transport [Vom explica TCP într-o altă discuție subiect].

Acum, să vedem ce se întâmplă în rețea atunci când punem adresa URL respectivă și apăsăm Enter în browser.

Iată captura de ecran pentru

Strângere de mână în trei direcții TCP ——-> HTTP OK ——-> Date TCP [conținutul alice.txt] ——->

HTTP-OK

Acum să vedem ce există în pachetele HTTP GET și HTTP OK.

Notă: Vom explica schimburile TCP într-o altă discuție subiect.

HTTP GET:

După ce se face o strângere de mână TCP cu 3 căi [pachetele SYN, SYN + ACK și ACK], se solicită HTTP GET trimiterea către server și aici sunt câmpurile importante din pachet.

1. Metoda de solicitare: GET ==> Pachetul este HTTP GET.

2. Solicitați URI: /wireshark-labs/alice.txt ==> Clientul cere fișierul alice.txt prezent în / Wireshark-labs

3. Solicitați versiunea: HTTP / 1.1 ==> Este versiunea HTTP 1.1

4. Acceptați: text / html, application / xhtml + xml, image / jxr, * / * ==> Spune serverului despre tipul de fișier pe care [browserul client partea] îl poate accepta. Aici clientul așteaptă alice.txt, care este de tip text.

5. Limbă de acceptare: en-US ==> Standard de limbă acceptat.

6. Utilizator-agent: Mozilla / 5.0 (Windows NT 10.0; WOW64; Trident / 7.0; rv: 11.0) ca Gecko ==> Tipul de browser partea clientului. Chiar dacă am folosi Internet Explorer, dar îl vedem întotdeauna / timpul maxim spune Mozilla

7. Acceptare-codificare: gzip, dezumflați ==> Codificare acceptată în partea clientului.

8. Gazdă: gaia.cs.umass.edu ==> Acesta este numele serverului web către care clientul trimite cererea HTTP GET.

9. Conexiune: Keep-Alive ==> Conexiunea controlează dacă conexiunea la rețea rămâne deschisă după finalizarea tranzacției curente. Tipul de conexiune este păstrat în viață.

Iată captura de ecran pentru câmpurile de pachete HTTP-GET

HTTP OK:

După ce datele TCP [conținutul alice.txt] sunt trimise cu succes HTTP OK este trimis clientului și aici sunt câmpurile importante din pachet.
1. Versiunea de răspuns: HTTP / 1.1 ==> Aici server, de asemenea, în versiunea HTTP 1.1
2. Cod de stare: 200 ==> Cod de stare trimis de server.
3. Fraza de răspuns: Bine ==> Frază de răspuns trimisă de server.

Deci, de la 2 și 3 obținem 200 OK, ceea ce înseamnă că solicitarea [HTTP GET] a reușit.

4. Data: Duminică, 10 februarie 2019 06:24:19 GMT ==> Data curentă, ora în GMT când HTTP GET a fost primit de server.
5. Server: Apache / 2.4.6 (CentOS) OpenSSL / 1.0.2k-fips PHP / 5.4.16 mod_perl / 2.0.10 Perl / v5.16.3 ==> Detalii despre server și versiuni de configurații.
6. Ultima modificare : Sâmbătă, 21 august 2004 14:21:11 GMT ==> Data și ora ultimei modificări pentru fișierul alice.txt.
7.ETag: 2524a-3e22aba3a03c0 ==> ETag-ul indică faptul că conținutul nu este modificat pentru a ajuta la cache și a îmbunătăți performanța. Sau dacă conținutul s-a schimbat, etag-urile sunt utile pentru a preveni suprascrierea reciprocă a actualizărilor simultane ale unei resurse.
8. Accept-Ranges: octeți ==> Octetul este unitatea utilizată în server pentru conținut.
9. Lungimea conținutului: 152138 ==> Aceasta este lungimea totală a alice.txt în octeți.
10. Keep-Alive: timeout = 5, max = 100 ==> Păstrați parametrii în viață.
11. Conexiune: Ține în viață ==> Conexiunea controlează dacă conexiunea la rețea rămâne deschisă după finalizarea tranzacției curente. Tipul de conexiune este păstrat în viață.
12. Tipul conținutului: text / simplu; charset = UTF-8 ==> Tipul de conținut [alice.txt] este text, iar standardul setului de caractere este UTF-8.

Iată captura de ecran pentru diferite câmpuri ale pachetului HTTP OK.

Deci, acum știm ce se întâmplă atunci când solicităm orice fișier care este prezent pe serverul web.

Concluzie:

HTTP este un protocol de aplicație simplu pe care îl folosim în fiecare zi din viața noastră. Dar nu este sigur, așa că HTTPS a fost implementat. Că S înseamnă siguranță. De aceea, numele dvs. maxim de server web începe cu http s: // [nume de web] . Aceasta înseamnă că toate comunicările dintre dvs. și server sunt criptate. În viitor, vom discuta separat despre acest HTTPS.