Flux RSS - La vie du site - Nouveautés et mises à jour
Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

Choisir un navigateur Web

Choisir un navigateur Web - De quoi est fait un navigateur Web - Son chœur (le moteur de rendu, open source), l'essentiel de son code (secret ou open source), ses modules additionnels...

01.04.2012 - Révision 21.08.2020 - Révision mineure 22.05.2022. Auteur : Pierre Pinard.

Sécurité informatique - Vie privée - Neutralité
Carnets de voyage en terres truquées
Bienvenue sur le Web




Tout d'abord, un peu de formalisme avec les termes :

  1. Navigateur Web ou Navigateur Internet

    On navigue sur le Web, exclusivement sur le Web, qui n'est qu'une infime partie des usages du réseau des réseaux : l'Internet. L'Internet, c'est l'aspect matériel des choses et le Web s'appuie sur l'Internet, qui lui sert de support. Le terme « Navigateur Internet » est une faute, dans toutes les langues, et l'usage du nom « Internet Explorer », par Microsoft, pour nommer son navigateur Web, à failli péréniser l'erreur.

  2. Naissance du WWW, qui n'est juste qu'une manière d'utiliser Internet

    Depuis le début des années 1970, on parle de l'interconnexion des réseaux, sous le terme technique d'internetwork souvent abrégé en internet (sans majuscule) - (Interconnection of Networks). En particulier, il s'agissait de rendre compatibles et intercommuniquants les technologies réseaux de chaque constructeur d'ordinateurs qui freinaient des deux pieds afin de conserver leur clientèle captive.

    Le 1er janvier 1983, le réseau ArpaNet adopte TCP/IP qui sera la base d'Internet. Le nom d'Internet, avec une majuscule, devient officiel à cette date (devenant un nom propre). Le Web n'arrivera que 8 ans plus tard.

  3. Le Web

    L'idée à germée le 13 mars 1989, dans un bureau du CERN, des cogitations de Tim Berners-Lee.

    Deux ans plus tard, le 06 août 1991, le WWW (World Wide Web) naissait. Ce jour là, Tim Berners-Lee mettra en ligne le premier site WEB (qui est toujours en ligne), au CERN, sur un ordinateur NeXTSTEP utilisé en permier « serveur Web » et rendra libre et public le premier navigateur Web (du nom de Nexus), la notion d'adresse Web, le protocole HTTP, le langage HTML, etc. Le monde va changer.

    On oublie trop souvent les noms du directeur de Tim Berners-Lee, Mike Sendall, qui a été un " Bootstrap " visionnaire, et et Robert Cailliau qui a développé le Web aux côtés de Tim Berners-Lee.

    En juillet 2004, Tim Berners-Lee sera anobli pour devenir Sir Timothy John Berners-Lee.

    En 1994, il fonde le World Wide Web Consortium (W3C), organisme de standardisation et d'assurance de la neutralité d'Internet, qu'il dirige toujours.

    Voir l'article complet sur la naissance de Web :

De quoi est fait un navigateur Web ?

En gros, un navigateur Web est composé de 3 éléments :

  • Un moteur de rendu (qui n'est pas le navigateur). Il calcul graphiquement et affiche la page Web visitée (ils sont tous open source). Un moteur de rendu est, lui-même, composé de 3 éléments :
    • Le moteur de rendu HTML 5 (il en existe 3 qui doivent répondre strictement, rien de plus, rien de moins, aux directives des standards du Web édictés par le W3C. Ils sont donc tous plus ou moins identiques (Quantum, WebKit, Blink). Le 8 décembre 2018, Microsoft a annoncé abandonner le moteur de rendu d'Edge, EdgeHTML, au profit de Blink. Les 2 ou 3 autres moteurs de rendu qui restent sont en voie de disparition. J'ai rencontré un bug d'affichage dans Blink.
    • Le moteur/compilateur JavaScript. Il existe une course à la vitesse dans laquelle le moteur JavaScript de Firefox (Ion) sort premier (voir les captures d'écran des tests dans Firefox).
    • Le moteur de styles CSS (les « feuilles de style en cascade »)
  • Le navigateur Web proprement dit, qui sert à naviguer sur le Web. Mis à part celui de Firefox qui est open source, ils sont tous en code propriétaire (secret) avec interdiction contractuelle d'ingénierie inverse. C'est là que se cache tous les outils d'espionnage, suivi, surveillance, etc.
  • Des modules additionnels (add-on), parfois obligatoires, parfois optionnels, aux goûts et usages de l'utilisateur. C'est du code injecté dans le navigateur. Certains sont « propres », d’autres sont de véritables espions ou malveillances.

Tout cela sert :

  • A afficher une page Web visitée
  • A naviguer sur le Web
  • A personnaliser le navigateur

Choisir un navigateur Web pour se rendre sur l'Internet
Choisir un navigateur Web pour se rendre sur le Web

  1. Le noyau central : le moteur de rendu

    Le « moteur de rendu », c'est ce qui fait comment vous voyez, à l'écran, une page Web, juste la page Web, indépendamment de tout le reste qui s'affiche à l'écran, autour de la page Web visitée (entête, menu, bare de navigation, bare d'outils, panneaux latéraux, bas de la fenêtre, etc.), et relève du navigateur Web, pas du « moteur de rendu » (le navigateur Web peut demander au « moteur de rendu » d'afficher certains objets graphiques qui n'appartiennent pas à la page Web, comme les ascenseurs, les barres d'outils et les menus). Le « moteur de rendu » :

    • Interprète et affiche plus ou moins bien le code HTML selon les standards du W3C (y compris les formulaires et la prise en charge de l'interaction avec l'internaute)
    • En respectant plus ou moins bien les styles et formats décripts dans les feuilles de style en cascade (CSS) selon les standards du W3C
    • En interprétant plus ou moins bien, et plus ou moins rapidement, les codes Javascript (les scripts) de la page Web (il y a divers « moteurs javascript » (« interpréteur javascript ») dans les navigateurs Web dont les tests comparatifs de vitesse font l'objet de combats homériques : SpiderMonkey, TraceMonkey, JägerMonkey, IonMonkey, V8, JavaScriptCore, Chakra, Rhino, Tamarin, Carakan, Futhark, etc.
    • Avec un comportement dit « à tolérance de panne » (« fault tolerant ») qui passe son temps à tenter de rendre visible et cohérente une page bourée de fautes de syntaxe HTML et CSS, comportement hautement et admirablement abracadabrantesque (une véritable gymnastique les pieds au mur) qui fait des merveilles, mais permet aussi beaucoup de laxisme de la part des webmasteurs.

    Il existe très peu de « moteurs de rendu » (Gecko, Webkit, Blink, et c'est presque tout). Ils sont tous open source (sauf Khtml et Trident, tous deux en voie de disparition).

    Les critères de choix vont donc être :

    • Respect des standards du W3C
    • Vitesse

    Aucun souci du côté des « moteurs de rendu » en termes de sécurité et de protection ou violation de la vie privée - Les « moteurs de rendu » n'interviennent absolument pas dans ce domaine et ne communiquent pas avec l'ordinateur (sauf les routines appelant les APIs du processeur graphiques et les requêtes en ressources matérielles).

    ATTENTION : LE MOTEUR DE RENDU N'EST PAS LE NAVIGATEUR WEB.

    Qui utilise quoi ? Quels navigateurs Web (et autres applications) utilisent Webkit ou Gecko ou Blink ?...

    • Gecko :
      Un des objectifs de Gecko a été, dès le départ, le strict respect des standards du web et des recommandations du W3C. Les standards reconnus par Gecko sont notamment HTTP, FTP, SSL, Unicode, JPEG, GIF, HTML, XHTML, XML, CSS, Javascript, ECMAScript, DOM, MathML, RDF, XSLT, SVG, PNG, RSS, Atom, Ajax et XUL. Gecko est remplacé par Quantum dans Firefox (mais continue d'exister dans des dizaines de navigateurs Web dérivés de Firefox.
    • Trident :
      L'un des objectifs de Microsoft, avec Trident, est de ne respecter aucun standard si ce ne sont pas des « standards » de Microsoft. A ce petit jeu, façe au W3C et face à tous les autres « moteurs de rendu », Microsoft a perdu.

    #Gecko
    Fondation Mozilla
    Webkit
    Dérivé de KHTML du projet Unix KDE
    WebCore (Apple)
    Dérivé de KHTML du projet Unix KDE
    Blink
    Dérivé de Webkit
    TridentEdgeHTML
    Un fork de Trident
    Quantum
    Fondation Mozilla
    FirefoxKonquerorEpiphanyGoogle ChromeInternet Explorer (toutes les versions, depuis la version 4.0 à 11.0)Edge (jusqu'au passage à Blink annoncé le 8 déc 2018Firefox à partir de la version 57 le 14 novembre 2017
    ThunderbirdABrowseFlock (depuis version 3)ChromiumNetscape (dans la version 8)
    SeaMonkeyGtkHTML du projet GNOMEiCab (depuis version 4)Opera depuis sa version 15Maxthon (peut utiliser Gecko à la place de Trident)
    ServoNetFront (microbrowser pour petits appareils)iWebVivaldiAvant Browser
    CaminoOmniWebEdge (annonce du 8 déc 2018)AOL Explorer
    Flock (avant la version 3)RapidWeaverYahoo! Explorer
    Beonex CommunicatorSafariiRider
    Netscape (depuis la version 6)ShiiraGoogle Talk
    K-MeleonSunriseBrowserImpulse
    GaleonSwift
    KazehakaseMidori
    Pale Moon (moteur Goanna, basé sur Gecko)Origyn Web Browser
    CyberfoxSputnik
    WaterfoxNaveo
    NvuProtom Navigator
    Kompozer
    BlueGriffon
    Songbird
    Lunascape
    SmartNet Browser
    Epiphany
    Fennec
    Symphony OS (une distribution de Linux)
    Maxthon (peut utiliser Gecko à la place de Trident)

  2. Le navigateur Web proprement dit

    C'est lui qui permet de cliquer sur un lien pour y aller, d'aller à la page précédente/suivante, de précharger les contenus pointés dans la page Web (c'est une mauvaise bonne idée, ça) pour y accéder plus rapidement si on clique sur l'un de ces liens, de demander le rafraîchissement de la page, de gérer les paramètres et options, de gerer les certificats, de gérer les marque-pages et, surtout, toutes les fonctions et activités autres que la navigation proprement dite.

    Soit :

    • Il est open source et tout le monde peut voir ce qu'il y a dedans, ce qu'il fait et ne fait pas (il ne cache rien). Il n'y en a qu'un sur le marché : Firefox
    • Il est à code fermé, propriétaire, secret, et personne ne sait ce qu'il y a dedans et ce qu'il fait, ni comment il le fait (filtrage du Web servant au suivi, suivi, pistage, espionnage, tracking, clickstream, suivi des déplacements du pointeur de la souris même sans action (sans clic) de l'utilisateur, géolocalisation, horodatage, mots clé, page précédente, page suivante, préalable au chiffrement HTTPS, exploitation de la caméra, exploitation du micro, contournement du hosts local, collectes de données privées, etc.). Sauf Firefox, ils sont tous à code fermé.

  3. Les add-on (modules additionnels)

    Choisis et installés par l'utilisateur, certains sont de confiance, comme ceux développés par la Fondation Mozilla elle-même ou l'EFF (Privacy Badger, HTTPS Everywhere...), NoScript, Ghostery, Decentraleyes, AdBlock Plus, d'autres sont extrêmement suspects.

Un navigateur Web est composé de 3 modules :

  1. Un moteur de rendu

    Un moteur de rendu (qui n'est pas le navigateur). Il calcul graphiquement et affiche le contenu Web consulté. Tous les moteurs de rendu sont open source puisqu'ils ne doivent faire, avec une stricte exactitude, tout et que ce que le W3C normalise et ordonne (et strictement rien d'autre. Ils peuvent tenter de se différencier par l'exactitude du rendu et la vitesse d'exécution. Nous avons, chez assiste.com, observé un bug dans le moteur de rendu de tous les navigateurs basés sur Chromium dont le moteur de rendu (Blink) rendait mal les flèches à droite de chaque titre de chapitre de notre site (nous avons dû modifier de très nombreuses fois le dessin de ces images pour en sortir, durant longtemps, avant de comprendre que cela venait du moteur de rendu de certains navigateurs utilisés en tests qui utilisent Blink). Le moteur de rendu Gecko du navigateur Web Mozilla Firefox (ainsi que du courriéleur Thunderbird et de dizaines d'autres navigateur Web) est meilleur et plus rapide.

    Un moteur de rendu est, lui-même, composé de 3 éléments :

    • Le moteur de renduHTML 5 (il en existe 3 qui doivent répondre strictement, rien de plus, rien de moins, aux directives des standards du Web édictés par le W3C. Ils sont donc tous plus ou moins identiques (Quantum, WebKit, Blink). Le 8 décembre 2018, Microsoft a annoncé abandonner le moteur de rendu d'Edge, EdgeHTML, au profit de Blink. Les 2 ou 3 autres moteurs de rendu qui restent sont en voie de disparition. J'ai rencontré un bug d'affichage dans Blink.

    • Le moteur/compilateurJavaScript. Il existe une course à la vitesse dans laquelle le moteur JavaScript de Firefox (Ion) sort premier (voir les captures d'écran des tests dans Firefox).

    • Le moteur de styles CSS (les « feuilles de style en cascade »).

  2. Le navigateur Web proprement dit

    Le navigateur Web proprement dit, qui sert à naviguer sur le Web. Mis à part celui de Firefox qui est open source, ils sont tous en code propriétaire (secret) avec interdiction contractuelle d'ingénierie inverse. C'est là que se cache tous les outils d'espionnage, suivi, surveillance, etc.

  3. Des modules additionnels

    Des modules additionnels (add-on), parfois obligatoires, parfois optionnels, aux goûts et usages de l'utilisateur. C'est du code injecté dans le navigateur. Certains sont « propres », d'autres sont de véritables espions ou de pures malveillances.

Tout cela sert :

  • À afficher une page Web visitée

  • À naviguer sur le Web

  • À personnaliser le navigateur

Choisir un navigateur Web pour se rendre sur l'Internet
Choisir un navigateur Web pour se rendre sur le Web
  • 01 Le noyau central : le moteur de rendu

    Le « moteur de rendu », c'est ce qui fait comment vous voyez, à l'écran, une page Web, juste la page Web, indépendamment de tout le reste qui s'affiche à l'écran, autour de la page Web visitée (entête, menu, bare de navigation, bare d'outils, panneaux latéraux, bas de la fenêtre, etc.), et relève du navigateur Web, pas du « moteur de rendu » (le navigateur Web peut demander au « moteur de rendu » d'afficher certains objets graphiques qui n'appartiennent pas à la page Web, comme les ascenseurs, les barres d'outils et les menus). Le « moteur de rendu » :

    • Interprète et affiche plus ou moins bien le code HTML selon les standards du W3C (y compris les formulaires et la prise en charge de l'interaction avec l'internaute)

    • En respectant plus ou moins bien les styles et formats décripts dans les feuilles de style en cascade (CSS) selon les standards du W3C

    • En interprétant plus ou moins bien, et plus ou moins rapidement, les codes Javascript (les scripts) de la page Web (il y a divers « moteurs javascript » (« interpréteur javascript ») dans les navigateurs Web dont les tests comparatifs de vitesse font l'objet de combats homériques : SpiderMonkey, TraceMonkey, JägerMonkey, IonMonkey, V8, JavaScriptCore, Chakra, Rhino, Tamarin, Carakan, Futhark, etc.

    • Avec un comportement dit « à tolérance de panne » (« fault tolerant ») qui passe son temps à tenter de rendre visible et cohérente une page bourée de fautes de syntaxe HTML et CSS, comportement hautement et admirablement abracadabrantesque (une véritable gymnastique les pieds au mur) qui fait des merveilles, mais permet aussi beaucoup de laxisme de la part des webmasteurs.

    Il existe désormais (normalisation forte) très peu de « moteur de rendu » (Quantum, Webkit, Blink, Gecko et c'est presque tout). Ils sont tous open source (sauf Khtml et Trident, tous deux en voie de disparition).

    Les critères de choix vont donc être :

    • Respect des standards du W3C

    • Vitesse

    Aucun souci du côté des « moteurs de rendu » en termes de sécurité et de protection ou violation de la vie privée - Les « moteurs de rendu » n'interviennent absolument pas dans ce domaine et ne communiquent pas avec l'ordinateur (sauf les routines appelant les APIs du processeur graphiques et les requêtes en ressources matérielles).

    ATTENTION : LE MOTEUR DE RENDU N'EST PAS LE NAVIGATEUR WEB.

    Qui utilise quoi ? Quels navigateurs Web (et autres applications) utilisent Webkit ou Gecko ou Quantum ou Blink ?

    • Gecko puis Quantum :
      Un des objectifs de Gecko a été, dès le départ, le strict respect des standards du web et des recommandations du W3C. Les standards reconnus par Gecko sont notamment HTTP, HTTPS, FTP, FTPS, SSL, Unicode, JPEG, GIF, HTML, XHTML, XML, CSS, Javascript, ECMAScript, DOM, MathML, RDF, XSLT, SVG, PNG, RSS, Atom, Ajax et XUL. Gecko est remplacé par Quantum dans Firefox (mais continue d'exister dans des dizaines de navigateurs Web dérivés de Firefox.

    • Trident :
      L'un des objectifs de Microsoft, avec Trident, est de ne respecter aucun standard si ce ne sont pas des « standards » de Microsoft. A ce petit jeu, façe au W3C et face à tous les autres « moteurs de rendu », Microsoft a perdu.

    Moteurs de rendu

    #

    Gecko

    Fondation Mozilla

    Webkit

    Apple-Nokia

    Dérivé de KHTML du projet Unix KDE

    WebCore

    Apple

    Dérivé de KHTML du projet Unix KDE

    Blink

    Google

    Dérivé de Webkit

    Trident

    Microsoft

    EdgeHTML

    Microsoft

    Un fork de Trident

    Quantum

    Fondation Mozilla

    FirefoxKonquerorEpiphanyGoogle ChromeInternet Explorer (toutes les versions, depuis la version 4.0 à 11.0)Edge (jusqu'au passage à Blink annoncé le 8 déc 2018Firefox à partir de la version 57 le 14 novembre 2017
    ThunderbirdABrowseFlock (depuis version 3)ChromiumNetscape (dans la version 8)
    SeaMonkeyGtkHTML du projet GNOMEiCab (depuis version 4)Opera depuis sa version 15Maxthon (peut utiliser Gecko à la place de Trident)
    ServoNetFront (microbrowser pour petits appareils)iWebVivaldiAvant Browser
    CaminoOmniWebEdge (annonce du 8 déc 2018)AOL Explorer
    Flock (avant la version 3)RapidWeaverYahoo! Explorer
    Beonex CommunicatorSafariiRider
    Netscape (depuis la version 6)ShiiraGoogle Talk
    K-MeleonSunriseBrowserImpulse
    GaleonSwift
    KazehakaseMidori
    Pale Moon (moteur Goanna, basé sur Gecko)Origyn Web Browser
    CyberfoxSputnik
    WaterfoxNaveo
    NvuProtom Navigator
    Kompozer
    BlueGriffon
    Songbird
    Lunascape
    SmartNet Browser
    Epiphany
    Fennec
    Symphony OS (une distribution de Linux)
    Maxthon (peut utiliser Gecko à la place de Trident)

  • 02 Le navigateur Web proprement dit

    C'est lui qui permet de cliquer sur un lien pour y aller, d'aller à la page précédente/suivante, de précharger les contenus pointés dans la page Web (c'est une mauvaise bonne idée, ça) pour y accéder plus rapidement si on clique sur l'un de ces liens, de demander le rafraîchissement de la page, de gérer les paramètres et options, de gérer les certificats, de gérer les marque-pages et, surtout, toutes les fonctions et activités cachées, secrètes, avec interdiction d'ingénierie inverse du code lorsque celui-ci n'est pas open source.

    • Code open source : tout le monde peut voir ce qu'il y a dedans, ce qu'il fait et ne fait pas (il ne cache rien). Il n'y en a qu'un : Firefox.

    • Code fermé, propriétaire, secret, et personne ne sait ce qu'il y a dedans, ni ce qu'il fait, ni comment il le fait (filtrage du Web servant au suivi, suivi, pistage, espionnage, tracking, clickstream, suivi des déplacements du pointeur de la souris même sans action (sans clic) de l'utilisateur, géolocalisation, horodatage, mots clé, page précédente, page suivante, préalable au chiffrement HTTPS, exploitation de la caméra, exploitation du micro, contournement du hosts local, collectes de données privées, etc.). Sauf Firefox, ils sont tous à code fermé, dont Google Chrome et Yandex.

  • 03 Les add-on (modules additionnels)

    Choisis et installés par l'utilisateur, certains add-on sont de confiance, comme ceux développés par la Fondation Mozilla elle-même ou l'EFF (Privacy Badger, HTTPS Everywhere...), NoScript, Ghostery, Decentraleyes, AdBlock Plus, d'autres sont extrêmement suspects, voire de véritables attaques et virus.


Chronologie des navigateurs Web
Chronologie des navigateurs Web (un travail d'ADeveria en licence CC BY-SA 3.0)
Choisir un navigateur Web - Chronologie des navigateurs Web # # # # # # # # # # # # # # # # # # # # # # # # # # #
Dossier (collection) : Navigateurs Web

06.08.1991 : WorldWideWeb (n'existe plus)
06.08.1991 : Nexus (n'existe plus)
09.03.1992 : Viola (n'existe plus)
15.04.1992 : Erwise (n'existe plus)
25.07.1992 : tkWWW (n'existe plus)
16.11.1992 : Midas (n'existe plus)
23.01.1993 : NCSA Mosaic (n'existe plus)
??.??.1993 : Harmony (navigateur Web) (n'existe plus)
08.06.1993 : Cello (n'existe plus)
01.08.1994 : Spyglass Mosaic (n'existe plus)
15.12.1994 : Netscape navigator (n'existe plus)
01.09.1994 : InternetWorks (n'existe plus)
10.04.1995 : Opera
16.08.1995 : Internet Explorer - histoire initiale
16.08.1995 : Internet Explorer
14.10.1996 : Konqueror
21.08.2000 : K-Meleon
??.??.2000 : Maxthon
23.09.2002 : Firefox
01.11.2002 : Ghostzilla (n'existe plus)
07.01.2003 : Safari (Apple)
11.04.2005 : Flock (n'existe plus)
02.09.2008 : Chromium
11.12.2008 : Google Chrome
04.10.2009 : Pale Moon
01.10.2012 : Yandex Browser
29.04.2015 : Edge
06.04.2016 : Vivaldi
13.11.2019 : Brave


Dossier (collection) : Plugins et extensions

Plug-ins et extensions
Différences entre plug-ins et extensions

Extensions
Extension
Module additionnel (synonyme d'extension)
Module complémentaire (synonyme d'extension)
Module d'extension (synonyme d'extension)
Module externe (synonyme d'extension)
Application extérieure servant à personnaliser (synonyme d'extension)
Addin (synonyme d'extension)
Add-in (synonyme d'extension)
Additif (synonyme d'extension)
Addon (synonyme d'extension)
Add-on (synonyme d'extension)

Plug-in
Plug-in
Plugin (synonyme de plug-in)
Plug in (synonyme de plug-in)
Plugiciel (synonyme de plug-in)
Greffon (synonyme de plug-in)
Composant logiciel enfichable (synonyme de plug-in)
Mise à jour de tous les plugins dans tous les navigateurs d'un seul clic
HTML5 et abandon de la notion de plug-in fin 2016

Techniques d'accueil des plug-ins dans les navigateurs Web
NPAPI (mécanisme d'accueil des plug-ins dans les navigateurs)
PPAPI (mécanisme d'accueil des plug-ins dans les navigateurs)
Navigateurs Web
Navigateurs Androïd

Quelques exemples de plug-ins
Plug-in Adobe Flash Player (Shockwave)
Plug-in Java
Plug-in Silverlight
Plug-in Acrobat (.pdf)

Techniques de remplacement des plug-ins à partir du 1er janvier 2017
WHATWG Web Hypertext Application Technology Working Group
HTML5
API (Application Programming Interface)

Mise à jour de tous les plug-ins, pour tous les navigateurs
Mise à jour de tous les plug-ins dans tous les navigateurs
Mise à jour des plug-ins dans Google Chrome
Mise à jour des plug-ins dans Internet Explorer
Mise à jour des plug-ins dans Opera
Mise à jour des plug-ins dans Safari
Mise à jour des plug-ins dans Firefox