Analyse HTTP à l'aide de Wireshark

Analyse HTTP à l'aide de Wireshark

Qu'est-ce que HTTP?

Le premier est toute la forme complète de HTTP est un protocole de transfert hypertexte. HTTP est un protocole de couche d'application dans le modèle ISO ou TCP / IP. Voir l'image ci-dessous pour découvrir HTTP qui réside sous la couche d'application.

HTTP est utilisé par le World Wide Web (W.w.w) et il définit comment les messages sont formatés et transmis par le navigateur. Ainsi, HTTP définit les relules quelle action doit être prise lorsqu'un navigateur reçoit. Et HTTP définit également les règles de transmission de la commande http pour obtenir des données à partir du serveur.

Par exemple, lorsque vous entrez une URL dans le navigateur (Internet Explorer, Chrome, Firefox, Safari, etc.), il envoie en fait une commande HTTP au serveur.Et les réponses du serveur avec la commande appropriée.

Méthodes HTTP:

Il existe un ensemble de méthodes pour HTTP / 1.1 (c'est la version http)

Obtenez, dirigez, publiez, posez, supprimez, connectez-vous, option et tracez.

Nous n'irons pas dans les détails de chaque méthode à la place, nous apprendrons à connaître les méthodes qui sont vues assez souvent.Tel que

OBTENIR: Obtenir la demande demande aux données du serveur Web. Ceci est une méthode principale utilisée Retrival de document. Nous verrons un exemple pratique de cette méthode.

POSTE: La méthode du post est utilisée lorsqu'elle est nécessaire pour envoyer des données au serveur.

Http est wiresahark:

Essayons quelque chose de pratique pour comprendre comment fonctionne HTTP ?

Donc, dans cet exemple, nous téléchargerons «Alice.txt »(fichier de données présent dans le serveur) depuis «Gaia.CS.umasse.edu " serveur.

SETPS:

  1. Ouvrez l'URL http: // gaia.CS.umasse.edu / wireshark-labs / Alice.txt [nous connaissons l'URL complète pour télécharger Alice.txt] dans le navigateur d'ordinateur.
  2. Maintenant, nous voyons le fichier téléchargé dans le navigateur. Voici la capture d'écran
  1. En parallèle, nous avons capturé les paquets dans Wireshark.

Échanges de paquets HTTP à Wireshark:

Avant d'aller dans HTTP, nous devons savoir que HTTP utilise le port 80 et TCP comme protocole de couche de transport [nous expliquerons TCP dans une autre discussion de sujet].

Voyons maintenant ce qui se passe dans le réseau lorsque nous mettons cette URL et appuyons sur Entrée dans le navigateur.

Voici la capture d'écran pour

TCP Handshake à 3 voies -> HTTP OK -> Données TCP [Contenu d'Alice.txt] ->

Http-ok

Voyons maintenant ce qu'il y a à l'intérieur des paquets HTTP Get et Http OK.

Remarque: nous expliquerons les échanges TCP dans un autre sujet Discussion.

Http get:

Après la poignée de main à 3 voies TCP [Syn, Syn + ACK et ACK Packets] se fait la demande de GET HTTP est envoyée au serveur et voici les champs importants du paquet.

1.Méthode de demande: Get ==> Le paquet est un http get .

2.Demande URI: / Wireshark-Labs / Alice.SMS ==> Le client demande le fichier Alice.txt présent sous / wireshark-labs

3.Version de demande: Http / 1.1 ==> c'est HTTP version 1.1

4.Accepter: text / html, application / xhtml + xml, image / jxr, * / * ==> Informe au serveur le type de fichier qu'il [navigateur côté client] peut accepter. Ici, le client attend Alice.txt qui est le type de texte.

5.En langue acceptée: en-us ==> Norme linguistique acceptée.

6.Agent utilisateur: Mozilla / 5.0 (Windows NT 10.0; Wow64; Trident / 7.0; VR: 11.0) comme gecko ==> Type de navigateur côté client. Même si nous avons utilisé Internet Explorer, mais nous le voyons toujours / maximum, dit Mozilla

7.Accepter le codage: gzip, dégonfler ==> Encodage accepté du côté client.

8.Héberger: gaia.CS.umasse.édu ==> Ceci est le nom du serveur Web où le client envoie une demande de GET HTTP.

9.Connexion: Keep-alive ==> Contrôle de la connexion si la connexion réseau reste ouverte après la fin de la transaction actuelle. Le type de connexion est en vie.

Voici la capture d'écran pour les champs de paquets HTTP-Get

Http ok:

Après les données TCP [Contenu d'Alice.txt] est envoyé avec succès http ok est envoyé au client et voici les champs importants du paquet.
1. Version de réponse: Http / 1.1 ==> Ici serveur également dans la version 1 http.1
2.Code d'état: 200 ==> Code d'état envoyé par serveur.
3.Expression de réponse: D'ACCORD ==> Expression de réponse envoyée par serveur.

Donc, les 2 et 3, nous obtenons 200 ok, ce qui signifie que la demande [http get] a réussi.

4.Date: Soleil, 10 février 2019 06:24:19 GMT ==> Date actuelle, l'heure de GMT lorsque HTTP Get a été reçue par serveur.
5.Serveur: Apache / 2.4.6 (Centos) OpenSSL / 1.0.2k-fips php / 5.4.16 mod_perl / 2.0.10 perl / v5.16.3 ==> Détails du serveur et versions de configurations.
6.Dernier modifié: Sam, 21 août 2004 14:21:11 GMT ==> Dernière date et heure modifiées pour le fichier «Alice.SMS".
7.ETAG: «2524A-3E22ABA3A03C0» ==> L'ETAG indique que le contenu n'est pas modifié pour aider à la mise en cache et améliorer les performances. Ou si le contenu a changé, les ETAG sont utiles pour aider à empêcher les mises à jour simultanées d'une ressource de se remplacer mutuellement.
8. Accept-plats: octets ==> L'octet est l'unité utilisée dans le serveur pour le contenu.
9.Content-Length: 152138 ==> C'est la longueur totale de l'Alice.txt en octets.
dix. Rester en vie: Timeout = 5, max = 100 ==> Garder les paramètres vivants.
11.Connexion: Rester en vie ==> Connexion Contrôle si la connexion réseau reste ouverte après la fin de la transaction actuelle. Le type de connexion est en vie.
12.Type de contenu: texte simple; charse = utf-8 ==> Le contenu [Alice.txt] Le type est le texte et la norme de charme est utf-8.

Voici la capture d'écran pour différents champs du paquet HTTP OK.

Alors maintenant, nous savons ce qui se passe lorsque nous demandons tout fichier présent dans le serveur Web.

Conclusion:

HTTP est un protocole d'application simple que nous utilisons tous les jours dans notre vie. Mais ce n'est pas sécurisé, donc HTTPS a été mis en œuvre. Ce «s» signifie sécurisé. C'est pourquoi le nom du serveur Web si maximum commence par https: // [WebsiTename]. Cela signifie que toutes les communications entre vous et le serveur sont cryptées. Nous aurons une discussion distincte sur ce HTTPS à l'avenir.