Hi
브라우저 주소창에 www.google.com을 입력하면? 본문
브라우저 주소창에 http://www.google.com을 입력하고 엔터를 치면 몇 초도 안 돼서 구글 검색창이 나타난다.
그 짧은 순간 컴퓨터와 인터넷에서 어떤 일이 일어나는지 순서대로 살펴보자.
1️⃣ URL 입력과 브라우저 준비
사용자가 주소창에 입력한 것은 URL이다.
https://www.google.com/
브라우저는 이를 해석하여 다음과 같은 정보를 추출한다.
- 프로토콜: https://
- 호스트명: www.google.com
- 포트 번호: 443 (보이지 않지만 HTTPS 기본 포트인 443이 생략되어 있다)
- 경로: / (홈페이지 루트 주소)
2️⃣ DNS
브라우저는 www.google.com이라는 문자열을 직접 이해하지 못한다. 따라서 실제 통신에 필요한 IP 주소를 찾아야 한다.
IP 주소를 찾는 과정은 다음과 같다.
- 캐시 확인
- 브라우저 캐시, 운영체제 DNS 캐시, 라우터 캐시, ISP DNS 캐시에서 먼저 확인한다.
- 캐시에 있다면 바로 해당 IP를 사용한다.
- DNS 질의
- 캐시에 없다면 DNS 서버에 질의를 수행한다.
- 루트 서버 → .com 서버 → google.com 네임서버 순서로 물어보며 최종 IP를 가져온다.
이 과정을 거쳐 브라우저는 142.250.196.100과 같은 IP 주소를 얻게 된다.
3️⃣ TCP 연결 (3-Way Handshake)
이제 브라우저는 해당 IP의 서버와 TCP 연결을 시도한다.
TCP는 데이터를 순서대로 안정적으로 전달하기 위해 3-way handshake 과정을 거친다.
- SYN: 클라이언트 → 서버
“연결할래!” (초기 SEQ 번호 포함) - SYN-ACK: 서버 → 클라이언트
“ㅇㅋ 준비했음” (서버 SEQ + 클라이언트 SEQ 확인) - ACK: 클라이언트 → 서버
“통신시작함”
즉, 브라우저가 SYN 패킷을 보내고, 서버가 SYN-ACK 패킷을 보낸 뒤, 브라우저가 ACK 패킷을 보내면서 TCP 연결이 성립한다.
4️⃣ SSL/TLS 핸드셰이크
HTTPS를 사용할 경우 수행되는 단계이다.
- ClientHello: 클라이언트가 지원 가능한 암호화 방식과 랜덤 값을 전송한다.
- ServerHello: 서버가 선택한 암호화 방식과 SSL 인증서를 제공한다.
- 인증서 검증: 브라우저가 서버의 인증서를 확인한다. (CA 체인 검증, 유효기간 체크)
- 키 교환: 클라이언트와 서버가 대칭키를 안전하게 교환한 뒤, 이후 모든 데이터는 암호화된다.
5️⃣ HTTP 요청과 응답
암호화 채널이 준비되면 브라우저는 서버에 HTTP/HTTPS 요청을 보낸다.
서버는 요청을 받아 해당 리소스를 찾아 응답을 보낸다.
- 요청: GET / HTTP/1.1
- 응답: HTTP/1.1 200 OK 와 함께 HTML 문서 반환
6️⃣ 브라우저 렌더링
브라우저는 받은 HTML 문서를 다음과 같은 단계를 거쳐 화면에 표시한다.
- HTML 파싱 → DOM 트리 생성
- CSS 파싱 → CSSOM 생성
- JavaScript 실행 → 필요 시 DOM 수정
- DOM + CSSOM → Render Tree 생성
- Layout: 각 요소의 위치와 크기 계산
- Painting: 픽셀로 변환하여 화면에 출력
✅ 완료!
이 모든 과정이 수백 밀리초에서 1초 이내에 일어난다.
'Computer Science' 카테고리의 다른 글
| 0.1 + 0.2가 0.3이 아닌 이유 ?! (0) | 2025.09.11 |
|---|---|
| 01. 컴퓨터 구조 이해하기 (0) | 2025.03.04 |