일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 페이스북유니버시티 #마케팅교육 #마케팅캠프
- html #js #parsing
- #국제채권시장 #유로본드 #유로커런시 #유로달러 #외국채 #금융중개기관 #간접금융 #거래비용#다우존스공업평균지수 #나스닥종합지수 #FTSE100 #DAX #CAC40 #straittimes #항생지수 #거래비용 #유동성 #위
- 미쉬킨의화폐와금융 #미쉬킨 #화폐금융론 #화폐와금융 #경제학 #교양 #경제지식 #경제공부
- vp #vc #did #신원인증 #블록체인
- #경제상식 #화폐 #금융 #화폐금융론 #경제학 #경제기본 #경제지식 #경제근육 #투자지식 #경제공부 #경제학전공 #금융이란 #화폐란 #금융시장 #금융시장역할 #화폐역할 #화폐역기능 #금융역기능 #
- 자료구조 #알고리즘
- 블록체인 #layer2 #레이어2 #이더리움스케일링
- Today
- Total
평행우주 : world 1
[JS] 브라우저의 렌더링 과정 본문
브라우저 렌더링 과정
1. 브라우저는 HTML, CSS, 자바스크립트, 이미지, 폰트 파일 등 렌더링에 필요한 리소스를 요청하고, 서버로부터 응답 받는다
2. 브라우저의 렌더링 엔진은 서버로부터 응답된 HTML과 CSS을 파싱하여 DOM과 CSSOM을 생성하고 이들을 결합해 렌더 트리를 생산한다
3. 브라우저의 자바스크립트 엔진은 서버로부터 응답된 자바스크립트를 파싱하여, AST를 생성하고 바이트 코드로 변환하여 실행한다
이때, 자바스크립트는 DOM API를 통해 DOM이나 CSSOM을 변경할 수 있다. 변경된 DOM과 CSSOM은 다시 렌더 트리로 결합된다
4. 렌더 트리를 기반으로 HTML요소의 레이아웃(위치와 크기)을 계산하고 브라우저 화면에 HTML요소를 페인팅한다
브라우저의 핵심 기능
필요한 리소스 (HTML, CSS, 자바스크립트, 이미지, 폰트 파일 등의 정적 파일 또는 서버가 동적으로 생성한 데이터)를 서버에 요청하고, 서버로부터 응답받아 브라우저에 시각적으로 렌더링한다
렌더링에 필요한 모든 리소스는 서버에 존재한다
따라서 필요한 리소스를 서버에 요청하고, 서버가 응답한 리소스를 파싱해 렌더링한다
+) 브라우저는 어떻게 서버에 요청을 전송할까?
서버에 요청을 전송하기 위해 브라우저는 주소창을 제공한다.
브라우저 주소창에 URL을 입력하고 엔터 키를 누르면 URL의 호스트 이름이 DNS를 통해 IP 주소로 변환되고,
해당 IP주소를 갖는 서버에게 요청을 전송한다
HTTP
웹에서 브라우저와 서버가 통신하기 위한 통신 프로코톨(규약)
HTML 파싱과 DOM 생성
브라우저 요청에 의해 서버가 응답한 HTML문서는 문자열로 이루어진 순수한 텍스트이다
순수한 텍스트인 HTML문서를 브라우저에 시각적인 픽셀로 렌더링하려면 HTML 문서를 브라우저가 이해할 수 있는 자료구조
즉 객체로 변환해 메모리에 저장해야 한다
브라우저의 렌더링은 아래 과정을 통해 응답받은 html 문서를 파싱하여 브라우저가 이해할 수 있는 자료구조인 dom을 생성한다
바이트 > 문자 > 토큰 > 노드 > dom
즉 dom은 html 문서를 파싱한 결과물
'텃밭 2 : FE > JavaScript' 카테고리의 다른 글
[JS] 내장 고차함수 : filter, map, reduce (0) | 2022.02.16 |
---|---|
[JS] 콜백함수와 고차함수 (0) | 2022.02.14 |
[JS] 일급 객체와 함수 First-class citizen (0) | 2022.02.14 |
[JS] 메모리 구조적으로 살펴본 ==, === 의 차이 (0) | 2022.02.03 |
[JS] var, let, const 로 선언한 변수는 실제로 어디에 저장될까 (0) | 2022.01.29 |