Navigateur headless

Cet article est une ébauche concernant Internet.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Un navigateur headless (anglais : headless browser, littéralement « navigateur sans tête »), est un navigateur web sans interface graphique.

Les navigateurs sans tête permettent d'automatiser les contrôles d'une page web dans un environnement similaire à certains navigateurs populaires sur le marché en ligne de commande. Ils sont particulièrement utiles pour les tests de pages web car ils interprètent correctement l'HTML, les feuilles de styles et l’exécution du JavaScript avec de l'AJAX ; fonctions qui ne sont pas toujours disponibles lors des tests[1],[2]. En 2009, Google a commencé à utiliser des navigateurs sans tête pour aider son moteur de recherche à effectuer l'indexation des sites utilisant de l'AJAX[3].

Cas d'utilisation des navigateurs sans tête

Les navigateurs sans tête peuvent être utilisés pour[4],[5]:

  • Automatiser des tests sur des applications web.
  • Effectuer des captures d'écrans sur des pages web.
  • Lancer des tests automatisés pour des bibliothèques JavaScript.
  • Faire du Web scraping pour récupérer des données.
  • Automatiser des interactions avec un site web.

Cas d'utilisation malveillant

Les navigateurs sans tête peuvent également être utilisés pour :

  • Effectuer des attaques DDOS contre des sites web[6].
  • Augmenter le nombre de vues (pub par exemple) [7].
  • Rechercher automatiquement des sites afin de les utiliser de manière frauduleuse[8], par exemple pour la recherche d'identifiants confidentiels.

Liste de navigateurs sans tête

Voici une liste de navigateurs proposant des fonctions headless :

PhantomJS
un navigateur sans tête utilisant le moteur de rendu WebKit pour le rendu de ses pages et JavaScriptCore pour l'exécution du javascript. PhantomJS était initialement développé par Ariya Hidayate en 2010[9],[10],[11],[12],[13].
HtmlUnit
un navigateur sans tête écrit en Java. HtmlUnit utilise Rhino pour le JavaScript[14],[15].
TrifleJS
Une version du navigateur Internet Explorer scriptable utilisant le moteur de rendu Trident et le moteur JavaScript V8. TrifleJS utilise la même API que PhantomJS et fonctionne en utilisant l'objet WebBrowser du framework .NET WebBrowser pour contrôler la version d'IE installée sur la machine[5],[16].
Splash 
un navigateur sans tête avec une API HTTP, du scripting en Lua et un IDE IPython(Jupyter). Splash est écrit en Python et utilise le moteur de rendu WebKit.
Weboob 
une bibliothèque Python.

Navigateur sans tête émulé

Ces navigateurs émulent l'environnement d'un navigateur. Alors qu'ils sont en mesure de soutenir des fonctions de navigation communes (parsing HTML, support des cookies, XHR, javascript…), ils ne peuvent pas effectuer de rendu et ont un support limité des événements DOM. Ils s'exécutent généralement plus rapidement qu'un navigateur classique, mais sont incapables d'interpréter correctement de nombreux sites[17],[18],[19].

  • Zombie.js. un environnement de navigation destiné à Node.js[20],[21].
  • ENVJS. un environnement de navigation écrit en JavaScript pour le moteur Rhino[22].

Navigateurs scriptables

Voici une liste de navigateurs qui nécessitent encore une interface utilisateur mais ayant des API et qui sont destinés à être utilisés de manière similaire aux navigateurs sans tête.

  • SlimerJS : un navigateur scriptable utilisant le moteur de rendu de Mozilla Gecko (moteur de rendu). SlimerJS utilise le même langage que PhantomJS[23].

Voir aussi

Références

  1. "What is a headless browser?". arhg.net.
  2. "Quick Start". phantomjs.org.
  3. "Official Google Webmaster Central Blog: A proposal for making AJAX crawlable".
  4. (en) « PhantomJS - Scriptable Headless Browser », sur phantomjs.org (consulté le ).
  5. a et b « triflejs.org »
  6. « Headless Browser Botnet Used in 150 hour DDoS attack », sur Business 2 Community (consulté le ).
  7. (en) « Headless Web Traffic Threatens Internet Economy », sur E-Commerce Times, (consulté le ).
  8. (en) « Headless browsers: legitimate software that enables attack | ITProPortal.com » (consulté le )
  9. "PhantomJS - PhantomJS". phantomjs.org.
  10. "FAQ". phantomjs.org.
  11. "Google Groups". google.com.
  12. "Commits · ariya/phantomjs · GitHub".
  13. "ariya/phantomjs".
  14. Mike Bowler.
  15. "Platform (Vaadin 7.3.4 API)". vaadin.com. 6 November 2014.
  16. (en) « Home », GitHub
  17. "assaf/zombie".
  18. (en) « Envjs.com -&nbspCe site web est à vendre ! -&nbspRessources et information concernant envjs Resources and Information. », sur envjs.com (consulté le ).
  19. "JavaScriptMVC - EnvJS". javascriptmvc.com.
  20. (en) « Zombie », labnotes.org
  21. "Zombie". labnotes.org.
  22. (en) « Envjs.com -&nbspCe site web est à vendre ! -&nbspRessources et information concernant envjs Resources and Information. », sur envjs.com (consulté le ).
  23. Laurent Jouanneau.


  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Headless browser » (voir la liste des auteurs).
v · m
Fonctionnalités, Standards, Protocoles
Fonctionnalités
Standards
Protocoles
Actifs
Gecko
WebKit
Blink
Presto
Trident
  • Sleipnir
Mode texte
Sans tête
Autres
Obsolètes
Gecko
WebKit
Trident
Autres
  • icône décorative Portail d’Internet