네트워크/개념

[NW] #6. URL, DNS 동작 과정

코딩하는상후니 2022. 9. 28. 17:42

 

 

 


 

 

 

* URL ( Uniform Resource Locator )

 
 
=> 네트워크 상에서 자원이 어디에 위치하는지 알려주는 규약.
 
=> URL 은 웹 사이트 주소 뿐만 아니라 컴퓨터 네트워크 상의 자원을 모두 나타낼 수 있다.
 
 
 
 
 
 
 
 
 

* DNS ( Domain Name System )

 
 
 
 
=> 해당 도메인 네임을 숫자로 이루어진 IP 주소로 변환해주는 역할.
 
=> 보통 인터넷 회사에서 DNS 서버를 가지고 있고
사용자가 도메인 이름으로 요청을 보내면 해당 서버에서
'DNS 테이블' 을 사용해 IP 주소로 변환해준다.
 
 
 
 
 
 
 
 
 

* 루트 DNS

 

https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/statboard/dns/dnsRoot/currentWorld.jsp

 

 

 

 

 

 

* 도메인 체계

 

https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/resources/domainInfo/domainInfo.jsp

 

 

 

 

 

 

 

 

 

* Domain Name 과 URL 차이점

 

 

 

=> Domain Name 은 위 그림에서 분홍색으로 표시된 영역이다.
IP 주소를 변환할 수 있는 DNS 경로를 포함한 이름이라고 보면 된다.
 
 
할애받은 IP 주소의 Host ID 는 그림의 주황색 부분으로 구별한다.
 
예시를 든 Naver 는 HostName 을 사전=dict, 뉴스=news 로
Host 를 구분해놓았다고 추측할 수 있다.
 
 
 
 
반면, URL
Domain Name 을 포함해서 프로토콜 정보, 해당 정보의 경로 및 파일 등이 포함된 문자열이다.
 
 
 
 
 
도메인 네임 뒤쪽 부분은 약간 생소할 수 있는데
해당 링크를 참고했다. 하나하나 살펴보자.
 
 
 
 
 
 

* path ( / )

 
=> 파일의 경로를 가리키며 / 기호를 써서 구분한다.
파일명도 나타낼 수 있다.
 
 
 
 
 
 

* parameter ( ? )

 
=> 쿼리 스트링이라고도 하며 key = value 형태로 이루어진다.
? 기호 뒤에 나열되고 & 기호로 구분지어 여러 개가 존재할 수 있다.
 
 
 
 
 
 

* fragment ( # )

 
=> 해시태그 ( Hashtag ) 로도 유명하다. 앵커 ( Ancher ) 라고도 부른다.
 
해시태그를 이용해 원하는 요소의 id 를 링크로 연결하면
스크롤 이동 없이 바로 해당 위치로 이동한다.
 
 
 
 
 
 
 
 
 
 
 
 

* Domain Name 을 쓰는 이유는 뭘까??

 
=> 우리가 문자보다 숫자를 더 기억하지 못하기 때문이다.
 
전화번호부 예시를 많이 든다.
 
IP 주소로 구성한다면 더 힘들고 복잡하게 웹사이트를 방문해야할 것이다.
 
 
따라서,
도메인 네임을 부여받고 해당 도메인 네임으로 어떤 사이트에 접속해야할 때,
해당 도메인 네임을 IP 주소로 변환해야하는데 이것을 DNS 가 하게 된다.
 
 
 
이제 어떤 방식으로 IP 주소를 반환해주는지 살펴보자.
 
 
 
 
 
 
 
 
 
 
 
 
 

* DNS 동작 과정

( Window OS 기준 )

 

 

 

 

 

1. 메모리의 DNS Cache 검색
( 해당 정보는 매우 중요한 보안 이슈라 OS 가 관리한다. )
 
 
2. Host file 검색
 
 
 
3. 없다면 ISP ( Internet Service Provider ) 가 제공하는 DNS 에게 쿼리
 
 
 
4. 만약 ISP 의 DNS 가 요청한 도메인 네임이 캐시에 저장되어있지 않다면,
다른 상위 계층의 DNS 에게 요청
 
 
 
 
5. 해당 도메인을 관리하는 DNS 목록을 Root DNS 에게 요청
 
=> Root DNS 는 해당 도메인 계층을 관리하는 DNS 서버들의 목록을 전송해줌.
 
=> 이후,
ISP DNS 는 자신에게 가장 가깝거나 유리한 쪽을 선택해 탐색해나감.
 
 
 
 
 
6. 이런 방식으로 하향식 탐색을 통해
호스트 Name 까지 해당하는 IP 주소를 반환하게 한다.
 
 
 
 
7. 이런 과정을 최소한으로 반복하기 위해 DNS 캐시 저장
 
이 때, 주의할 점은
응답한 데이터와 더불어 '유효 기간' 이 함께 적용된다.
 
즉,
IP 주소 + '유효 기간'
 
 
 
 
 
 
 
 
 
 

 

* DNS 캐시 테이블

 
cmd 를 실행해 확인해볼 수 있다.

 

ipconfig/displaydns

 

=> DNS 캐시를 display 한다.

 

 

 

 

ipconfig/flushdns

 

=> 모든 DNS 캐시 내용을 지운다.

 

 

 

 

 

 

 

 


 

 

참고 자료