맨위로가기

헤드리스 브라우저

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

헤드리스 브라우저는 사용자 인터페이스 없이 실행되는 웹 브라우저로, 웹 페이지의 스크린샷 캡처, 웹 애플리케이션 테스트 자동화, 웹 페이지 상호 작용 자동화, 자바스크립트 라이브러리 자동화 테스트 등에 사용된다. 주요 브라우저는 API를 통해 헤드리스 모드를 지원하며, 셀레늄 WebDriver, Playwright, Puppeteer 등의 라이브러리를 통해 브라우저 자동화를 수행할 수 있다. 또한, Deno, jsdom, HtmlUnit과 같은 대안적인 접근 방식도 존재한다.

더 읽어볼만한 페이지

  • 웹 브라우저 - 방문 기록
    방문 기록은 사용자가 방문한 웹 페이지 정보를 저장하여 이전 페이지 접근성을 높이고, 타겟 광고 등에 활용되지만, 개인 정보 침해와 같은 프라이버시 문제를 야기할 수 있다.
  • 웹 브라우저 - NPAPI
    NPAPI는 웹 브라우저 플러그인이 브라우저와 상호 작용하는 인터페이스였으나, 새로운 웹 표준 등장, API 노후화, 보안 문제로 쇠퇴하여 주요 브라우저들이 지원을 중단했고, 대한민국에서는 액티브X 대안으로 고려되다 HTML5 전환으로 과도기적인 기술로 사용되었다.
헤드리스 브라우저

2. 사용 사례

헤드리스 브라우저는 명령줄이나 네트워크 통신을 통해 실행되지만, 일반적인 웹 브라우저와 유사한 환경에서 자동 제어 기능을 제공한다. 텍스트 브라우저와는 달리 HTML을 해석하고 렌더링할 수 있어 웹 페이지 테스트에 특히 유용하다.

크롬 (버전 59 이후[30][31])과 Firefox (버전 56 이후[32])는 브라우저 원격 제어를 기본적으로 지원한다. 이로 인해 PhantomJS와 같은 이전의 시도는 쇠퇴하였다.[33]

2. 1. 웹 애플리케이션 테스트 자동화

헤드리스 브라우저는 최신 웹 애플리케이션의 기능 및 호환성을 자동으로 테스트하는 데 사용된다. 여기에는 다음이 포함된다.

  • 웹 페이지의 스크린샷 캡처
  • 자바스크립트 라이브러리에 대한 자동화된 테스트 실행
  • 웹 페이지 상호 작용 자동화

2. 2. 웹 페이지 스크린샷 캡처

헤드리스 브라우저는 웹 페이지의 특정 부분 또는 전체를 이미지로 저장하는 데 사용된다.

2. 3. 자바스크립트 라이브러리 자동화 테스트

헤드리스 브라우저는 자바스크립트 라이브러리의 동작을 자동으로 검증하는 데 사용된다.

2. 4. 웹 페이지 상호 작용 자동화

헤드리스 브라우저는 사용자가 웹 페이지를 조작(클릭, 입력 등)하는 것을 자동화하여 특정 작업을 수행하는 데 사용된다.

2. 5. 기타 사용 사례

헤드리스 브라우저는 웹 스크래핑에 유용하게 사용된다. 구글은 2009년에 헤드리스 브라우저를 사용하여 자바스크립트(Ajax)를 사용하는 웹사이트의 콘텐츠를 자사 검색 엔진에 색인할 수 있다고 밝혔다.[6]

헤드리스 브라우저는 또한 다양한 방식으로 악용되어 왔다.

  • 웹 사이트에 대한 디도스(DDoS) 공격 수행[7]
  • 광고 노출 증가[8]
  • 자격 증명 스터핑 등 의도하지 않은 방식으로 웹사이트 자동화[9][10]


그러나 2018년 브라우저 트래픽 연구에 따르면 악의적인 행위자가 헤드리스 브라우저를 선호하는 경향은 없는 것으로 나타났다.[11] 헤드리스 브라우저가 디도스 공격, SQL 주입 또는 크로스 사이트 스크립팅 공격과 같은 악의적인 목적으로 비 헤드리스 브라우저보다 더 자주 사용된다는 징후는 없다.

3. 사용법

여러 주요 브라우저들이 API를 통해 헤드리스 모드를 기본적으로 지원하며, 브라우저 자동화를 위한 다양한 소프트웨어 및 라이브러리가 존재한다. 크롬은 버전 59 이후[30][31], Firefox는 버전 56 이후[32]부터 브라우저 원격 제어를 기본적으로 지원하여, PhantomJS와 같은 이전의 시도는 쇠퇴하였다[33].

헤드리스 브라우저는 명령줄이나 네트워크 통신을 통해 실행되지만, 일반적인 웹 브라우저와 유사한 환경에서 자동 제어 기능을 제공한다. 일반 브라우저와 마찬가지로 HTML을 해석하고 렌더링할 수 있기 때문에, 웹 페이지 테스트에 특히 유용하다. 텍스트 브라우저와는 다르다.

헤드리스 브라우저는 다음과 같은 경우에 사용될 수 있다.


  • 현대적인 웹 애플리케이션에서의 테스트 자동화.
  • 웹 페이지의 스크린샷 캡처.
  • JavaScript 라이브러리의 자동 테스트 실행.
  • 웹 페이지 조작 자동화.
  • 웹 스크레이핑.

3. 1. 브라우저 자동화 도구 및 라이브러리


  • 셀레늄 웹드라이버는 W3C 표준을 준수하는 웹 브라우저 자동화 도구이다.[12]
  • Playwright는 크로미엄, 파이어폭스, 웹킷 등 여러 브라우저를 자동화할 수 있는 Node.js 라이브러리이다.[13]
  • Puppeteer는 크롬 브라우저 자동화를 위한 Node.js 라이브러리이다.[14]

3. 2. 테스트 자동화 프레임워크

카피바라는 WebKit 또는 Headless Chrome을 통해 헤드리스 브라우징을 사용하여 테스트 프로토콜에서 사용자 동작을 모방한다.[15]

자스민은 기본적으로 Selenium을 사용하지만, 브라우저 테스트를 실행하기 위해 WebKit 또는 Headless Chrome을 사용할 수 있다.[16]

Cypress는 프론트엔드 테스트 프레임워크이다.

QF-Test는 헤드리스 브라우저를 테스트에 사용할 수 있는 GUI를 통해 프로그램의 자동화된 테스트를 위한 소프트웨어 도구이다.

3. 3. 기타 대안

Deno는 설계의 일부로 브라우저 API를 제공한다. Node.js 환경에서는 jsdom[17]이 가장 완벽한 브라우저 API 제공자이다. jsdom은 대부분의 경우 HTML 파싱, 쿠키, XHR, 일부 JavaScript 등 공통 브라우저 기능을 지원할 수 있지만, DOM을 렌더링하지 않으며 DOM 이벤트에 대한 지원이 제한적이다. 일반적으로 jsdom은 전체 브라우저보다 빠르게 작동하지만, 많은 인기 웹사이트를 올바르게 해석할 수 없다.[18][19][20]

HtmlUnit은 Java로 작성된 헤드리스 브라우저이다. HtmlUnit은 Rhino 엔진을 사용하여 JavaScript 및 Ajax 지원은 물론 부분적인 렌더링 기능을 제공한다.[21][22]

4. 헤드리스 브라우저 목록


  • 스플래시는 파이썬으로 작성된 헤드리스 웹 브라우저로, Qt를 통해 WebKit 레이아웃 엔진을 사용한다. HTTP API, Lua 스크립트 지원 및 내장 IPython (Jupyter) 기반 IDE를 갖추고 있다. 개발은 2013년 ScrapingHub에서 시작되었으며, DARPA에서 부분적으로 자금을 지원한다.[23][24]
  • Zombie.js는 Node.js를 위한 시뮬레이션된 브라우저 환경이다.[25]
  • SimpleBrowser는 .NET Standard 2.0을 지원하는 C#으로 작성된 헤드리스 웹 브라우저이다.[26]
  • DotNetBrowser는 독점적인 .NET 크로미움 기반 라이브러리로 오프 스크린 렌더링 모드를 제공하며, 창을 임베딩하거나 표시하지 않고 사용할 수 있다.[27][28]

5. 과거의 시도

크롬 버전 59 이후[30][31], Firefox 버전 56 이후[32]에는 브라우저의 원격 제어가 기본적으로 지원되기 시작했다. 이로 인해 PhantomJS와 같은 이전의 시도는 쇠퇴하여 사용되지 않게 되었다[33].

참조

[1] 웹사이트 What is a headless browser? http://blog.arhg.net[...] 2009-10-07
[2] 웹사이트 Getting Started with Headless Chrome https://developers.g[...] 2017-04-27
[3] 웹사이트 Firefox 56 release notes https://developer.mo[...] 2023-02-26
[4] 웹사이트 Headless mode - browser support https://developer.mo[...] 2017-08-31
[5] 웹사이트 Quick Start http://phantomjs.org[...]
[6] 웹사이트 Official Google Webmaster Central Blog: A proposal for making AJAX crawlable http://googlewebmast[...] 2009-10-07
[7] 웹사이트 Headless Browser Botnet Used in 150 hour DDoS attack http://www.business2[...] 2013-11-20
[8] 웹사이트 Headless Web Traffic Threatens Internet Economy http://www.ecommerce[...] 2014-03-25
[9] 웹사이트 Headless browsers: legitimate software that enables attack http://www.itproport[...] 2014-04-01
[10] 웹사이트 Credential stuffing https://www.owasp.or[...]
[11] 웹사이트 Headless Chrome: DevOps Love It, So Do Hackers, Here's Why {{!}} Imperva https://www.imperva.[...] 2021-02-22
[12] 웹사이트 Selenium 4 Is Now W3C Compliant: All You Need To Know https://www.lambdate[...] 2020-11-17
[13] 웹사이트 GitHub - Playwright https://github.com/m[...] 2021-04-11
[14] 웹사이트 Github - Puppeteer https://github.com/p[...] 2021-04-11
[15] 웹사이트 From capybara-webkit to Headless Chrome and ChromeDriver https://www.imaginar[...] 2021-02-22
[16] 웹사이트 jasmine-headless-webkit -- The fastest way to run your Jasmine specs! https://johnbintz.gi[...] 2021-02-22
[17] 웹사이트 JSDOM at GitHub - Pretending to be a visual browser https://github.com/j[...] 2021-04-18
[18] 웹사이트 assaf/zombie https://github.com/a[...]
[19] 웹사이트 ヘルペスが口や目からうつる?感染した時の症状と病院の治療方法とは http://www.envjs.com[...] 2015-03-13
[20] 웹사이트 JavaScriptMVC - EnvJS http://www.javascrip[...] 2015-03-13
[21] 웹사이트 HtmlUnit – Welcome to HtmlUnit http://htmlunit.sour[...]
[22] 웹사이트 Platform (Vaadin 7.3.4 API) http://vaadin.com/do[...] 2014-11-06
[23] 웹사이트 scrapinghub/splash https://github.com/s[...] 2021-12-20
[24] 웹사이트 DARPA - Open Catalog http://www.darpa.mil[...] 2015-05-28
[25] 웹사이트 Zombie http://zombie.labnot[...]
[26] 간행물 SimpleBrowserDotNet/SimpleBrowser https://github.com/S[...] SimpleBrowserDotNet 2021-02-22
[27] 간행물 DotNetBrowser Examples https://github.com/T[...] TeamDev 2021-03-12
[28] 웹사이트 DotNetBrowser https://www.teamdev.[...] TeamDev 2021-05-05
[29] 웹사이트 env-js: A pure-JavaScript browser environment https://github.com/j[...] 2008-10-12
[30] 웹사이트 Getting Started with Headless Chrome https://developers.g[...] 2022-07-01
[31] 웹사이트 Headless Chrome: DevOps Love It, So Do Hackers, Here's Why {{!}} Imperva https://www.imperva.[...] 2021-02-22
[32] 웹사이트 Firefox 56 release notes https://developer.mo[...] 2022-07-01
[33] 웹사이트 Quick Start http://phantomjs.org[...] 2022-07-01
[34] 웹인용 What is a headless browser? http://blog.arhg.net[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com