Headless browsers là gì?

Headless Browser là một trình duyệt web không có giao diện đồ họa người  dùng. Các headless browser cung cấp tương tác tự động một trang web trong một môi trường giống như các trình duyệt web phổ biến khác, nhưng nó được thực hiện thông qua giao diện dòng lệnh hoặc qua một mạng truyền thông. Chúng đặc biệt hữu ích cho việc kiểm thử các trang web vì chúng có thể hiển thị và hiểu HTML giống như các trình duyệt thông thường, bao gồm các cả styling như bố cục trang, màu sắc, font chữ và thực thi Javascript và AJAX mà thường không có sẵn khi sử dụng các phương pháp kiểm thử khác.

headless-browser

Trường hợp sử dụng Headless Browser

  • Kiểm tra tự động hóa trong các ứng dụng web hiện đại.
  • Chụp ảnh màn hình của các trang web.
  • Chạy các bài kiểm tra tự động cho các thư viện JavaScript.
  • Scrape các trang web cho dữ liệu.
  • Tự động tương tác của các trang web.
  • Google đã tuyên bố trong năm 2009 rằng việc sử dụng một trình duyệt không đầu có thể giúp nội dung trang chỉ mục tìm kiếm của họ từ các trang web sử dụng AJAX.

Một số mục đích sai trái khi sử dụng Headless Browser

  • Thực hiện tấn công DDOS trên các trang web.
  • Tăng hiển thị quảng cáo một cách trái phép.
  • Tự động hóa các trang web theo những cách không mong muốn.

Danh sách các Headless Browser

  • Google Chrome – kể từ phiên bản 59 Chrome hỗ trợ chế độ Headless ở Linux và macOS.
  • Chế độ Firefox – headless có sẵn trên Linux kể từ phiên bản 55. Phiên bản 56 hỗ trợ thêm chế độ headless trong Windows và macOS.
  • PhantomJS – một trình duyệt web Headless Browser sử dụng WebKit để hiển thị các trang web và JavaScriptCore để thực hiện các bài kiểm tra theo kịch bản. PhantomJS ban đầu được phát triển bởi Ariya Hidayat vào năm 2010 và đã có được một hệ sinh thái phát triển rộng khắp.
  • HtmlUnit – một trình duyệt Headless Browser bằng Java. HtmlUnit sử dụng công cụ Rhino để cung cấp hỗ trợ JavaScript và AJAX cũng như khả năng hiển thị một phần.
  • TrifleJS – một trình duyệt Internet Explorer nhưng Headless bằng trình sử dụng engine Trident để hiển thị các trang và công cụ JavaScript V8 để thực hiện script. TrifleJS sử dụng ngôn ngữ API giống như PhantomJS và hoạt động bằng cách sử dụng đối tượng WebBrowser để điều khiển bất kỳ phiên bản nào của IE được cài đặt trên máy.
  • Splash – trình duyệt web Headless Browser với API HTTP, hỗ trợ kịch bản Lua và IDE tích hợp sẵn trong IPython (Jupyter). Splash được viết bằng Python và sử dụng engine WebKit. Phát triển bắt đầu tại ScrapingHub vào năm 2013; nó được một phần tài trợ bởi DARPA.

Tham khảo: wiki

Leave a Reply

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