Consommation de Service Web XML, consultation de Flux, téléchargement de pages ou d'images (...), il est de plus en plus courant d'accéder depuis des applications WINDEV ou des sites WEBDEV à des données sur Internet.
Lorsque l'envoi d'une requête vers le Web, ou l'interprétation de son résultat n'est pas immédiat, il peut être nécessaire d'analyser finement l'échange avec le serveur distant contacté par l'application ( HTTPRequete, SOAPExécute...). L'analyse de trames est alors nécessaire, afin de voir très précisément les données qui transitent par la carte réseau. Il s'agit d'un vaste sujet nécessitant une expertise réseau de haut niveau, et la maîtrise d'un analyseur réseau. Cependant il existe un programme permettant à tout Développeur, et avec un nombre limité d'opérations, d'avoir les échanges de son application avec un serveur Web. Il s'agit de l'utilitaire Wireshark.
Voici un mode opératoire permettant d'effectuer ses premières analyses :
- lancer l'utilitaire Wireshark,
- menu "Capture ... Option",
- dans le cas d'un ordinateur avec plusieurs cartes réseau, sélectionner celle utilisée pour la connexion Internet,
- préciser un filtrage sur le port, par exemple :
- "http port" pour filtrer sur HTTP,
- "tcp port 8082" afin de filtre les échanges sur le port 8082 uniquement...
- valider les options par le bouton "Start" ou "Démarrer" :
A ce stade, l'utilitaire est à l'écoute afin de capturer toutes les données qui vont transiter sur la carte réseau. Il suffit donc de :
- lancer le traitement de votre application WINDEV, ou de votre site WEBDEV, qui va dialoguer avec un serveur distant. Lors de la communication, l'utilitaire Wireshark va en temps réel afficher les échanges de trames :
- stopper ensuite la capture avec l'option "Capture ... Stop".
L'utilitaire Wireshark présente alors l'ensemble des échanges qui ont eu lieu durant toute la capture. En l'état, l'information n'est pas exploitable pour les non initiés. Il reste une unique option à connaître pour mener les recherches à leur terme : clic droit sur les trames, puis "Follow TCP Stream" dans le menu contextuel :
L'échange complet entre l'application WINDEV, ou le site WEBDEV et le site distant est alors accessible. Il est ainsi possible d'analyser, comparer, le contenu de la requête envoyée par votre traitement (GET, POST), puis de voir la réponse obtenue. Par exemple l'appel de la fonction HTTPRequête pour obtenir la page d'accueil du site PC SOFT, donne le résultat suivant :
Ce protocole est applicable à tout échange fait au travers de la carte réseau, y compris ceux des navigateur Internet Explorer, Chrome, Firefox...
Bonnes analyses !
-------------------------------------
-------------------------------------
Mise à jour 29/8/2019 - l'utilitaire permet également d'obtenir des statistques lors d'échanges de données. Accesssibbles par l'option "Conversations" de menu "statistics", elles permettent d'avoir immédiatement les délais d'acheminement des données. Cela peut aider à cerner l'origine de latences sur différentes installations.
------------------------------------- Mise à jour 8/12/2020 - L'utilisation de Wireshark ne permet pas de voir le contenu de requêtes chiffrées avec HTTPS. Pour la mise au point d'un échange de données chiffrées, un proxy HTTP est nécessaire, un exemple est proposé dans un nouveau billet : Après le b.a.-ba de l'analyse de trames TCP, la suite avec le cas des requêtes en HTTPS...
|