TIL 31. URL 과 DNS

CHAEIN·2021년 7월 29일
0

Network

목록 보기
1/8
post-thumbnail

01. URL

URL은 웹에 존재하는 특정 데이터를 나타내는 문자열이다.

https://search.shopping.naver.com/search/category?catId=50000174

위의 URL을 살펴보면 다음과 같은 요소들로 이루어져있다.

search.shopping.naver.com 호스트 : 전세계 서버 중 하나의 서버를 특정
/search/category패스 : 서버에 있는 데이터 중 원하는 데이터를 특정
catId=50000174 쿼리 : 데이터에 관한 세부적인 요구사항, 각각의 속성은 =로 묶여있고 여러개의 속성은 &로 연결된다.

url을 웹서버 주소창에 입력하고 엔터를 치면 웹 브라우저는 URL에서 호스트부분을 보고, 전 세계의 수많은 서버들 중에서 정확히 어느 서버와 통신을 해야 하는지를 찾는다. 이때 호스트 부분에 적힌 것을 도메인 네임(Domain Name)이라고 한다. 특정 서버를, 외우기 어려운 IP 주소를 외우기 쉬운 문자열로 나타낸 것이 바로 도메인 네임이다.

02. 도메인 네임

외우기 어려운 IP 주소를 외우기 쉬운 문자열로 나타낸 것. 하나의 도메인 네임은 여러 개의 도메인으로 구성된다. 상위의 도메인일수록 도메인 네임 중에서 오른쪽에 위치한다.

1. 루트 도메인 : 루트 도메인은 모든 도메인이 갖는 최상단 도메인으로 '빈문자열'로 나타내며 대부분 생략한다. 루트 도메인까지 나타내려면 도메인 네임의 오른쪽 끝에 점을 하나 더 찍어주면 된다.

2. Top-Level Domain : 도메인 끝에서 일반적으로 볼 수 있는 .kr, .jp, .net, .gov 등이 여기에 해당한다. Top-Level Domain은 사이트가 속한 국가 또는 사이트가 제공하는 서비스의 카테고리를 나타낸다.

3. Second-Level Domain : naver.com에서 naver가 여기에 해당한다. 서비스를 대표하는 이름을 의미한다.

4. Third-Level Domain : www가 여기에 해당한다.

5. Fourth-Level Domain : 간혹 test.www.~~ 처럼 Thirt level Domain 앞쪽에도 도메인이 생겨날 수 있는데 자주 사용되지는 않는다.

이처럼 도메인 네임을 쓰는 것은 계층적인 구조를 이루고 있는 각 도메인의 이름을 오른쪽부터(상위 도메인부터), 왼쪽으로(점점 하위 도메인으로), 점(dot)으로 구분하면서 써나가는 작업이다.

03. DNS(Domain name system)

DNS 는 도메인 네임만으로도 특정 컴퓨터와 통신할 수 있도록 본격적인 통신을 시작하기 전, 도메인 네임을 IP 주소로 변환해주는 절차를 의미한다.

  1. 일단 내 컴퓨터는 기본적으로 설정된 네임 서버(Name Server)에 codeit.kr 의 IP 주소를 알려달라는 요청을 보낸다. 네임 서버란 도메인 네임을 IP 주소로 변환하는 과정에 참여하는 서버들을 의미한다. 내 컴퓨터가 사용하는 네임 서버에 관한 설정은 OS마다 다른데 기존의 설정에서 다른 네임 서버로 바꾸는 것도 가능하다.

  2. 내 컴퓨터의 요청을 받은 네임 서버는 루트네임서버에 예를들어 '.com'로 끝나는 도메인 네임들을 관리하는 네임 서버의 주소를 알려달라는 요청을 보낸다. 그럼 루트 네임 서버는 '.com' 네임 서버의 IP 주소를 알려준다.

  3. 그럼 네임 서버는 '.com' 네임 서버에게 'naver.com'의 IP 주소를 알려줄 수 있는, 'naver.com' 네임 서버의 IP 주소를 알려달라고 요청합니다. 그럼 '.com' 네임 서버는 'naver.com' 네임 서버의 IP 주소를 알려준다.

  4. 그럼 네임 서버는 'naver.com' 네임 서버에게 'naver.com'의 IP 주소를 알려달라고 요청합니다.
    최종적으로 네임 서버는 'naver.com'의 실제 IP 주소를 응답으로 얻게 된다.

  5. 네임 서버는 컴퓨터에게 naver.com의 IP 주소를 알려주고, 컴퓨터는 이 IP 주소를 갖고 해당 서버와 본격적인 통신을 시작한다.

매번 도메인에 접근할 때마다 이러한 작업이 진행되지는 않는다. 이미 한번 IP 주소를 받은 후에는 컴퓨터의 OS가 그 주소를 별도로 저장하여 사용하기 떄문이다. DNS 이후 컴퓨터가 어떤 서버와 통신해야하는지를 식별하면 웹브라우저는 해당 서버로 리퀘스트를 보낸다. 이때 URL에서 path 이후 부분들을 리퀘스트에 담아서 보낸다. 리퀘스트를 받은 서버는 리퀘스트에 담긴 path 이후의 부분들을 보고 그것이 의미하는 데이터를 찾고 그 결과를 리스폰스에 담아 보낸다. 웹 브라우저는 그 데이터를 해석하여 화면에 보여준다.

0개의 댓글