주소 표시줄, 이전/다음 버튼, 북마크 메뉴 등 요청한 페이지를 보여주는 창을 제외한 나머지 모든 부분
사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어
요청한 콘텐츠를 화면에 표시 (HTML 요청 -> HTML과 CSS 파싱 -> 화면에 표시)
자바스크립트 코드 해석 및 실행
쿠키를 저장하는 것과 같이 모든 종류의 자원을 하드 디스크에 저장
브라우저가 HTML의 원시 바이트를 읽어와 HTML에 정의된 인코딩(UTF-8 등)에 따라 개별 문자로 변환
문자열을 W3C 표준에 지정된 고유 토큰으로 변환 (토큰화)
방출된 토큰은 해당 속성 및 규칙을 정의하는 객체로 변환 (렉싱)
HTML 마크업에 정의된 여러 태그 간의 관계를 해석 => 트리 구조로 연결 (DOM 생성)
DOM 트리 생성 과정과 동일한 과정으로 CSSOM 트리 생성
사용자가 웹 페이지에 처음 접속을 하면, 렌더링 과정을 거쳐서 화면에 모든 요소가 그려지게 된다.
이후에 사용자는 다양한 액션을 수행하게 되고, 여기서 발생되는 이벤트로 인해서 새로운 HTML 요소가 추가되거나, 기존 요소의 스타일이 바뀌거나 하는 변경이 일어나게 된다.
이런 변경을 통해 영향을 받게되는 모든 노드에 대해서 렌더링 트리 생성과 레이아웃 과정을 다시 수행하게 되는 것을 리플로우라고 한다.
그리고 이 결과를 화면에 그리기 위해 다시 페인팅 단계를 수행해야 하는데, 이 과정을 리페인트라고 한다.
기존 요소에 변경 사항이 생겼다고 해서 항상 리플로우 - 리페인트가 일어나는 건 아니다.
레이아웃에 영향이 미치지 않는 단순한 색상 변경 같은 변경사항은 리페인트만 수행하게 된다.
(리플로우가 일어나면 반드시 리페인트가 일어남)