브라우저 동작 원리
웹 브라우저의 주소창에 https://www.example.com과 같은 URL을 입력했을 때, 그 단순한 동작 뒤에는 수많은 복잡한 일이 일어납니다. 이 과정을 이해하면 HTTP, DNS, 브라우저 렌더링 등 핵심 웹 기술들의 동작 원리를 자연스럽게 익힐 수 있습니다.
이 글에서는 사용자가 주소창에 URL을 입력한 순간부터 웹사이트가 화면에 나타나기까지 어떤 일들이 발생하는지 단계별로 설명합니다.
1. URL 분석 및 구성 요소 분해
먼저 브라우저는 사용자가 입력한 URL (Uniform Resource Locator) 을 분석합니다.
예시 URL : https://www.example.com:443/path/index.html?search=query#section
- https – 프로토콜 (어떻게 통신할 것인가)
- www.example.com – 호스트 이름 (어디로 접속할 것인가)
- :443 – 포트 번호 (통신할 포트, 생략 가능)
- /path/index.html – 경로 (서버 내부 자원의 위치)
- ?search=query – 쿼리 문자열 (요청 파라미터)
- #section – 프래그먼트 (문서 내 특정 위치, 서버에는 전송되지 않음)
2. 주소창에 URL을 입력하면?
a. DNS 조회 - 도메인을 IP로 변환
브라우저는 도메인(www.example.com)을 실제 IP 주소로 변환해야 합니다. 이때 DNS (Domain Name System) 를 이용합니다.
- 브라우저 캐시 → 2. 운영체제 캐시 → 3. 라우터 캐시 → 4. ISP DNS 서버 → 5. 루트/권한/권한있는 DNS 서버 순으로 캐시를 확인하거나 질의합니다.
- 최종적으로 IP 주소를 얻습니다. 예 : 93.184.216.34
b. TCP 연결 수립 (3-way 핸드셰이크)
브라우저는 서버와 통신하기 위해 TCP 연결을 시작합니다. 이때는 3-way 핸드셰이크가 사용됩니다.
- 클라이언트 → 서버 : SYN
- 서버 → 클라이언트 : SYN-ACK
- 클라이언트 → 서버 : ACK
이 과정을 통해 안정적인 연결이 수립됩니다.
c. HTTPS일 경우 : TLS 핸드셰이크
URL이 https로 시작한다면 TLS(SSL) 핸드셰이크가 추가로 이루어집니다.
- 서버 인증서 검증
- 대칭키 생성 및 공유
- 암호화 통신 준비 완료
이후 모든 통신은 암호화됩니다.
d. HTTP 요청 전송
연결이 수립되면 브라우저는 HTTP 요청을 보냅니다.
GET /path/index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 ...
Accept: text/html
e. 서버 처리 및 응답
서버는 요청을 받고, 해당 자원을 찾아 응답을 보냅니다.
GET /path/index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 ...
Accept: text/html
- 여기서 HTML, CSS, JS 파일 등이 함께 제공됩니다.
f. 브라우저 렌더링 과정
브라우저는 HTML을 파싱하고 다음과 같은 과정을 거칩니다:
- HTML 파싱 → DOM 트리 생성
- CSS 파싱 → CSSOM 트리 생성
- DOM + CSSOM → 렌더 트리 생성
- 레이아웃 계산 → 위치와 크기 결정
- 페인트 → 화면에 픽셀로 렌더링
JS가 있으면 스크립트 실행 및 리렌더링도 함께 일어납니다.
g. 추가 리소스 로딩
HTML 문서에 포함된 이미지, JS, CSS 등은 별도의 HTTP 요청을 통해 추가로 로드됩니다. 브라우저는 비동기적/병렬적으로 이를 처리합니다.
3. 요약 - 전체 흐름 한눈에 보기
순서 | 단계 | 설명 |
1 | URL 분석 | URL을 구성 요소로 분해 |
2 | DNS 조회 | 도메인을 IP로 변환 |
3 | TCP 연결 | 3-way 핸드셰이크 수행 |
4 | TLS 핸드셰이크 | HTTPS 암호화 통신 설정 |
5 | HTTP 요청 | 서버에 요청 전송 |
6 | 서버 응답 | HTML 등 리소스 반환 |
7 | 렌더링 | 브라우저가 화면에 출력 |
8 | 추가 리소스 | 이미지/JS/CSS 로딩 |
4. 마무리
단순히 URL을 입력하는 행동 뒤에는 많은 기술들이 유기적으로 작동하고 있습니다. 이 흐름을 이해하면 웹 개발을 하면서 마주칠 수 있는 다양한 문제들(속도, 보안, 렌더링 이슈 등)을 더 깊이 있게 분석하고 해결할 수 있습니다.
함께 보면 좋은 자료
블로그 글 :
[브라우저 렌더링 과정] HTML이 화면에 보이기까지
브라우저 렌더링 과정 웹사이트에 접속하면 눈앞에 멋진 UI가 펼쳐지죠. 하지만 그 화면이 실제로 만들어지기까지는 수많은 과정이 숨어 있습니다. 브라우저는 HTML, CSS, JS 같은 리소스를 해석하
dachaes-devlogs.tistory.com
'컴퓨터 사이언스 > 브라우저' 카테고리의 다른 글
[Intersection Observer] 스크롤 감지의 혁신 (0) | 2025.04.25 |
---|---|
[크로스 브라우징] 모든 브라우저에서 깨지지 않는 웹 만들기 (0) | 2025.04.21 |
[MutationObserver] DOM 변화를 감지하는 방법 (0) | 2025.04.14 |
[검색 엔진 최적화 (SEO)] 검색에 잘 노출되는 사이트란? (0) | 2025.04.13 |
[웹 저장소] localStorage, sessionStorage, Cookie 의 차이와 사용법 (0) | 2025.04.13 |