URL
URL(Uniform Resource Locator) 은 웹에 게시된 어떤 자원을 찾기 위한 브라우저에서 사용되는 메커니즘 이다. 인터넷상에서 HTML이나 이미지 등 리소스의 위치를 특정하기 위한 서식으로써 탄생 하였다.
브라우저의 주소창에 입력한 URL은 서버가 제공되는 환경에 존재하는 파일의 위치를 나타낸다.
예를 들어 https://sangwonee.tistory.com:443 사이트에 접속하게되면, 주소가 가리키는 서버의 기본 폴더를 뜻한다.
URL은 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타낸다. URL은 scheme, hosts, url-path로 구분할 수 있다.
scheme은 통신 방식(프로토콜)을 결정한다. 일반적인 웹 브라우저에서는 http(s)를 사용한다.
hosts는 웹 서버의 이름이나 도메인, IP를 사용하며 주소를 나타낸다.
url-path는 웹 서버에서 지정한 루트 디렉토리부터 시작하여 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타낸다.
또한, 일반적으로 URL의 기본 요소인 scheme, hosts, url-path에 더해 query, bookmark를 포함한다.
query는 웹 서버에 보내는 추가적인 질문이다. http://www.google.com:80/search?q=Java 를 브라우저의 검색창에 입력하면, 구글에서 Java를 검색한 결과가 나타난다.
| 부분 | 명칭 | 설명 |
| file://, http://, https:// | scheme | 통신 프로토콜 |
| 127.0.0.1, www.google.com | host | 웹페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP |
| :80, :443, :3000 | port | 웹 서버에 접속하기 위한 통로 |
| /search, /user/username/Desktop | url-path | 웹 서버의 루트 디렉토리로부터 웹 페이지, 이미지, 동영상 등의 파일이 위치까지의 경로 |
| q=java | query | 웹 서버에 전달하는 추가 질문 |
브라우저의 검색창을 클릭하면 나타나는 주소가 URI입니다. URI는 URL을 포함하는 상위개념이다.

Domain name
웹사이트의 주소를 https://142.250.207.78/weather/index.html 처럼 IP 주소로만 작성해서 이용해야 한다면 기억하기에 매우 어렵다.
호스트이름과 도메인 이름으로 바꾸어 기억하기 쉬운 이름을 사용할 수 있다.

웹 브라우저를 통해 특정 사이트에 진입을 할 때, IP 주소를 대신하여 사용하는 주소가 있다. 만약 IP 주소가 지번 또는 도로명 주소라면, 도메인 이름은 해당 주소에 위치한 상호로 볼 수 있다.

터미널에 명령어 nslookup으로 google.com 의 IP주소를 확인할 수 있다.
IP주소는 142.250.206.238이고 ,도메인 이름은 google.com이다. 크롬 브라우저에 IP주소를 입력하면, google.com으로 이동할 수 있다.
도메인은 ICANN이라는 비영리 단체가 관리하고 있다. 그 밖의 조직으로 registry 와 registrar 가 있다.

Registry는 도메인 관리 기관이다. 각 도메인 정보의 데이터베이스를 관리하고, registry에 따라 도메인 종류가 달라진다.
Registrar는 중개 등록업체 이다. Registry의 데이터베이스에 직접 도메인 정보를 등록 가능하다.
도메인은 두종류로 나뉜다.
- gTLD – generic Top Level Domain
- ccTLD – country code Top Level Domain
gTLD는 전세계에서 등록이 가능한 .com, .net, .org, .edu, .gov, .int, .mil 입곱 가지로 시작하여 현재까지 .biz, .name, .info 등이 추가되어 왔다. gTLD 의 경우 VERISIGN 등의 회사가 registrar이고, 국내 ICANN 인증 registrar 는 가비아, 후이즈 등이 있다.
ccTLD 의 경우 .kr, .us, .jp 등 200개 이상이 있다. 각국 네트워크 정보센터에서 위임받아 관리하며 .kr 의 경우 한국인터넷진흥원이 registry로 그리고 registrar는 가비아, 후이즈 등이 있다.
도메인 주소는 오른쪽부터 왼쪽으로 최상위 도메인과 여러 개의 도메인으로 구성되어 있다.
탑 레벨 도메인은 .com, .kr, .net 등 도메인의 가장 오른쪽에 위치하는 도메인이다. kr, us와 같은 국가 코드를 사용하는 도메인은 co, ac와 같은 2단계 도메인과 함께 사용되기도 한다.
서브도메인은 일반적으로 `www, m`와 같은 제일 왼쪽에 위치한 도메인들이 해당된다. 호스트 이름으로 불리기도 하는 서브도메인은 웹 사이트의 특정 부분을 나눠서 보여줘야 하는 경우 사용한다.
DNS
DNS는 Domain Name System의 줄임말로, 사람이 기억하기 쉬운 `www.naver.com`과 같은 도메인을 컴퓨터가 이해할 수 있는 ‘125.209.222.142`으로 변환하여 요청이 원하는 곳에 도달할 수 있도록 도와주는 시스템이다
Domain Name Sever(zone)
브라우저의 검색창에 도메인 이름을 입력하여 해당 사이트로 이동하기 위해서는, 해당 도메인 이름과 매칭된 IP 주소를 확인하는 작업이 반드시필요하다. 네트워크에는 이것을 위한 서버가 별도로 있다.
도메인을 관리하는 도메인 서버(존)이다.
대표적으로 모든 도메인을 관리하는 루트 네임 서버, TLD를 관리하는 네임 서버, 권한 있는 네임 서버로 구성된다.
안정성을 위해 최소한 두 개 이상의 서버가 하나의 도메인 네임을 담당한다. 여러 개의 서버를 구성한다면 과부하 및 서비스 거부 공격에 대해 효율적으로 대응할 수 있다.
루트 도메인 네임 서버는 각 최상위 도메인 네임 서버들의 주소를 알고 있으며 최상위 도메인 네임 서버는 권한 있는 네임 서버의 주소를 알고 있습니다.
권한 있는 네임 서버는 `example.com` 등의 도메인 IP 주소 및 도메인 정보를 관리하는 권한을 가진 서버이다.
DNS Lookup
- 브라우저는 리졸버에게 IP 주소를 요청한다. 리졸버는 요청받은 도메인의 IP 주소를 찾기 위해 여러 네임 서버에 반복적인 질의를 하는 이름 서버이다. 리졸버는 우선 기존에 찾아본 도메인 정보가 내용이 담긴 캐시 파일을 살펴본다. 해당되는 도메인 정보가 있다면 즉시 IP 주소를 리턴합니다. 해당되는 도메인 정보를 찾을수 없는 경우 2번을 진행한다.
- DNS 리졸버는 IP 주소를 얻기 위해 네임 서버들에게 재귀적인 쿼리를 진행한다. 루트, 탑 레벨, 권한 있는 도메인 서버에 차례대로 쿼리를 진행하며 IP 주소를 알아낸다. 이때 리졸버는 쿼리수를 줄일 목적으로 기록되지 않은 도메인 네임 서버들의 주소를 저장하기도 한다.
- 마지막으로 리졸버는 전달받은 도메인의 IP 주소를 기록하고 브라우저에게 전달한다.