본문 바로가기
Front-End/Front-End 지식

브라우저

by debugggggger 2023. 3. 28.

브라우저의 주요 기능

브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것. 자원은 보통 HTML 문서지만 PDF나 이미지 또는 다른 형태일 수 있다. 자원의 주소는 URI에 의해 정해진다.

브라우저의 기본 구조

  1. 사용자 인터페이스 : 주소 표시줄, 이전/다음 버튼, 북마크 메뉴등. 요청한 페이지를 보여주는 창을 제외한 나머지 모든 부분.
  2. 브라우저 엔진 : 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어
  3. 렌더링 엔진 : 요청한 콘텐츠를 표시. HTML을 요청하면 HTML과 CSS를 파싱하여 화면에 표시함.
  4. 통신 : HTTP요청과 같은 네트워크 호출에 사용됨. 플랫폼 독립적인 인터페이스이고, 각 플랫폼 하부에서 실행됨.
  5. UI 백엔드 : 콤보 박스와 창 같은 기본적인 장치를 그림. 플랫폼에서 명시하지 않은 일반적인 인터페이스로서, OS 사용자 인터페이스 체계를 사용
  6. 자바스크립트 해석기 : 자바스크립트 코드를 해석하고 실행.
  7. 자료 저장소 : 자료를 저장하는 계층. 쿠키를 저장하는 것과 같이 모든 종류의 자원을 하드디스크에 저장할 필요가 있다. HTML5 명세에는 프라우저가 지원하는 웹 데이터베이스가 정의되어있다.

렌더링 엔진

파이어폭스는 게코 엔진을 사용하며, 사파리는 웹킷, 크롬은 블링크 엔진을 사용한다.

웹킷은 최초 리눅스 플랫폼에서 동작하기 위해 제작된 오픈소스 엔진이다.

 

렌더링 엔진의 동작과정은 다음과 같다.

파싱 : HTML 요청이 있을경우, HTML과 CSS를 파싱함.

렌더 트리 구축 : Node트리(DOM 트리) 생성. CSS 파일과 함께 스타일 요소도 파싱

렌더 트리 배치 (레이아웃 생성) : 뷰포트(디스플레이) 크기에 맞게 레이아웃 결정

렌더 트리 그리기 (페인팅) : 눈에 보이는 내용을 픽셀로 변환해서 브라우저에 표시함

 


참고

https://d2.naver.com/helloworld/59361

https://youtu.be/hITJM_t1WWY

 

'Front-End > Front-End 지식' 카테고리의 다른 글

Vue와 React 차이  (0) 2023.03.28
브라우저 저장소  (0) 2023.03.28
호이스팅(Hoisting)  (0) 2023.03.28