이때 읽은 3개의 요소를 이용하여 하나의 웹페이지를 구성하고 보여주기 위해서 브라우저에서는 다음의 과정을 거친다.
User Interface
- 주소 표시줄, 뒤로/다음/새로고침 버튼 등 웹페이지를 제외하고 사용자와 상호작용하는 사용자 인터페이스
Rendering Engine
- HTML과 CSS를 파싱하여 요청한 웹 페이지를 표시하는 렌더링 엔진
- 사파리: Webkit, 파이어폭스: Gecko, 크롬: Blink
Browser Engine
- 유저 인터페이스와 렌더링 엔진을 연결하는 브라우저 엔진
Netowrking
- 네트워크 요청을 수행하는 파트
UI Backend
- 체크박스나 버튼과 같은 기본적인 웨젯을 그려주는 파트
Javascript Interpreter
- 자바스크립트 코드를 실행하는 파트 (크롬: V8)
Data Persistence
- LocalStorage,Cookie와 같이 보조기억장치에 데이터를 저장하는 파트
Rendering Engine
임무
HTML,CSS,JS, 이미지등 웹 페이지에 포함된 모든 요소들을 화면에 보여준다
업데이트가 필요할 때, 효율적으로 렌더링을 할 수 있도록 트리를 생성한다
렌더링엔진의 동작과정(Critical Rendering Path)
1. DOM /CSSDOM Tree 생성
DOM Tree를 생성하기 위한 과정은 다음과 같다.
토큰화 : HTML의 tag를 토큰으로 생성
렉싱 : 토큰을 해당 속성과 규칙을 정의하는 노드객체로 변환
DOM Tree생성: 각 노드가 서로 연관성을 가질 수 있도록 트리를 생성
<!DOCTYPE html><html><head></head><body><!-- Comment --><h1> h1 tag </h1><span> span tag </span><div><imagealt="이미지"src="asdf.jpg"/></div></body></html>