🎯 목표 : URL과 DNS의 개념 이해

📌 URL
- 인터넷 상에서 HTML이나 이미지 등 리소스의 위치를 특정하기 위한 서식.
- scheme, host, url-path로 구분할수 있다.
- scheme(protocol) : 통신 프로토콜을 나타낸다.
- host : 웹 서버의 이름이나 도메인, IP를 사용하며 주소를 나타낸다.
- path : 윈도우의 디렉토리나 폴더와 비슷하다 파일의 경로를 나타낸다.
- port : 웹 서버에 접속하기 위한 통로
- query : 웹 서버에 전달하는 추가 질문
- URI(Uniform Resource Identifier)은 URL의 기본요소에 query, bookmark를 포함한다.
- URI 는 URL을 포함하는 상위 개념이다.
📌 Domain name
- Host는 IP로도 나타 낼수 있다. IP는 Host의 식별자다.
- URL에서 Host를 IP로만 작성해서 이용해야 한다면 기억하기 매우 어렵다.
- 이를 Domain 이름으로 바꿔 쉬운 이름으로 기억할수 있다.
- 도메인을 관리하는 곳은 ICANN
- Registry 도메인 관리 기관
- Registrar은 중개 등록 업체
- gTLD - generic Top Level Domain - .com, .net, .org 등...
- ccTLD - country code Top Level Domain - .kr, .us, .jp 등 각국 네트워크 정보센터에서 관리한다.
📌 DNS
- DNS(Domain Name System)은 대여한 도메인 이름과 IP주소를 매칭해준다.
- 별도의 서버로 데이터베이스 시스템이며, 계층 적으로 분산되어 있는 구조이다.
- 도메인 네임 스페이스(Domain Name Space) : 규칙으로 도메인 이름 저장을 분산한다.
- 네임서버(Name Server)= 권한 있는 DNS서버 : 해당 도메인 이름의 IP 주소를 찾는다.
- 리졸버(Resolver) = 권한 없는 DNS서버 : 클라이언트의 요청을 서버로 전달하고 찾은 정보를 클라이언트에게 제공한다.
- DNS는 위 3가지 요소로 구성되어 있다.
- 리졸버는 이미 도메인이 캐시되어 있는지, 어떤 네임 서버에 요청을 보내 찾아야하는지 , 도메인을 찾지 못하는지 등 요청 사항에 대한 응답을 해주는 기능을 한다. 대표적으로 ISP(통신사)의 라우터에 DNS가 있다.

- User가 도메인을 입력하게 되면, ISP가 관리하는 DNS resolver로 라우팅 된다.
- 리졸버는 도메인을 DNS root 서버로 전달한다.
- root 서버는 TLD 도메인의 서버중 하나의 IP를 리졸버에게 다시 전달한다.
- 리졸버는 TLD 도메인 서버로 요청하며, TLD 도메인 서버는 해당 도메인과 연관된 네임 서버의 IP를 리졸버로 다시 전달한다.
- 리졸버는 네임 서버에 요청하게 되며, 도메인과 연관된 네임 서버는 해당 도메인의 IP 주소를 리졸버에게 다시 전달한다.
- 리졸버는 도메인에 해당하는 IP 주소를 다음 탐색에 빠르게 응답할수 있도록 일정 기간 캐싱한다.
- 웹 브라우저는 리졸버로 얻은 IP 주소로 도메인에 대한 요청을 전송한다.
👉도메인 네임 스페이스(Domain Name Space)
- DNS가 저장하고 관리하는 계층적 구조를 의미한다.
- root DNS 서버가 존재하고 그 하위로 연결된 노드가 연속해 이어진 계층구조다.

👉 네임서버 (Name Server)
- 전 세계에 13개의 Root DNS 서버가 구축되어 있다.
- Root DNS 서버는 ICANN이 직접 관리하는 서버며, TLD DNS 서버 IP 주소를 저장하고 안내하는 역할을 한다.
- TLD DNS 서버는 도메인 등록 기관이 관리하는 서버이며, Authoritative DNS 서버의 IP 주소를 저장하고 안내하는 역할을 한다.
- SLD DNS 서버는 도메인/호스팅 업체의 네임서버를 말한다. 실제 개인 도메인과 IP 주소의 관계가 기록되는 서버다.
- 위 3개의 서버는 권한이 있는 서버로, 리졸버는 권한 없는 DNS 서버다.