브라우저의 주요 기능
브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것. 자원은 보통 HTML 문서지만 PDF나 이미지 또는 다른 형태일 수 있다. 자원의 주소는 URI에 의해 정해진다.
브라우저의 기본 구조
- 사용자 인터페이스 : 주소 표시줄, 이전/다음 버튼, 북마크 메뉴등. 요청한 페이지를 보여주는 창을 제외한 나머지 모든 부분.
- 브라우저 엔진 : 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어
- 렌더링 엔진 : 요청한 콘텐츠를 표시. HTML을 요청하면 HTML과 CSS를 파싱하여 화면에 표시함.
- 통신 : HTTP요청과 같은 네트워크 호출에 사용됨. 플랫폼 독립적인 인터페이스이고, 각 플랫폼 하부에서 실행됨.
- UI 백엔드 : 콤보 박스와 창 같은 기본적인 장치를 그림. 플랫폼에서 명시하지 않은 일반적인 인터페이스로서, OS 사용자 인터페이스 체계를 사용
- 자바스크립트 해석기 : 자바스크립트 코드를 해석하고 실행.
- 자료 저장소 : 자료를 저장하는 계층. 쿠키를 저장하는 것과 같이 모든 종류의 자원을 하드디스크에 저장할 필요가 있다. HTML5 명세에는 프라우저가 지원하는 웹 데이터베이스가 정의되어있다.
렌더링 엔진
파이어폭스는 게코 엔진을 사용하며, 사파리는 웹킷, 크롬은 블링크 엔진을 사용한다.
웹킷은 최초 리눅스 플랫폼에서 동작하기 위해 제작된 오픈소스 엔진이다.
렌더링 엔진의 동작과정은 다음과 같다.
파싱 : HTML 요청이 있을경우, HTML과 CSS를 파싱함.
렌더 트리 구축 : Node트리(DOM 트리) 생성. CSS 파일과 함께 스타일 요소도 파싱
렌더 트리 배치 (레이아웃 생성) : 뷰포트(디스플레이) 크기에 맞게 레이아웃 결정
렌더 트리 그리기 (페인팅) : 눈에 보이는 내용을 픽셀로 변환해서 브라우저에 표시함
참고
https://d2.naver.com/helloworld/59361
'Front-End > Front-End 지식' 카테고리의 다른 글
Vue와 React 차이 (0) | 2023.03.28 |
---|---|
브라우저 저장소 (0) | 2023.03.28 |
호이스팅(Hoisting) (0) | 2023.03.28 |