banner1_ES.jpg
Etude de la performance des navigateurs Internet
Image 

Etude de la performance des navigateurs Internet (1ère partie)


Par William Rang, Directeur R&D et Exploitation 
Cette étude vise à mettre en évidence la performance de chargement de pages Web sur plusieurs navigateurs Internet. En effet, les récentes évolutions annoncées dans la version du navigateur Internet Explorer 8 de Microsoft comprennent entre autres, des optimisations de chargement de pages Web. Quel est l’impact en terme de performance de ces améliorations ?

Etude de la performance des navigateurs Internet (Partie 1)

 

Principe de chargement d’une page Web.

 

Le navigateur doit effectuer les opérations suivantes :

 

1)      Résoudre le nom (ou host) utilisé dans l’URL (ex : www.ip-label.net traduit en 62.160.52.111),

2)      Créer une connexion sur l’adresse du serveur qui lui est retournée (adresse IP),

3)      Puis, demander le corps de page à l’aide d’une requête http (GET par exemple) en utilisant un protocole de discussion (ex : HTTP 1.1)

4)      Le code html retourné est ensuite analysé (action de parsing) pour déterminer les différents objets à télécharger. Ces objets peuvent être situés sur le serveur initialement contacté ou bien sur d’autres serveurs (ex : bannières de publicité, tag d’audience…). D’autres connexions sont ouvertes, d’autres requêtes sont émises jusqu’à obtention complète de la page.

 

Une limitation de la version 1.1 du protocole HTTP (RFC2616) préconise un nombre maximum de connexions que le navigateur peut ouvrir sur un même serveur.

Cette limitation est respectée par les navigateurs Internet Explorer 5,6,7 ce qui n’est plus le cas dans la version 8 (en bêta actuellement disponible) qui autorise jusqu’à 6 connexions actives simultanées.

 

Version du navigateur

IE 5

IE 6

IE 7

IE 8

Nombre maximum de connexions sur un même « hôte »

2

2

2

6

 

Se posent alors deux questions :

 

1) Quel peut être le gain en performance côté client ?

2) Quel peuvent être les conséquences côté serveur ?

 

1)Amélioration de la performance côté client :

 

Notion de temps d’attente avant chargement :

 

Le graphique ci-dessous montre le temps passé pour le chargement d’un objet contenu dans une page. Nous supposons qu’il n’y a pas besoin d’effectuer de résolution DNS et qu’une ou plusieurs connexions ont déjà été ouvertes. Le chargement se décompose en 4 phases :

a)      temps d’attente : temps que la navigateur passe à attendre qu’une connexion vers le serveur soit libérée alors qu’il a connaissance qu’un objet doit être chargé (en gris),

b)      temps d’émission de la requête HTTP (en vert clair) ,

c)      temps d’attente de la réponse (en rouge),

d)      temps de réception de l’objet (en vert foncé).

 

 

Dans cet exemple, le temps d’attente représente la plus grosse partie du temps pour accomplir l’ensemble des actions.

 

Chargement sous IE7 :

 

Le graphique ci-dessous montre l’ordonnancement de chargement des objets qui composent une page tous situés sur un même serveur. Nous voyons que seulement deux objets peuvent être chargés simultanément, les barres « grisées » montrent que le navigateur a déjà connaissance des objets qu’il devra charger alors qu’il ne possède pas les ressources nécessaires pour le faire (connexions), déjà utilisées par d’autres chargements.

 

 

Chargement sous IE8 :

 

Le graphique ci-dessous montre un ordonnancement différent où jusqu’à 6 objets peuvent être téléchargés simultanément car 6 connexions ont été ouvertes vers le serveur au lieu de 2. Les temps d’attente sont moindres et la performance se trouve améliorée. Le gain dans certains cas pourrait atteindre 50%.

 

 

2)      Conséquences côté serveur :

 

Si les réseaux haut débit permettent aujourd’hui d’augmenter le volume de chargement, les conséquences pourraient ne pas être négligeables côté serveur car le nombre de connexions simultanées pourrait être multiplié par 3.