인터넷

브라우저와 브라우저의 작동 방식

Lulung 2024. 12. 25. 00:02

브라우저

브라우저는 사용자가 인터넷에 접속해 웹사이트를 탐색하고, 콘텐츠를 표시하는 응용 프로그램이다.
예시: Google Chrome, Mozilla Firefox, Microsoft Edge, Safari.

주요 기능

  • 사용자가 입력한 URL을 통해 원하는 웹 페이지를 서버에 요청.
  • HTML, CSS, JavaScript와 같은 웹 기술을 해석하고 렌더링.
  • 다양한 플러그인과 확장 기능 제공.
  • 보안 및 개인정보 보호 기능 제공.

 

브라우저 구성 요소

  1. 사용자 인터페이스 (User Interface) : 주소창, 북마크, 뒤로 가기 버튼 등 사용자가 직접적으로 상호작용하는 부분.
  2. 브라우저 엔진 (Browser Engine) : 사용자 인터페이스와 렌더링 엔진 간의 중재자 역할을 한다.
  3. 렌더링 엔진 (Rendering Engine) : HTML, CSS를 해석하여 화면에 페이지를 표시한다.
    • 예: Blink(Chrome, Edge), Gecko(Firefox), WebKit(Safari).
  4. JavaScript 엔진 : JavaScript 코드를 해석하고 실행한다.
    • 예: V8(Chrome, Edge), SpiderMonkey(Firefox), JavaScriptCore(Safari).
  5. 네트워킹 (Networking) : HTTP/HTTPS를 통해 서버와 통신하며 요청/응답 데이터를 처리.
  6. UI 백엔드 (UI Backend) : 버튼, 스크롤 바 등 브라우저 내부의 UI 구성 요소를 그린다.
  7. 데이터 저장소 (Data Storage) : 캐시, 쿠키, 로컬 스토리지, 세션 스토리지 등 데이터를 저장.

 

브라우저 작동 방식

1. URL 입력 및 DNS 조회 : 사용자가 브라우저 주소창에 URL을 입력한다. 브라우저는 DNS를 통해 도메인 이름을 IP 주소로 변환한다.

2. HTTP 요청 : 브라우저가 서버에 HTTP/HTTPS 요청을 보낸다. 요청에 필요한 정보를 포함한다(메서드, 헤더 등).

3. 서버 응답 : 서버는 요청에 대한 응답으로 HTML 문서를 반환한다. 상태 코드(예: 200 OK, 404 Not Found)와 함께 전송된다.

4. HTML 해석 및 DOM 생성 : 브라우저의 렌더링 엔진이 HTML 파일을 읽고 DOM(Document Object Model)을 생성한다.

5. CSSOM 생성 : CSS 파일을 읽고 해석하여 CSSOM(CSS Object Model)을 만든다.

6. 렌더 트리 생성 : DOM과 CSSOM을 결합해 렌더 트리(Render Tree)를 생성한다. 렌더 트리는 화면에 표시될 요소들만 포함한다.

7. 레이아웃 : 렌더 트리를 기반으로 각 요소의 위치와 크기를 계산한다. 

8. 페인팅 (Painting) : 요소의 색상, 테두리, 배경 등을 실제 픽셀로 변환한다.

9. 컴포지팅 (Compositing) : 레이어를 병합하여 최종적으로 화면에 렌더링한다.

 

브라우저의 비동기 작업 처리

브라우저는 JavaScript 실행, 이벤트 처리, 렌더링 업데이트 등을 효율적으로 처리하기 위해 비동기 처리를 활용한다.

  • 콜 스택 (Call Stack) : 동기적 작업이 실행되는 공간.
  • 웹 API : 타이머(setTimeout), DOM 이벤트 등 비동기 작업을 처리.
  • 이벤트 루프 (Event Loop) : 콜 스택이 비어 있으면 태스크 큐에서 작업을 가져와 실행.
  • 태스크 큐 (Task Queue) : 비동기 작업의 콜백이 대기하는 공간.

 

'인터넷' 카테고리의 다른 글

호스팅 (Hosting)  (0) 2024.12.24
도메인 이름 (Domain Name)  (0) 2024.12.24
HTTP / HTTPS  (0) 2024.12.24
인터넷의 동작 방식  (2) 2024.12.23