Qu’est ce qu’un navigateur web ?
Un navigateur web c’est un logiciel qui permet aux utilisateurs d’accéder et de visualiser le contenu du World Wide Web. Sa fonction principale est de localiser et de récupérer des pages web, des images, des vidéos, des documents et d’autres fichiers à partir de serveurs et de les afficher.
Les composants d’un navigateur web
Un navigateur web est constitué de plusieurs composants essentiels à son bon fonctionnement. Voici un schéma des différents composants d’un navigateur web.
Interface utilisateur (User interface)
L’interface utilisateur permet à l’utilisateur d’effectuer les tâches qu’il souhaite. C’est au travers de cette interface que l’utilisateur accède à l’ensemble des fonctionnalités du navigateur web tels que la barre d’adresse, les boutons de navigation d’historique, les différents menus de paramétrage et bien d’autres.
Moteur du navigateur (Browser Engine)
Le moteur de navigateur est le coeur de tous les navigateurs. C’est l’intermédiaire entre l’interface utilisateur et le moteur de rendu. Il récupère l’ensemble des événements utilisateurs et s’assure de les transmettre au moteur de rendu.
C’est un élément très important à optimiser car il influera grandement sur la vitesse de chargement des pages.
Moteur de rendu (Rendering Engine)
La première mission du moteur de rendu est de créer le DOM (Document Object Model) en parsant les fichiers HTML. Ce DOM représente la structure de la page web.
La deuxième mission du moteur de rendu est de créer l’arbre de rendu (rendering tree) en associant le style (issue des fichiers CSS) à chaque élément du DOM.
Le moteur de rendu est également en charge de l’exécution du JavaScript interprété au préalable par l’interpréteur JavaScript.
Chaque navigateur à son propre moteur de rendu :
- Google Chrome / Opera v.15+: Blink
- Internet Explorer: Trident
- Mozilla Firefox: Gecko
- Chrome iOS / Safari: WebKit
Réseau (Networking)
La brique réseau est en charge des appels réseaux utilisant les protocoles HTTP / FTP. En effet, pour constituer une page web, il faut récupérer l’ensemble des ressources nécessaires à l’affichage et l’utilisation de cette dernière comme les fichiers HTML, CSS, les scripts JS, les images, les vidéos et autres ressources.
Interpréter Javascript (JS interpreter)
L’interpréteur de JavaScript est responsable de parser et interpréter les fichiers JavaScript d’une page. Le tout est ensuite transmis au moteur de rendu qui affichera le contenu.
UI backend
Ce composant utilise les méthodes d’interface utilisateur du système d’exploitation sous-jacent. Il est principalement utilisé pour dessiner des widgets de base comme des fenêtres et combo box.
Persistence de donnée (Data Persistance)
Un navigateur à besoin de persister des données pour certaines fonctionnalités. On peut citer la pile d’historique qui sauvegarde les URL des pages visitées. On peut également vouloir retenir des informations entre différentes navigations sur une page web avec l’utilisation du local storage ou des cookies.
Conclusion
Naïvement, on pourrait se dire qu’un navigateur ne fait qu’afficher des pages webs, mais en réalité, c’est bien plus complexe. Un navigateur web est composé de multiples éléments dont chacun d’entre eux assure une mission nécessaire dans l’unique but d’afficher des pages web.
Le navigateur récupère des fichiers, les parse, les assemble, affiche les pages, stock des données tout cela dans le but de fournir une expérience d’internet la plus fluide possible.
Si internet est aujourd’hui autant utilisé, c’est en partie grâce aux navigateurs web qui ont rendu internet aussi accessible.