2021.02.15
[TOC]
- 사용자가
www.google.com
에서 검색어를 입력하고Enter
를 하면 - Client는 인터넷을 통해 Google server에게 request하고 그에 대한 **response를 받는다.
- 그러면 client는 Google Server가 어디에 있는지 어떻게 아는 것일까?
- 바로 **DNS (Domain Name Server)**를 통해서 알아낸다.
- ✅ ISP(Internet Service Provider, 쉽게 말해 통신사)마다 기본 DNS와 보조 DNS를 가지고 있으며, DNS를 통해 우리가 찾고자하는 IP주소를 찾을 수 있다.
Domain Name System
- Google에 검색을 하는 경우
- DNS Resolver가 먼저
Root Name Server
에 검색을 해본다. - Root Name Server는
.com
이라는 root name에 대한TLD Name Server IP
주소를 알려준다. - 그 다음은 TLD Name Server에서 구글 검색 후 그에 대한
Authoritative Name Server IP
주소를 알아낸다. - 마지막으로 Authoritative Name Server`에서 풀주소로 검색을 해서 구글의 IP 주소를 알아낸다.
- DNS Resolver는 알아낸 IP 주소를 client에 반환해준다.
하지만 IP 주소가 필요할 때마다 위와 같은 과정을 거치는 것이 번거로우므로 Caching을 할 수 있다.
DNS Cache
- 매번 DNS와 통신을 하는 비용을 줄이기 위한 수단
- 저장 위치
- 브라우저
- 운영체제
- 라우터
- ISP(Internet Service Provider) - 3대 통신사
-
주소를 알아내면 TCP(Transmission Control Protocol) 세션 연결을 한다.
-
순서는 다음과 같다.
1. SYN 2. ACK + SYN 3. ACK
(SYN: Sync, ACK: Acknowledgement)
- 연결이 맺어졌으니 **HTTP (HyperText Transfer Protocol)**에 따라 요청을 하고 응답을 받는다.
- client가
GET
method로 요청을 하면 server가index.html
을 응답으로 받는다. - 그리고 비로소 메인 화면이 보여지게 된다.
구글 홈페이지가 브라우저에서 보이기 위한 단계
- 브라우저에 www.google.com을 입력한다.
- DNS를 통해 IP 주소를 획득한다.
- 획득한 IP 주소에 있는 서버와 TCP 3 Way Handshake를 진행한다.
- 통신을 맺은 서버에 HTTP Request를 한다.
- 서버에서 보낸 HTTP Response를 통해 html 파일을 받는다.
- 브라우저가 html을 분석해서 화면으로 그린다. (rendering)
- 받은 html을 parsing(구문 분석) 후 render해서 표시한다.
Copyright © 2021 Song_Artish