Magazine High tech

Les fichiers HAR, témoins de la performance web

Publié le 30 octobre 2010 par Exkwhando

Les fichiers HAR, témoins de la performance web

- « Dis papa c’est quoi un fichier HAR ? »

Scénario n°1 : – « Ta gueule ! » (Un peu violent !)

Scénario n°2 : – « Écoute fiston, tu sais que dans la vie on grandit inévitablement. A ton age il est tout à fait normal de se poser ce genre de questions et je me dois en tant que père de t’apprendre. Tu vois, ton corps change et tu as pu t’en rendre compte et … » (Ah non, ça c’est à l’adolescence)

Scénario n°3 : – « Tu as seulement deux ans et demi et tu me demandes ce qu’est un fichier HAR ? (oui il sera très précoce et obtiendra ses certifs MCP à un an)

Assied toi là, je vais t’expliquer. Non ! Assied toi mieux que ça ! (oui il sera aussi indiscipliné comme son père)

Alors tout à commencé par des logiciels de tracking réseau / HTTP. Ces derniers permettaient de décomposer de manière linéaire le chargement des pages des sites Internet. Ca ressemblait vaguement à ça :

Les fichiers HAR, témoins de la performance web

Comme on peut le voir, le tout découpe en séquence du site chaque élément (HTML, CSS, JS, Images…) et donc analyse chaque requête faite auprès du serveur qui distribue le contenu. Ce découpage « chirurgical » du déroulement du chargement des sites permettait une analyse de chaque requête avec tout ce qu’elle contient à savoir son entête et sa réponse.

Mais par la suite, les développeurs ont eu quelques problèmes notamment les développeurs de Firebug / NetPanel qui se sont heurtés à quelques problèmes.

Problématique n°1 : Il n’existait auparavant aucun export de données à savoir que les remontée du bugtracker ne pouvaient pas s’enregistrer.

Problématique n°2 : Pour ce faire il fallait avant tout une logique d’uniformité et de standardisation dûe à l’environnement du monde open source

D’ailleurs les développeurs le disent eux-mêmes : « It would be obviously very beneficial to have a common export/import format that is used across all HTTP tracing tools and perhaps other projects. This would allow effective processing and analyzing data coming from various sources. » – « Il serait évidemment très utile d’avoir un format commun à l’import/export qui serait utilisé dans tous les outils de traçage HTTP et peut-être d’autres projets. Cela permettrait un traitement et une analyse efficace des données provenant de diverses sources. » Source : softwareishard.com

C’est comme ça qu’ils ont commencé à rédiger des spécifications sur cette page :

http://groups.google.com/group/firebug-working-group/web/http-tracing—export-format (cherche pas fiston, le lien ne fonctionne pas). Comme on peut le voir, ce dont bien les développeurs de Firebug qui se sont rasemblés en un groupe de travail afin de créer un format d’export pour les logiciels de tracking HTTP.

Et finalement, un peu comme toi, le projet est né ! Pas à la même date sinon ta mère et moi t’aurions baptisé HARry en hommage (Joke… Passons). Donc, je disais, le 10 mai 2010 est sortie la version 1.1 des spécifications du format d’archive HTTP, *.har:

http://groups.google.com/group/http-archive-specification/web/har-1-1-spec

Mais ce n’est pas tout car une semaine plus tard, le 18 mai ils sortaient une version rectifiée (1.2), qui fait aujourd’hui figure de référence avec une dernière révision datée du 12 juillet 2010.

http://groups.google.com/group/http-archive-specification/web/har-1-2-spec

D’ailleurs de nombreux acteurs influents de la communauté de la performance web l’ont annoncé en grande pompe :

Aujourd’hui on en est à la spécification HTTP Archive version 1.2 avec toujours pour objectif la flexibilité et interopérabilité ce qui donne :

  • Des spécifications basées sur les préfédentes HTTP Archive 1.1.
  • Un format basé sur JSON (JavaScript Object Notation) – Tiré de la RFC n°4627
  • Un format encodé uniquement en UTF-8

- Oui papa, c’est bien beau tout ça mais comment est-ce qu’on les voit les fichiers HAR ?

- C’est vrai, ce n’est pas tout d’avoir un format d’échange, il faut les outils pour les supporter.

Il faut savoir qu’il existe trois catégories d’outils de tracking HTTP :

  • Les sniffers réseau qui agissent au niveau du matériel
  • Les proxies réseau qui agissent au niveau des protocoles
  • Les plugins navigateurs qui agissent au niveai du logiciel

Chacun possède ses avantages et ses inconvénients sachant que les plus précis sont ceux qui agissent au niveau du matériel mais après il faut savoir filtrer toutes les informations; ceux qui agissent sur les protocoles permettent une capture fidèle du traffic mais le ralentissent. Les plugins quand à eux peuvent s’avérer très pratiques mais sont propres à un navigateur et ne garantissent pas beaucoup d’interopérabilité.

En tout cas, voici une liste de mes applications préférées parmi la liste que l’on peut trouver sur le groupe de discussion du format HTTP Archive : http://groups.google.com/group/http-archive-specification/web/har-adopters?hl=en

  • Fiddler (proxy réseau – gratuit)
    • Un proxy de debugging HTTP qui permet de surveiller tout le trafic réseau.
  • Firebug/NetExport (plugin navigateur – gratuit)
    • Un plugin navigateur qui permet de surveiller de nombreuses métriques telles que le réseau, le DOM…
  • HAR Viewer (utilitaire – gratuit)
    • Un utilitaire en ligne et installable sur son propre serveur qui permet de lire des fichier *.har exportés.
  • HttpWatch (proxy réseau – payant)
    • Un proxy de surveillance de trafic HTTP qui s’intègre indifférement sur Internet Explorer et Firefox.
  • IE9 Developer Tools (navigateur – gratuit)
    • Un navigateur qui intègre désormais en natif tout comme Safari, un outil de surveillance réseau.
  • WebPagetest (sniffer réseau – gratuit)
    • Un utilitaire disponible en ligne et en version installable. Le meilleur du marché pour analyser letrafic réseau.

- Mais papa, il y-a des risques à surveiller un réseau !

- En effet, en fait, il y-a quelques désavantages lorsque l’on désire s’attelerà la tache de la surveillance de trafic.

Par exemple tout d’abord il faut savoir que dans ce cadre là, toutes les données qui transitent au travers des applications laissent des traces, en même temps c’est aussi ce que l’on cherche, mais quand je dis des traces c’est aussi de nombreuses informations sensibles qui peuvent mettre en jeu autant la sécurité que la vie privée. En effet on peut y trouver toutes les données passées en paramètres GET (variables d’URL) et POST (variables de forumlaires) mais aussi des informations d’authentification ainsi que les user-agent.

Attention donc avant de mettre a disposition de tout le monde les fichier *.har capturés.

- Wow ! Papa, t’es trop fort ! (promotion cher Interflora…)

- Merci fiston. Allez, tu met ton pyjava et au dodo ! Demain on ira au magasin pour acheter tépé… »

PS : Aucune des vannes présentes dans cet article n’est assumée.

Mais par la suite, les développeurs ont eu quelques problèmes notamment les développeurs de Firebug / NetPanel qui se sont heurtés à quelques problèmes.

Problématique 1 : Il n’existait auparavant aucun export de données à savoir que les remontée du bugtracker ne pouvaient pas s’enregistrer.
Problématique 2 : Pour ce faire il fallait avant tout une logique d’uniformité et de standardisation dûe à l’environnement du monde open source

D’ailleurs les développeurs le disent eux-mêmes : « It would be obviously very beneficial to have a common export/import format that is used across all HTTP

tracing tools and perhaps other projects. This would allow effective processing and analyzing data coming from various sources. » – « Il serait évidemment très

utile d’avoir un format commun à l’import/export qui serait utilisé dans tous les outils de traçage HTTP et peut-être d’autres projets. Cela permettrait un

traitement et une analyse efficace des données provenant de diverses sources. »

C’est ainsi qu’ils ont commencé à rédiger des spécifications sur cette page : http://groups.google.com/group/firebug-working-group/web/http-tracing—export-format (cherche pas fiston, le lien ne fonctionne pas). Comme on peut le voir, ce dont bien les développeurs de Firebug qui se sont rasemblés en un groupe de travail afin de créer un format d’export pour les logiciels de tracking HTTP.


Retour à La Une de Logo Paperblog

LES COMMENTAIRES (1)

Par cascador
posté le 01 septembre à 17:51
Signaler un abus

article interessant merci ( et merci pour les blagues) mais attention il y a un echo apres le PS )

A propos de l’auteur


Exkwhando 31 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazine