인터넷 상에서 컴퓨터들은 서로를 IP주소로 식별한다. 따라서 다른 컴퓨터와 인터넷 통신을 하려면, 상대 컴퓨터의 IP주소를 알아야 한다. 하지만 IP주소를 기억하는것은 어려운 일이다.
이를 해결하기 위해 등장한 것이 DNS(Domain Name Server)다.
DNS는 사람들이 IP주소 대신 호스트 네임을 기억했다가, 호스트 네임으로 특정 컴퓨터에 호스트 네임으로 요청을 할 경우, 호스트 네임을 매핑되어있는 IP주소로 변환시켜 요청을 보낸다.
DNS 서버를 사용하면 사람이 192.168.1.1(IPv4의 경우)과 같은 IP 주소 또는 2400:cb00:2048:1::c629:d7a2(IPv6의 경우)처럼 영문과 숫자로 된 복잡한 IP 주소를 기억할 필요가 없다.
웹 브라우저에 www.naver.com을 요청하면, 웹 브라우저 캐시에 www.naver.com에 대한 IP주소가 있는지 찾아봄. (캐시는 한번 가져온 값을 저장하고 있다가 일정 시간이 지나면 삭제함.)
캐시에 있으면 해당 IP정보로 요청하고, 없으면 다음 단계로 넘어감.
hosts파일에 www.naver.com 정보가 있는지 검색함. (hosts 파일은 운영 체제가 호스트 이름을 IP 주소에 매핑할 때 사용하는 컴퓨터 파일이다. 이 hosts 파일은 플레인 텍스트 파일이며 전통적으로 hosts라는 이름을 사용한다.)
hosts파일에 있으면 해당 IP정보로 요청하고, 없으면 다음 단계로 넘어감.
Local DNS에 www.naver.com에 대해 물어봄.
Local DNS에 www.naver.com의 정보가 없을 시, Root DNS에 물어봄.
Root DNS가 www.naver.com의 정보가 없다면, Local DNS에 .com DNS 정보를 제공함.
Local DNS는 .com DNS에 www.naver.com에 대해 물어봄.
.com DNS에 www.naver.com에 대한 정보가 없다면, Local DNS에 naver.com DNS 정보를 제공함.
Local DNS는 naver.com DNS에 www.naver.com에 대해 물어봄.
naver.com DNS는 Local DNS에 www.naver.com 도메인에 대한 IP정보를 제공함.
Local DNS는 www.naver.com에 대한 캐시를 업데이트함.
Local DNS는 웹 브라우저에게 www.naver.com 도메인에 대한 IP정보를 줌.
웹 브라우저는 www.naver.com에 대한 캐시를 업데이트함.
사용자는 웹 브라우저는 www.naver.com 도메인의 IP주소를 이용해 웹 사이트에 접속함.