Il est plutôt facile de déterminer le poids chargé réel d'une page : il suffit d'additionner les poids de toutes les ressources (au besoin gzippées, si jamais le serveur web utilise la compression HTTP gzip) la composant (page HTML, feuilles de styles, fichiers javascript, images, bref, tout), et d'ailleurs, il existe plétore d'outils (en voilà un) qui le font très bien.

Il existe toutefois des situations où l'on souhaite déterminer non pas le poids chargé effectif d'une page, mais d'un ensemble de pages, de manière à représenter le poids total engendré par un scénario de navigation. Et là, c'est tout de suite plus délicat ; la méthode décrite précédemment ne peut s'appliquer puisque d'une page à l'autre une partie des ressources seront très certainement en cache dans le navigateur (images, css, js...) et donc non rechargées.

Il serait certes envisageable de retirer du calcul, d'une page à l'autre, les ressources chargées dans les pages précédentes. Cependant, la modification du scénario de navigation impliquerait le recalcul du poids de toutes les pages (ou tout du moins, de toute les pages restantes, selon la position de la modification). Et de toute façon, il est difficile de prédire le comportement du navigateur (est-on sûr que toute ressource déjà chargée est cachée ?), cela dépendant d'un certain nombre de paramètres difficilement maîtrisables (balises meta Cache-Control, Expires ou encore Pragma, requêtes HTTP GET conditionnelles, présence d'un proxy, etc).

Une solution à ce problème est d'utiliser un outil de monitoring de trafic réseau. Initialement destiné à détecter des problèmes sur les réseaux, ce type d'outils (tout du moins celui que j'ai testé : SoftPerfect Traffic Meter (49$, dispo en version d'évaluation)) permet de mesurer le trafic sur une interface réseau, et (entre autres fonctionnalités) d'une machine X (port A) vers une machine Y (port B). Il suffit donc d'indiquer que l'on souhaite mesurer le trafic pour l'adresse IP du site distant (ou du proxy) sur le port 80 vers la machine de test puis d'exécuter le scénario de navigation, et le tour est joué.

Options de Traffic Meter