Random Sequence
)를 가지고 간다.3 Way-Handshake
를 완료한 것이다. 이 Handshake 과정이 끝나면 브라우저는 서버에게 자료를 요청한다. 브라우저가 서버에게 HTTP Request
(특정 웹 사이트 주소에 있는 데이터를 요청하는 것)를 하면 서버는 브라우저에게 요청받은 URL에 대한 데이터, HTTP Response
를 반환 한다.Parsing
과정을 거쳐 사용자에게 출력해야 한다. 이때 전송받은 데이터는 보통 8KB 단위로 전송된다. 이 bite형태의 코드(HTML과 CSS 파일)를 문자로 해석하게 되고 토큰과 비교해서 노드를 발행하게 된다. 그리고 이러한 노드들이 모여서 Tree를 이루게 된다. 대부분의 브라우저는 웹 표준화 기구(W3C, World Wide Web Consortium)
의 명세에 따라 데이터(HTML과 CSS)를 해석(parsing)한다.DOM Tree
를 생성한다. 이때 렌더링 엔진이 <script>
태그를 만나면 DOM 생성을 중단하고 JavaScript 엔진에게 제어 권한을 넘기게 되고 JavaScript 엔진은 코드를 해석하여 추상 구문 Tree
인 AST(Abstract Syntax Tree)
를 만들고 실행한다. 이후 중단했던 DOM 생성 작업을 완료한다. 다음은 외부 CSS 파일과 함께 스타일 요소를 parsing하여 CSSOM Tree
를 생성한다. 그리고 DOM Tree와 CSSOM Tree를 합쳐서 Render Tree
를 생성하는데 이 과정까지를 Construction
이라고 한다.Layout
(배치) 작업을 시작한다. Layout은 Render Tree의 노드들을 화면의 올바른 위치에 표시하는 것을 의미한다. 이후 UI Backend
가 Render Tree의 노드들을 돌면서 UI를 그린다.Composition
단계이다. Composition에서는 z-index
가 낮은 요소를 먼저 놓고 그 다음에 높은 요소를 배치하는 작업을 한다. Layout부터 Composition까지의 과정을 Operation
이라고 한다.웹 브라우저
는 DNS
에게 해당 호스트의 IP주소
를 요청.HTTP Request
)하면 서버는 브라우저에게 요청받은 URL에 대한 HTTP Response
를 반환함.HTML Parsing
: 웹 브라우저의 렌더링 엔진은 서버로 부터 받은 HTML 데이터를 해석 → DOM Tree
생성script
태그가 나오면 : DOM Tree 생성 중단 후, 자바스크립트 엔진에서 JS해석하여 AST
(Abstract Syntax Tree) 만들고 실행CSS Parsing
: 외부 CSS 파일이나 style 태그가 있는 경우 CSS 파싱 → CSSOM Tree
생성Render Tree
생성: DOM Tree와 CSSOM Tree 합쳐서 Render Tree 생성Layout
: 렌더링 엔진이 Render Tree에 있는 Node들을 화면에 배치Paint
: UI Backend가 Render Tree에 있는 Node의 UI를 그림Composition
: Render Tree에 있는 Node를 z-index 낮은 것부터 순서대로 구성.🔻 The HTML DOM(Document Object Model) Tree of Objects