HTTP-analyse met behulp van Wireshark

Http Analysis Using Wireshark



Wat is HTTP?

Ten eerste is de volledige vorm van HTTP HyperText Transfer Protocol. HTTP is een applicatielaagprotocol in het ISO- of TCP/IP-model. Zie onderstaande afbeelding om te zien hoe HTTP zich onder de applicatielaag bevindt.







HTTP wordt gebruikt door de World Wide Web (w.w.w) en het definieert hoe berichten worden geformatteerd en verzonden door de browser. Dus HTTP bepaalt welke actie moet worden ondernomen wanneer een browser een HTTP-opdracht ontvangt. En ook HTTP definieert regels voor het verzenden van HTTP-opdrachten om gegevens van de server te krijgen.



Wanneer u bijvoorbeeld een url in de browser invoert (Internet Explorer, Chrome, Firefox, Safari, enz.), stuurt deze feitelijk een HTTP-opdracht naar de server. En de server antwoordt met de juiste opdracht.



HTTP-methoden:

Er zijn een aantal methoden voor HTTP/1.1 (dit is de HTTP-versie)





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

We zullen niet ingaan op de details van elke methode, maar we zullen meer te weten komen over de methoden die vrij vaak worden gezien. Zoals:



KRIJGEN: GET-verzoek vraagt ​​gegevens van webserver. Dit is een van de belangrijkste methoden voor het ophalen van documenten. We zullen een praktisch voorbeeld van deze methode zien.

NA: De POST-methode wordt gebruikt wanneer het nodig is om bepaalde gegevens naar de server te verzenden.

HTTP is Wiresaark:

Laten we iets praktisch proberen om te begrijpen hoe HTTP werkt?

Dus in dit voorbeeld zullen we downloaden alice.txt (Gegevensbestand aanwezig op server) van gaia.cs.umass.edu server.

Instellingen:

  1. Open de URL http://gaia.cs.umass.edu/wireshark-labs/alice.txt [We kennen de volledige url voor het downloaden van alice.txt] in de computerbrowser.
  2. Nu zien we het gedownloade bestand in de browser. Hier is de schermafbeelding

  1. Parallel hebben we de pakketten in Wireshark vastgelegd.

HTTP-pakketuitwisselingen in Wireshark:

Voordat we naar HTTP gaan, moeten we weten dat HTTP poort 80 en TCP gebruikt als transportlaagprotocol [We zullen TCP in een ander onderwerp bespreken].

Laten we nu eens kijken wat er in het netwerk gebeurt als we die URL plaatsen en op enter in de browser drukken.

Hier is de schermafbeelding voor

TCP 3-way handshake ——-> HTTP OK ——-> TCP-gegevens [inhoud van alice.txt] ——->

HTTP-OK

Laten we nu eens kijken wat er in HTTP GET- en HTTP OK-pakketten zit.

Opmerking: we zullen TCP-uitwisselingen in een ander onderwerp bespreken.

HTTP GET:

Nadat de TCP 3-way handshake [SYN, SYN+ACK en ACK-pakketten] is voltooid, wordt het HTTP GET-verzoek naar de server verzonden en dit zijn de belangrijke velden in het pakket.

1. Verzoek Methode: GET ==> Het pakket is een HTTP GET .

2. Verzoek-URI: /wireshark-labs/alice.txt ==> De klant vraagt ​​om bestand alice.txt aanwezig onder /Wireshark-labs

3.Verzoek versie: HTTP/1.1 ==> Het is HTTP-versie 1.1

4.Accepteren: tekst/html, applicatie/xhtml+xml, afbeelding/jxr, */* ==> Vertelt de server over het type bestand dat de [client side browser] kan accepteren. Hier verwacht de klant alice.txt, een teksttype.

5.Accepteer-taal: nl-US ==> Geaccepteerde taalstandaard.

6.Gebruikersagent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) zoals Gecko ==> Type browser aan clientzijde. Zelfs als we Internet Explorer gebruiken, maar we zien het altijd / maximale tijd zegt Mozilla

7.Accepteren-codering: gzip, leeglopen ==> Geaccepteerde codering aan clientzijde.

8. Gastheer: gaia.cs.umass.edu ==> Dit is de naam van de webserver waarnaar de client een HTTP GET-verzoek verzendt.

9. Aansluiting: Keep-Alive ==> Verbinding bepaalt of de netwerkverbinding open blijft nadat de huidige transactie is voltooid. Verbindingstype is in leven houden.

Hier is de schermafbeelding voor HTTP-GET-pakketvelden:

HTTP-OK:

Nadat de TCP-gegevens [inhoud van alice.txt] met succes zijn verzonden, wordt HTTP OK naar de client verzonden en dit zijn de belangrijke velden in het pakket.
1. Reactieversie: HTTP / 1.1 ==> Hier server ook in HTTP-versie 1.1
2. Statuscode: 200 ==> Statuscode verzonden door server.
3. Reactiezin: Oke ==> Reactiezin verzonden door server.

Dus de van 2 en 3 krijgen we 200 OK, wat betekent dat het verzoek [HTTP GET] is geslaagd.

4.Datum: zo 10 feb 2019 06:24:19 GMT ==> Huidige datum, tijd in GMT toen HTTP GET werd ontvangen door 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 ==> Server details en configuraties versies.
6.Laatst gewijzigd : Za, 21 aug. 2004 14:21:11 GMT ==> Laatst gewijzigde datum en tijd voor het bestand alice.txt.
7.ETag: 2524a-3e22aba3a03c0 ==> De ETag geeft aan dat de inhoud niet is gewijzigd om caching te vergemakkelijken en de prestaties te verbeteren. Of als de inhoud is gewijzigd, zijn etags handig om te voorkomen dat gelijktijdige updates van een bron elkaar overschrijven.
8. Accept-bereiken: bytes ==> Byte is de eenheid die in de server wordt gebruikt voor inhoud.
9. Inhoudslengte: 152138 ==> Dit is de totale lengte van de alice.txt in bytes.
10. Keep-Alive: time-out=5, max=100 ==> Houd parameters in leven.
11. Aansluiting: In leven houden ==> Verbinding bepaalt of de netwerkverbinding open blijft nadat de huidige transactie is voltooid. Verbindingstype is in leven houden.
12. Inhoudstype: tekst/gewoon; tekenset=UTF-8 ==> Het inhoudstype [alice.txt] is tekst en de tekenset is standaard UTF-8.

Hier is de schermafbeelding voor verschillende velden van het HTTP OK-pakket.

Dus nu weten we wat er gebeurt als we een bestand aanvragen dat aanwezig is op de webserver.

Conclusie:

HTTP is een eenvoudig toepassingsprotocol dat we elke dag in ons leven gebruiken. Maar het is niet veilig, dus HTTPS is geïmplementeerd. Die S staat voor veilig. Daarom begint de maximale naam van de webserver met http s://[websitenaam] . Dit betekent dat alle communicatie tussen u en de server versleuteld is. We zullen in de toekomst afzonderlijk over deze HTTPS praten.