개요

브라우저의 핵심 기능은 사용자가 참조하고자 하는 웹페이지를 서버에 요청(Request)하고 응답(Response)을 받아 브라우저에 표시하는 것이다.

서버의 응답은 주소를 통해 요청하는데, 이 주소를 URI(Uniform Resource Identifier) 라고 한다.

Untitled

브라우저의 구조

Untitled

User Interface - 브라우저의 주소창, 뒤로가기, 버튼 등의 UI.

Browser engine - User Interface와 Rendering Engine 사이의 동작을 제어한다.

Rendering engine - 서버로 부터 응답 받은 내용을 화면에 표시해주는 엔진. HTML/CSS를 파싱하여 결과를 보여준다.

Networking - HTTP 통신과 같은 네트워크 통신에 사용된다. 플랫폼과는 독립적인 인터페이스를 가진다.

JavaScript Interpreter - 자바스크립트를 파싱하고 실행하는 해석기.

UI Backend - 콤보박스와 같은 기본적인 위젯을 그린다.

Data Persistence - 쿠키와 같은 데이터를 저장하는 공간. Local Storage, Indexed DB, 쿠키 등 브라우저의 메모리, 로컬 메모리를 활용한다.

렌더링 엔진 작동 과정

렌더링 엔진은 브라우저별로 차이가 있다. 파이어폭스는 Mozilla에서 직접 개발한 게코(Gecko) 엔진을 사용한다. 사파리, 크롬은 Apple이 오픈소스로 개발한 웹킷(Webkit) 엔진을 사용한다. (크롬은 28 버전부터 Webkit을 기반으로 한 블링크(Blink) 엔진을 사용한다.) 💡 웹킷과 게코의 동작 과정을 보면 약간의 용어 차이가 있으나 기본적인 동작 과정은 동일하다.

Untitled