ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 브라우저 동작 방법
    CS (Computer Science) 2025. 1. 10. 22:49

    브라우저 주소창에 https://naver.com 을 입력했을 때, 어떤 과정을 거쳐서 네이버 페이지가 화면에 보이는지 알아보자

    브라우저 주요기능


    사용자가 선택한 자원을 서버에 요청 ⇒ 브라우저에 표시

    자원은 html, pdf, image 등 다양한 형태

    자원의 주소는 URI에 의해 정해진다

    브라우저는 html과 css 명세에 따라 html 파일을 해석해서 표시함

    브라우저가 가진 인터페이스는 보통 비슷한 요소들이 존재

    • URI 입력하는 주소 표시줄
    • 이전 버튼, 다음 버튼
    • 북마크
    • 새로 고침 버튼
    • 홈 버튼 등

    URI 와 URL의 관계

    • URI (Uniform Resource Identifier) : 인터넷 자원을 식별하는 전체적인 개념으로 URL과 URN을 포함한다. (책의 정보를 식별할 수 있는 모든 것)
    • URL (Uniform Resource Locator) : URI의 한 종류로, 자원의 위치를 나타낸다. ex) https//:naver.com/page1 (위치 정보 포함)
    • URN (Uniform Resource Name) : URI의 한 종류로, 자원의 이름을 나타낸다. ex) urn:isbn:1234567 (위치 정보는 없음)

    브라우저 기본 구조


    사용자 인터페이스 (UI : User Interface)

    사용자가 브라우저를 조작할 수 있는 화면과 버튼 ex) 주소 표시줄, 이전/다음 버튼, 북마크 등

    *사용자 경험(UX : User eXperience) : 사용자들의 경험을 분석하여 더 편하고 효율적인 방향으로 프로세스가 진행 될 수 있도록 만드는 것 (ex: 터치 화면, 사용자의 선택 flow 등)

    브라우저 엔진

    사용자 인터페이스를 통해 사용자의 명령을 받아 렌더링 엔진과 통신하며 웹페이지를 표시하는 역할

    렌더링 엔진

    요청한 콘텐츠 표시 ( HTML, CSS를 파싱해서 화면에 표시) ⇒ HTML, CSS를 분석해 화면에 예쁘게 그려주는 역할

    *렌더링(Rendering) 이란? 웹 브라우저가 HTML(제목, 이미지, 텍스트 등), CSS(색상, 크기, 위치), JavaScript(버튼 클릭, 동작 등) 같은 코드를 읽어서 우리가 볼 수 있는 화면으로 변환하는 과정

    *파싱 (Parsing) 이란? 데이터를 특정 규칙에 따라 분석하고 프로그래밍적으로 처리할 수 있도록 변환하는 과정ex)

    const jsonString = '{"name:":"Song", "age":28}';
    
    const parsedData = JSON.parse(jsonString);
    
    console.log(parsedData.name); // 출력 : Song
    

    통신

    인터넷(네트워크)을 통해 서버에서 데이터를 주고받는 역할을 한다.

    자바스크립트 해석기

    웹페이지에서 동작하는 JS 코드를 이해하고 실행한다.

    자료 저장소

    쿠키, 캐시 같은 데이터를 하드디스크에 저장하는 계틍

    DOM (Document Object Model : 문서 객체 모델)

    DOM은 웹페이지의 구조를 표현한 트리 모양의 지도라고 할 수 있다.

    브라우저가 HTML 파일을 읽어서 DOM이라는 형태로 변환한다.

    예시 코드)

    HTML 코드:

    <!DOCTYPE html>
    <html>
      <head>
        <title>My Page</title>
      </head>
      <body>
        <h1>Hello World!</h1>
        <p>This is a paragraph.</p>
      </body>
    </html>
    

    HTML 코드를 DOM 트리 구조로 변환:

    - html (루트 노드)
      ├── head
      │     └── title
      │            └── "My Page" (텍스트 노드)
      └── body
            ├── h1
            │     └── "Hello World!" (텍스트 노드)
            └── p
                  └── "This is a paragraph." (텍스트 노드)
    

    DOM의 사용이유 : 각 태그가 부모와 자식 관계를 지니기 때문에 이를 트리 구조로 표현하고, JS를 통해 특정 노드를 쉽게 찾고 수정할 수 있도록 사용한다.

    요약

    • URL입력으로 브라우저가 서버에 Request(요청)을 보내고, 서버는 HTML, CSS, 이미지 같은 자원을 Response(응답)로 보냄
    • 랜더링 엔진 작동으로 HTML과 CSS를 해석해 브라우저가 화면에 페이지를 표시하도록 준비
    • HTML 파싱을 통해 HTML 문서를 분석해 DOM트리 (문서 구조)를 만든다.
    • CSS 파일을 분석해 스타일 정보를 만듦
    • DOM 트리와 CSS 정보를 합쳐 화면에 표시할 구조를 만듦
    • 렌더 트리를 기반으로 요소를 배치하고 UI 백엔드가 화면에 그린다. 자원을 모두 기다리지 않고 먼저 받은 부분부터 화면에 표시한다.(점진적 렌더링)

    'CS (Computer Science)' 카테고리의 다른 글

    HTTP Request Methods  (0) 2025.01.10
    Cookie & Session  (0) 2025.01.10
    Redis란?  (0) 2024.07.05
    DB Table Relation  (0) 2024.01.23
    Naming Convention [TypeScript]  (0) 2024.01.12
Designed by Tistory.