Un navegador sense capçalera és un navegador web sense interfície gràfica d'usuari.
Els navegadors sense capçalera proporcionen un control automatitzat d'una pàgina web en un entorn similar als navegadors web populars, però s'executen mitjançant una interfície de línia d'ordres o mitjançant la comunicació de xarxa. Són particularment útils per provar pàgines web, ja que són capaços de renderitzar i entendre HTML de la mateixa manera que ho faria un navegador, incloent-hi elements d'estil com ara el disseny de la pàgina, el color, la selecció de fonts i l'execució de JavaScript i Ajax, que normalment no estan disponibles quan s'utilitzen altres mètodes de prova.
Des de la versió 59 de Google Chrome i la versió 56 de Firefox hi ha suport natiu per al control remot del navegador. Això va fer que els esforços anteriors fossin obsolets, en particular PhantomJS.
Casos d'ús Els principals casos d'ús dels navegadors sense cap són:
Automatització de proves en aplicacions web modernes (proves web) Fer captures de pantalla de pàgines web. Execució de proves automatitzades per a biblioteques de JavaScript. Autom
Ús Com que diversos navegadors importants admeten de manera nativa el mode sense cap a través d'API, existeix algun programari per realitzar l'automatització del navegador a través d'una interfície unificada. Aquests inclouen:
Selenium WebDriver: una implementació de WebDriver compatible amb el W3C Playwright: una biblioteca Node.js per automatitzar Chromium, Firefox i WebKit Puppeteer: una biblioteca Node.js per automatitzar Chrome
Automatització de proves Alguns programaris i frameworks d'automatització de proves inclouen navegadors sense capçalera com a part dels seus aparells de proves.
Capybara utilitza la navegació sense cap, ja sigui mitjançant WebKit o Headless Chrome per imitar el comportament de l'usuari en els seus protocols de prova. Jasmine utilitza Selenium per defecte, però pot utilitzar WebKit o Headless Chrome per executar proves del navegador. Cypress, un marc de treball per a proves frontend QF-Test, una eina de programari per a proves automatitzades de programes a través de la interfície gràfica d'usuari on també es pot utilitzar un navegador sense capçalera per a les proves.
Alternatives Un altre enfocament és utilitzar programari que proporciona API de navegador. Per exemple, Deno proporciona API de navegador com a part del seu disseny. Per a Node.js, jsdom és el proveïdor més complet. Tot i que la majoria poden admetre funcions comunes del navegador (anàlisi HTML, galetes, XHR, alguns JavaScript, etc.), no renderitzen el DOM i tenen una compatibilitat limitada amb els esdeveniments DOM. Normalment funcionen més ràpid que els navegadors complets, però no poden interpretar correctament molts llocs web populars.
Un altre és HtmlUnit, un navegador sense cap escrit en Java. HtmlUnit utilitza el motor Rhino per proporcionar compatibilitat amb JavaScript i Ajax, així com capacitat de renderització parcial.
Altres usos Els navegadors sense cap també són útils per a l'extracció de dades web. Google va declarar el 2009 que l'ús d'un navegador sense cap podria ajudar el seu motor de cerca a indexar el contingut de llocs web que utilitzen Ajax.
Els navegadors sense cap també s'han utilitzat de manera indeguda de diverses maneres:
Realitzar atacs DDoS a llocs web. Augmenta les impressions d'anuncis. Automatitzar llocs web de maneres no previstes per exemple, per a l'ompliment de credencials.
Tanmateix, un estudi del trànsit dels navegadors realitzat el 2018 no va trobar cap preferència dels actors maliciosos pels navegadors sense capçalera. No hi ha cap indici que els navegadors sense capçalera s'utilitzin amb més freqüència que els navegadors que no en tenen amb finalitats malicioses, com ara atacs DDoS, injeccions SQL o atacs de scripts entre llocs.
Llista de navegadors sense capçalera Aquests són diversos programes que proporcionen API de navegador sense capçalera.
Splash és un navegador web sense capçalera escrit en Python utilitzant el motor de disseny WebKit a través de Qt. Té una API HTTP, compatibilitat amb scripts Lua i un IDE integrat basat en IPython (Jupyter). El desenvolupament va començar a ScrapingHub el 2013; està parcialment finançat per DARPA. Zombie.js és un entorn de navegador simulat per a Node.js. SimpleBrowser és un navegador web sense capçalera escrit en C# compatible amb.NET Standard 2.0 DotNetBrowser és una biblioteca pròpia basada en.NET Chromium que proporciona el mode de renderització fora de pantalla i es pot utilitzar sense incrustar ni mostrar finestres.
Referències
Categoria:Programari Categoria:Navegadors web