웹사이트 접속 흐름

승민·2025년 4월 7일
0

면접 대비

목록 보기
10/31

Url 입력, 클릭을 통해 도메인에 접근하는 순간부터 페이지 렌더링 전까지 과정에 대한 정리

1. DNS 조회 -> IP 주소

우리가 도메인(ex. www.naver.com)에 접근하면 브라우저는 먼저 IP 주소를 찾기 위해 DNS 조회를 수행합니다.

DNS 조회 순서

브라우저는 우선 접근한 도메인의 IP 주소가 캐시에 있는지 확인합니다.
캐시 종류는 브라우저 캐시, OS 캐시, 라우터 캐시, ISP 캐시로 구분됩니다.

  • 브라우저 캐시 -> 내 검색 기록 확인
  • OS 캐시 -> 운영체제에 존재하는 캐시로 systemCall 확인
  • 라우터 캐시 -> 공유기로 생각하면 편함
  • ISP 캐시 -> Internet Service Provider, 인터넷 제공 회사 캐시 확인

모두 실패할 경우, ISP의 DNS 서버에 쿼리를 보냅니다. 이때는 Recursive Search 방식으로 진행되며, 아래처럼 단계적으로 네임서버에 질의합니다:

단계적 네임서버

Root DNS → .com TLD DNS → naver.com 권한 DNS → www.naver.com IP 주소 반환
Root Domian에 연락 ->
Top-level-domain인 .com DNS에 물어봄 ->
second-level-domain naver.com name server로 이동,
여기서 기본이 되는 www의 ip adress를 DNS recursor에 보내서 DNS 서버의 IP 주소를 찾는다.

이 과정을 DNS Recursive Resolver가 담당합니다.

2. TCP 연결 수립 (3-Way Handshake)

위 과정을 통해 얻은 IP 주소를 서버와 TCP 연결을 맺습니다.
TCP는 데이터를 잃지 않고 안전하게 전송하기 위한 프로토콜, IP는 데이터의 도착 위치를 책임집니다.

| TCP는 전송의 신뢰성,
| IP는 패킷의 도착 위치를 책임집니다.

3단계 과정 (3-Way Handshake)

  1. 클라이언트 → SYN
  2. 서버 -> SYN + ACK
  3. 클라이언트 → ACK

3-Way Handshake

3. HTTPS 보안 연결 수립 (SSL/TLS Handshake)

만약 접속하는 웹사이트가 HTTPS일 경우, TCP 연결 전에 SSL/TLS 핸드셰이크가 발생합니다.

  • 브라우저 ↔ 서버 간 보안 인증서 교환
  • 대칭 키 암호화를 위한 키 협상 진행

이 과정을 통해 안전하게 데이터를 주고받을 수 있게 됩니다.

4. HTTP 요청 보내기

연결이 완료되면 브라우저는 HTTP 요청을 보냅니다. 예시:

GET / HTTP/1.1
Host: www.naver.com

서버는 이 요청을 받고, HTML, CSS, JS, 이미지 등의 리소스를 HTTP 응답으로 반환합니다.

5. 로드 밸런서 & 방화벽 처리

요청이 서버에 도달하기 전에는 다음과 같은 처리가 이루어질 수 있습니다

  • 방화벽(Firewall): 보안 검사
  • 로드 밸런서(Load Balancer): 트래픽 분산

보안 검사 후 로드 밸런서가 트랙픽 확인 후 적절한 서버로 요청이 전달됩니다.

요약

도메인 입력

DNS 조회 → 캐시 확인 → DNS 서버로 쿼리

TCP 연결 (3-Way Handshake)

SSL/TLS 핸드셰이크 (HTTPS인 경우)

HTTP 요청 → 서버 응답

방화벽/로드밸런서 처리

브라우저 렌더링

웹사이트 화면 출력 완료

0개의 댓글