[CS - 웹] 검색창에 www.google.com을 치면 생기는 일

Jo HangJoon·2022년 10월 13일
0

CS 공부

목록 보기
13/17

질문의 핵심

  • 검색창에 주소(ex. www.google.com)를 치면 어떤 일이 생기나요?

요약

  1. www.google.com을 검색하면 브라우저는 캐싱된 DNS 기록을 검색한다.
  2. 캐시에 해당 기록이 없으면, ISP의 DNS 서버에서 다른 DNS 서버를 DNS Query를 통해 검색하여 IP 주소를 찾는다.
  3. 받은 IP 주소를 사용하여 TCP 통신을 통해 해당 IP 서버와 브라우저가 연결한다.
  4. 브라우저가 웹 서버에 HTTP 요청을 한다.
  5. 서버가 요청을 처리하고, HTTP 응답을 보낸다.
  6. 브라우저가 웹 페이지를 구성하고, 사용자에게 보여준다.

1. DNS 캐시 탐색

브라우저는 캐싱된 DNS 기록에서 www.google.com에 대응 하는 IP 주소가 있는지 검색한다. 캐시는 네트워크 트래픽을 조절하고 데이터 전송 시간을 줄여줘 더 빠른 응답을 가능하게 한다.

1) 브라우저 캐시

브라우저는 일정 유저가 방문한 사이트의 DNS 정보들을 기록하고 있다. 해당 DNS 기록이 없으면 OS 캐시로 넘어간다.

2) OS 캐시

브라우저는 운영체제에 시스템 콜을 통해 OS에 기록되어 있는 DNS 캐시에 접근한다. 해당 DNS 기록이 없으면 라우터 캐시로 넘어간다.

3) 라우터 캐시

OSI 7계층 중, 데이터 통신 계층에 있는 라우터에 들어있는 DNS 캐시에 접근한다. 해당 DNS 기록이 없으면 ISP 캐시로 넘어간다.

4) ISP 캐시

ISP(Internet Server Provider)는 인터넷 서비스 공급자이며, DNS 서버를 구축하고 있다.


2. DNS(Domain Name System)

DNS란?

검색한 도메인 이름을 IP 주소로 바꿔주는 시스템이다.

호스트에게 도메인 주소를 받은 ISP의 DNS recursor는 다음 과정을 통해 IP 주소를 제공한다.

  1. Root Name Server에서 도메인 주소를 찾는다.
  2. 1번에서 못 찾으면 최상위 도메인(.com Top-Level Name Server)에서 도메인 주소를 찾는다.
  3. www.google.com에 해당하는 Name Server를 알게 되면 해당 Name Server에서 도메인 주소를 찾는다.
  4. Name Server에서 www.google.com의 IP 주소를 받는다.

이처럼 IP 주소를 찾을 때까지 다른 DNS 서버에서 다른 DNS 서버를 오가며 검색하는 과정을 recursive search라고 한다.


3. TCP Connection

브라우저와 서버가 웹 사이트의 HTTP 연결을 할 경우 일반적으로 TCP 연결을 한다. 클라이언트와 서버간 데이터 패킷들이 오고 가기 위한 TCP 연결을 하려면 3 Way Handshake 과정이 필요하다.

[CS - 네트워크] TCP & UDP, 3 Way Handshake, 4 Way Handshake


4. 브라우저가 웹 서버에 HTTP 요청

브라우저와 서버가 연결되었다면 서버는 데이터를 전송한다. 브라우저는 HTTP 프로토콜로 GET 요청을 통해 서버에게 www.google.com의 웹페이지 데이터를 요구한다.


5. 서버가 요청을 처리, HTTP 응답

요청을 받은 서버는 응답을 생성해 보낸다. 이때 응답은 특정한 포맷(JSON, XML, HTML) 등으로 작성한다.

웹 서버 혼자서 모든 요청을 수행한다면 서버에 과부하가 일어날 수 있으므로 이를 돕는 WAS을 사용한다.

WAS(Web Application Server)

사용자의 컴퓨터나 장치에 웹 어플리케이션을 수행해주는 미들웨어.

웹 서버는 페이지의 로직이나 DB의 연동을 위해 WAS에 이들의 처리를 요청하고, WAS는 동적인 컨텐츠를 처리하고 DB에서 필요한 데이터 정보를 받아서 파일을 생성한다. 반대로, 웹 서버는 정적인 컨텐츠를 처리한다.

WAS와 DB에서 작업 처리 결과를 웹 서버에 전송하면 웹 서버는 상태 코드로 서버 요청에 따른 응답을 보낸다.

[CS - 네트워크] HTTP & HTTPS


6. 브라우저가 HTML content를 출력

Critical Path 과정을 통해 브라우저가 렌더링되어 사용자에게 www.google.com의 화면이 보여지게 된다. 이때 정적인 파일들은 브라우저에 의해 캐싱되어 다시 방문할 경우 다시 데이터를 요청하지 않도록 한다.


참조

0개의 댓글