DNS(Domain Name System)의 원리
**출처 Youtube. 생활코딩 WEB2-Domain Name System-8.도메인 이름의 구조
일반적으로 우리가 웹 서버에 접속하려고 하면 IP address를 입력하여 접속하는게 일반적이지만, 매번 우리가 서버의 IP를 입력하여 접속할수는 없다. 그래서 만들어진 것이 'Domain name'이고 우리가 흔히 웹 브라우저상에서 말하는 '주소'를 말한다. 쉽게 말하면 IP address는 전화번호와 같고, 번호에 해당되는 이름이 'Domain name'이 되는 것이다.
예를 들어, 우리가 example.com이라는 주소를 웹 브라우저의 주소창에 입력하고 enter를 쳤을때 그림에서 보는 것과 같이 웹 서버 IP address인 93.184.216.34 로 접속되는 시스템이 'Domain Name System'이다.
이를 위해서는 먼저 저 93.184.216.34 의 IP를 가지는 웹 서버 컴퓨터가 DNS 서버(Domain Name System Server)에 example.com 이라는 도메인을 등록해야한다. 그러면 DNS 서버는 example.com 의 도메인을 찾는 요청이 왔을때 93.184.216.34 라는 IP address로 안내하게되는 것이다.
이를 클라이언트 입장에서 생각해보면, 먼저 우리가 example.com 이라는 주소를 입력하면 컴퓨터 안의 hosts 폴더에 example.com에 대응되는 IP address가 있는지 확인한다. 해당되는 IP가 존재하지 않으면 우리의 컴퓨터는 DNS 서버에 해당 도메인의 IP 정보를 요청하게 되는거고 93.184.216.34 라는 IP address를 인도받아 웹 서버 컴퓨터에 접속할 수 있게되는것이다.
도메인(Domain) 이름과 구조
도메인 이름에는 '.' 으로 구분되어 각각의 부분마다 이름이 있다.
맨 마지막에 '.'은 실제로는 존재하지만 일반적으로 생략되어있고, 가장 최상위에 있다고 해서 'Root' 도메인이라고 불린다.
그 다음 우리가 흔히 .com .net .kr 과 같이 Root 도메인 하위 레벨에 오는 도메인을 'Top-level' 도메인이라고 부른다.
'Top-level' 도메인 하위에 있는 .example과 도메인을 'Second-level' 도메인이라고 하고,
제일 첫번째에 있는 'blog'와 같은 도메인을 'Sub' 도메인이라고 칭한다.
이와같이 도메인의 각 부분들은 'Sub' < 'Second-level' < 'Top-level' < 'Root' 로 갈수록 상위 계층에 있는 도메인이다.
그리고 도메인의 각 부분들에 해당되는 DNS 서버가 존재한다. 각 DNS 서버는 바로 하위에 있는 도메인 서버의 리스트들만 알고 있다. 예를 들어, 'Root' 도메인 DNS 서버에는 .com .net .kr 와 같은 'Top-level' 도메인들의 DNS 서버의 IP 목록을 가지고 있고, 그 밑에 .example과 같은 'Second-level' 도메인의 DNS 서버 IP 목록은 가지고 있지 않다.