Browser에서 Google.com을 검색하면 무슨 일이 발생하나요?

No Image

들어가며

예전에 받았던 면접 질문들을 회고하고 보다 깊이 있게 이해하기 위해 정리합니다.

Browser에서 Google.com을 검색하면 무슨 일이 발생하나요?

1. DNS에서 IP주소 가져오기

  • https://www.google.com을 IP주소로 변환하는 작업이 필요합니다.

Browser DNS Cache - Chrome

  • 브라우저는 도메인이 캐시에 들어있는지 확인합니다.
  • chrome://net-internals/#dns

No Image

OS DNS Cache - Mac

  • 만약 Browser Cache에서 못 찾으면, OS에 저장된 DNS Cache를 찾게 됩니다.
  • 각 OS의 hosts 위치 : Link
  • Mac : /etc/hosts

No Image

Router DNS Server

  • 만약 OS Cache에서도 못 찾으면, Router DNS Server에 직접 조회를 진행하게 됩니다.
  • 현재 접속한 NameServer 주소
  • Mac : /etc/resolv.conf

No Image

DNS Server

  • Router DNS Server에 조회해서 없다면, Root DNS부터 조회를 하여 결과를 가져옵니다.
  • Root DNS부터 Recursive Query를 진행하게 됩니다. No Image

2. Server와 TCP Socket 열기

  • Server의 IP주소로 TCP Socket을 열어 Server와 통신 준비를 진행합니다.

TCP 3 Way-Handshake

  1. Client > Server : TCP SYN
  2. Server > Client : TCP SYN ACK
  3. Client > Server : TCP ACK

No Image

TCP Socket 연결 상태 확인하기

$ netstat

No Image

3. Server에 HTTP로 Resource 요청하기

  • TCP Socket을 통해 HTTP Protocol로 원하는 Resource를 요청합니다.

Flow

  1. Client > Server : Request
  2. Server > Client : Response
  • HTTP 내용 : Link

Client Request

No Image

Server Response

No Image

4. Browser Page Rendering

  • Server에서 받은 Resource를 Browser에서 Rendering하는 작업이 필요합니다.
  • 잘 정리해 놓은 Link남겨드립니다. : Link

Reference

0%