www.naver.com 에 접속할 때 일어나는 일에 대해 설명해주세요.

면접용 답변

www.naver.com에 접속할 때는 다음과 같은 과정을 거칩니다:

먼저, DNS 조회를 통해 도메인의 실제 IP 주소를 알아냅니다. 이후, 클라이언트와 서버는 3-way 핸드셰이크를 통해 TCP 연결을 설정합니다. 다음, 보안 접속을 위해 TLS 핸드셰이크가 진행되어 서버 인증서 검증, 암호화 키 교환 등이 이루어집니다. 클라이언트가 GET 등의 HTTP 요청을 서버로 전송하면, 서버는 필요한 리소스를 응답하고, 브라우저는 이를 렌더링합니다.

개념 설명

1. DNS 조회 (도메인 → IP 주소)

  • 사용자가 www.naver.com을 브라우저 주소창에 입력

  • 도메인 네임을 실제 서버의 IP 주소로 변환하는 과정

  • DNS 조회 순서: 로컬 캐시 → 운영체제 캐시 → 브라우저 캐시 → DNS 서버 → 루트 DNS → TLD 서버 → 권한 있는 DNS

이름
설명
예시

로컬 캐시 (브라우저)

브라우저 내부에 저장된 도메인-IP 정보 확인

최근 방문한적 있다면 캐시에 저장됨

운영체제 캐시 (OS)

OS 수준에서 저장된 DNS 기록 확인

최근 방문한적 있다면 캐시에 저장됨

DNS 서버 (재귀 DNS 서버)

네트워크에 설정된 DNS 서버, 캐시 확인

ISP, 공용 DNS 등

루트 DNS 서버

최상위 도메인(.com, .net) 위치 요청

.com TLD의 네임서버 위치 반환

TLD 서버 (Top Level Domain)

도메인 이름(naver.com)의 네임서버 위치 요청

naver.com을 관리하는 네임서버 주소 반환

권한 있는 DNS 서버

실제 도메인에 대한 IP 주소를 가지고 있는 네임서버

AWS Route53 등 www.naver.com → 223.130.200.104

2. TCP 연결 (3-way Handshake)

  • IP 주소가 확인되면, 클라이언트는 해당 서버에 TCP 연결을 시도

  • 3-way 핸드셰이크 과정:

    1. 클라이언트 → 서버: SYN

    2. 서버 → 클라이언트: SYN + ACK

    3. 클라이언트 → 서버: ACK

  • 연결이 성립되면 데이터 전송 가능

3. TLS 핸드셰이크 (HTTPS 보안 설정)

  • 보안 접속(HTTPS)을 위해 TLS 핸드셰이크가 실행됨

  • 핵심 과정:

    • 서버 인증서 확인 (신뢰 가능한 CA 발급 여부 검증)

    • 공개키 기반 비밀키 교환

    • 대칭키 생성 → 이후 통신은 대칭키로 암호화됨

4. HTTP 요청 전송

  • TCP와 TLS 연결이 완료되면, 브라우저는 HTTP 요청을 보냄

5. 서버 응답 및 리소스 전송

  • 서버는 요청을 처리하고 리소스를 응답

상태 코드
설명

1xx

요청을 받았으며, 처리를 계속함

2xx

요청이 성공적으로 처리됨

3xx

리소스가 다른 위치로 이동됨

4xx

클라이언트 요청에 오류가 있음

5xx

서버 내부 오류로 요청 처리 실패

6. 브라우저 렌더링

  • 브라우저는 받은 HTML을 파싱하고 웹페이지를 화면에 출력함

  • 렌더링 단계:

    1. HTML 파싱 → DOM 트리 생성

    2. CSS 파싱 → CSSOM 트리 생성

    3. DOM + CSSOM → 렌더 트리 구성

    4. JS 실행 (필요 시 DOM 조작)

    5. 레이아웃 계산 & 페인팅

    6. 화면에 렌더링

추가 질문

DNS 조회는 어떤 순서로 이루어지나요?

DNS 조회는 사용자가 브라우저에 도메인을 입력했을 때, 해당 도메인을 IP 주소로 변환하기 위해 이루어지는 과정입니다. 캐시를 우선적으로 확인한 뒤, 필요한 경우 외부 DNS 서버에 질의하는 방식으로 이루어집니다.

먼저 브라우저는 자체 캐시에 도메인-IP 매핑 정보가 있는지 확인하고, 없으면 운영체제의 DNS 캐시를 조회합니다. 두 곳 모두에 정보가 없다면, 네트워크 설정에 등록된 재귀 DNS 서버에 요청을 보내 확인합니다. 재귀 DNS 서버의 캐시에도 없다면, 재귀 DNS 서버는 루트 DNS 서버에 접근하여, 해당 도메인의 최상위 도메인(TLD) 서버 위치를 알아낸 뒤, 다시 TLD 서버를 통해 해당 도메인을 관리하는 권한 있는 DNS 서버의 위치를 확인합니다. 마지막으로, 권한 있는 DNS 서버로부터 해당 도메인의 실제 IP 주소를 받아와 응답하게 됩니다.

중간에 캐시에서 IP를 찾을 경우 다음 단계를 진행하지 않고 바로 응답합니다.

Last updated