Skip to content

Latest commit

 

History

History
85 lines (50 loc) · 2.59 KB

인터넷 페이지가 보이는 과정.md

File metadata and controls

85 lines (50 loc) · 2.59 KB

인터넷 페이지가 보이는 과정

2021.02.15


[TOC]


1. Client & Server

  • 사용자가 www.google.com에서 검색어를 입력하고 Enter를 하면
  • Client는 인터넷을 통해 Google server에게 request하고 그에 대한 **response를 받는다.
  • 그러면 client는 Google Server가 어디에 있는지 어떻게 아는 것일까?
  • 바로 **DNS (Domain Name Server)**를 통해서 알아낸다.
  • ✅ ISP(Internet Service Provider, 쉽게 말해 통신사)마다 기본 DNS와 보조 DNS를 가지고 있으며, DNS를 통해 우리가 찾고자하는 IP주소를 찾을 수 있다.

2. DNS

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와 통신을 하는 비용을 줄이기 위한 수단
  • 저장 위치
    1. 브라우저
    2. 운영체제
    3. 라우터
    4. ISP(Internet Service Provider) - 3대 통신사

3. TCP 3 Way Handshake

  • 주소를 알아내면 TCP(Transmission Control Protocol) 세션 연결을 한다.

  • 순서는 다음과 같다.

    1. SYN
    2. ACK + SYN
    3. ACK

    (SYN: Sync, ACK: Acknowledgement)

4. HTTP request, response

  • 연결이 맺어졌으니 **HTTP (HyperText Transfer Protocol)**에 따라 요청을 하고 응답을 받는다.
  • client가 GET method로 요청을 하면 server가 index.html을 응답으로 받는다.
  • 그리고 비로소 메인 화면이 보여지게 된다.

5. 정리

구글 홈페이지가 브라우저에서 보이기 위한 단계

  1. 브라우저에 www.google.com을 입력한다.
  2. DNS를 통해 IP 주소를 획득한다.
  3. 획득한 IP 주소에 있는 서버와 TCP 3 Way Handshake를 진행한다.
  4. 통신을 맺은 서버에 HTTP Request를 한다.
  5. 서버에서 보낸 HTTP Response를 통해 html 파일을 받는다.
  6. 브라우저가 html을 분석해서 화면으로 그린다. (rendering)
  7. 받은 html을 parsing(구문 분석) 후 render해서 표시한다.

Copyright © 2021 Song_Artish