브라우저 아키텍처
우리가 웹을 손쉽게 접속하고 사용할 수 있도록 도와주는 브라우저의 아키텍처에 대해 간략히 정리해보려 한다.
유저 인터페이스
사용자가 브라우저를 통해 상호 작용할 수 있도록 돕는 부분, 북마크, 뒤로가기, 주소창 등의 영역을 가르킨다.
브라우저 엔진
유저 인터페이스와 랜더링 엔진 사이에서 랜더링 상태를 조회하고 랜더링 작업을 제어하기 위한 인터페이스를 제공
렌더링 엔진
HTML, CSS를 분석하여 웹 컨텐츠를 브라우저 창에 그리는 역할
Webkit(사파라), Gecko(파이어폭스), Blink(크롬) …
네트워킹
네트워크를 통해 HTTP 요청을 보내고 응답받는 역할
브라우저별 6~10개 스레드로 동시에 연결을 생성하여 다운로드 할 수 있다.
UI백엔드
콤보박스, 드롭박스 등 브라우저별 기본적인 UI 컴포넌트들을 제공한다.
자바스크립트 해석기
엔진을 통한 자바스크립트 분석 및 해석
V8, Spider Monkey …
데이터 저장소
쿠키, 스토리지, 인덱스 DB 등 데이터 저장소