Apa itu Headless Browser?

Pengertian

Headless browser adalah web browser tanpa antarmuka pengguna grafis. (GUI: Graphic User Interface).

Headless browser menyediakan kontrol otomatis atas halaman web di environment yang mirip dengan browser web populer tetapi dijalankan melalui command-line interface (antarmuka baris perintah) atau menggunakan komunikasi jaringan. 

Mereka sangat berguna untuk menguji halaman web karena mereka dapat merender dan memahami HTML dengan cara yang sama seperti browser.

Termasuk elemen style seperti tata letak halaman, warna, pemilihan font dan eksekusi JavaScript dan AJAX yang biasanya tidak tersedia saat menggunakan yang lain.

Fungsi/Kegunaan

Headless Browser digunakan untuk:

  • Menguji otomatisasi dalam aplikasi web modern.
  • Mengambil screenshot dari halaman web.
  • Menjalankan tes otomatis untuk pustaka JavaScript.
  • Mengikis situs web untuk mendapatkan data.
  • Mengotomatiskan interaksi halaman web.

Google menyatakan pada tahun 2009 bahwa menggunakan Headless browser dapat membantu mesin pencari mereka mengindeks konten dari situs web yang menggunakan AJAX.

Keamanan/Secure

Dari sisi keamanan Headless browser juga berguna untuk:

  • Lakukan serangan DDOS di situs web.
  • Tingkatkan tayangan iklan
  • Otomatiskan situs web dengan cara yang tidak disengaja misalnya untuk pengisian kredensial.

Daftar Headless Browser:

  • Google Chrome – karena versi 59 Chrome mendukung mode headless di Linux, macOS, dan Windows.
  • Firefox – mode headless tersedia di linux sejak versi 55. Versi 56 menambahkan dukungan untuk mode headless di Windows dan macOS. 
  • PhantomJS – browser web headless yang menggunakan mesin layout WebKit untuk merender halaman web dan JavaScriptCore untuk menjalankan tes dengan skrip. PhantomJS awalnya dikembangkan oleh Ariya Hidayat pada tahun 2010 dan telah memperoleh banyak pengikut dan ekosistem pembangunan yang luas. Namun, proyek tersebut telah diarsipkan dan tidak lagi aktif dalam pengembangan.
  • HtmlUnit – browser headless yang ditulis dalam Java. HtmlUnit menggunakan mesin Rhino untuk menyediakan dukungan JavaScript dan AJAX serta kemampuan rendering parsial.
  • TrifleJS – browser tanpa skrip Internet Explorer headless yang menggunakan mesin tata letak Trident untuk merender halaman dan mesin JavaScript V8 untuk menjalankan pengujian dengan skrip. TrifleJS menggunakan bahasa API yang sama dengan PhantomJS dan bekerja dengan menggunakan objek .NET WebBrowser untuk mengontrol versi IE apa pun yang diinstal pada mesin.
  • Splash – browser web headless dengan API HTTP, dukungan skrip Lua , dan IDE berbasis IPython (Jupyter) bawaan. Splash ditulis dengan Python dan menggunakan mesin tata letak WebKit . Pengembangan dimulai di ScrapingHub pada 2013; itu sebagian didanai oleh DARPA.
  • SimpleBrowser – browser web ringan, berkemampuan tinggi, headless dengan API Standar .NET yang dapat ditulis. SimpleBrowser ditulis dalam C #, mendukung .NET Standard 2.0.

Ini adalah browser yang mensimulasikan lingkungan browser. Meskipun mereka dapat mendukung fitur browser umum (penguraian HTML, cookie , XHR , beberapa javascript, dll.),

Simulasi

Mereka tidak merender DOM dan memiliki dukungan terbatas untuk peristiwa DOM . 

Mereka biasanya bekerja lebih cepat daripada browser lengkap, tetapi tidak dapat menafsirkan banyak situs web populer dengan benar.

  • Zombie.js – lingkungan browser simulasi untuk Node.js
  • ENVJS – lingkungan browser simulasi yang ditulis dalam JavaScript untuk mesin Rhino.
  • Edbrowse (dukungan DOM terbatas)

Scriptable

Ini adalah browser yang mungkin masih memerlukan Antarmuka pengguna tetapi memiliki API terprogram dan dimaksudkan untuk digunakan dengan cara yang mirip dengan headless browser tradisional,

Seperti: SlimerJS – browser scriptable menggunakan Mozilla ‘s layout engine Gecko . SlimerJS menggunakan bahasa API yang sama dengan PhantomJS .

Sumber: Wikipedia, Foto: bitsofcode

Leave a Reply

Your email address will not be published. Required fields are marked *