현재 51억명이 넘는 사용자들이 인터넷을 사용하고 있으며, 웹사이트의 개수는 무려 19억개 이다.
따라서 많은 웹사이트들을 관리하기 위해 웹사이트도 주소가 있다.
웹사이트들은 모두 고유의 IP 주소를 가지고 있으며, 이를 통해 웹사이트에 직접 들어갈 수 있다.
IP는 0.0.0.0부터 255.255.255.255 까지 존재하며, 이론적으로 (2^8)^4 = 4,294,967,296 (약 42억) 개의 웹사이트가 존재한다. (IPv4기준)
IP 주소를 사용하면 별다른 도움 없이 바로 서버에 접속하여 우리가 원하는 웹사이트를 불러올 수 있다.
하지만 너무 큰 단점이 존재하는데, 외우기 어렵다는 것이다.
우리가 google에 가고 싶으면 google.com을 입력하면 되고, naver에 가고 싶으면 naver.com을 입력하면 된다.
그 외의 무수히 많은 웹사이트들을 이런 직관적인 방법으로 찾아갈 수 있는데, 이런 방법을 사용하지 않고 IP를 사용하려면 12개의 숫자를 일일이 기억해야 할 것이다.
따라서 우리는 사용성을 위해 IP주소를 사용하는 대신 문자로 이루어진 domain을 사용하며, 이 때 사용되는 것이 DNS이다.
DNS는 Domain Name System으로 복잡한 IP와 간단한 domain을 변환해주는 시스템이다.
예를 들어 우리가 google.com을 주소창에 입력했다고 가정해보자.
우리에게 필요한 건 google.com의 IP주소이지만 아직 google.com의 IP 주소를 모르기 때문에 DNS를 통해 google.com의 IP 주소를 받아온다.
그런 후에는 그냥 그 IP 주소를 따라가기만 하면 된다.
하지만 DNS를 이용해 domain을 IP로 바꾸는 과정이 사실 굉장히 복잡하다.
이를 더 자세히 써보겠다.
1. DNS cache 확인
만약 이전에 이미 google.com을 방문했다면, 그 브라우저에 해당하는 정보들이 cache에 저장되어 있을 것이고, 당연히 IP 주소 역시 cache에 저장되어 있을 것이다.
가장 먼저
a. 브라우저 cache
b. 거기에 없다면 OS cache
c. 거기에도 없다면 router cache
에서 google.com에 해당하는 IP 주소를 찾는다.
그런데도 만약 IP주소가 없으면 DNS server로 간다.
2. DNS server 확인
Cache에 해당 정보가 없으니 DNS server에 해당 IP를 요청한다.
DNS Server ⇒ Root Name Server ⇒ .com Name Server ⇒ google.com Name Server로 이동하며 IP 주소를 획득한다.
그 결과로 드디어 google.com에 해당하는 IP 주소를 얻게 된다.
그 다음에는 웹 서버에서 HTML, CSS, JS 등의 파일을 다운받아 브라우저가 이러한 정보를 실제로 띄우게 된다.
쉬워보였는데 되게 어렵다.
사실 아직도 몰라...
'CS > Computer Science' 카테고리의 다른 글
CSR과 SSR의 차이 (0) | 2022.01.23 |
---|---|
네트워크 1.2 웹 서버의 IP주소를 DNS 서버에 조회한다. (0) | 2021.12.31 |
네트워크 1.1 HTTP 리퀘스트 메시지를 작성한다. (0) | 2021.12.27 |
웹사이트 렌더링은 어떻게 되는가? (2) | 2021.12.10 |
OSI 7계층이란? (0) | 2021.11.29 |