헤드리스 브라우저
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
헤드리스 브라우저는 사용자 인터페이스 없이 실행되는 웹 브라우저로, 웹 페이지의 스크린샷 캡처, 웹 애플리케이션 테스트 자동화, 웹 페이지 상호 작용 자동화, 자바스크립트 라이브러리 자동화 테스트 등에 사용된다. 주요 브라우저는 API를 통해 헤드리스 모드를 지원하며, 셀레늄 WebDriver, Playwright, Puppeteer 등의 라이브러리를 통해 브라우저 자동화를 수행할 수 있다. 또한, Deno, jsdom, HtmlUnit과 같은 대안적인 접근 방식도 존재한다.
더 읽어볼만한 페이지
헤드리스 브라우저 |
---|
2. 사용 사례
헤드리스 브라우저는 명령줄이나 네트워크 통신을 통해 실행되지만, 일반적인 웹 브라우저와 유사한 환경에서 자동 제어 기능을 제공한다. 텍스트 브라우저와는 달리 HTML을 해석하고 렌더링할 수 있어 웹 페이지 테스트에 특히 유용하다.
크롬 (버전 59 이후[30][31])과 Firefox (버전 56 이후[32])는 브라우저 원격 제어를 기본적으로 지원한다. 이로 인해 PhantomJS와 같은 이전의 시도는 쇠퇴하였다.[33]
2. 1. 웹 애플리케이션 테스트 자동화
헤드리스 브라우저는 최신 웹 애플리케이션의 기능 및 호환성을 자동으로 테스트하는 데 사용된다. 여기에는 다음이 포함된다.- 웹 페이지의 스크린샷 캡처
- 자바스크립트 라이브러리에 대한 자동화된 테스트 실행
- 웹 페이지 상호 작용 자동화
2. 2. 웹 페이지 스크린샷 캡처
헤드리스 브라우저는 웹 페이지의 특정 부분 또는 전체를 이미지로 저장하는 데 사용된다.2. 3. 자바스크립트 라이브러리 자동화 테스트
헤드리스 브라우저는 자바스크립트 라이브러리의 동작을 자동으로 검증하는 데 사용된다.2. 4. 웹 페이지 상호 작용 자동화
헤드리스 브라우저는 사용자가 웹 페이지를 조작(클릭, 입력 등)하는 것을 자동화하여 특정 작업을 수행하는 데 사용된다.2. 5. 기타 사용 사례
헤드리스 브라우저는 웹 스크래핑에 유용하게 사용된다. 구글은 2009년에 헤드리스 브라우저를 사용하여 자바스크립트(Ajax)를 사용하는 웹사이트의 콘텐츠를 자사 검색 엔진에 색인할 수 있다고 밝혔다.[6]헤드리스 브라우저는 또한 다양한 방식으로 악용되어 왔다.
그러나 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