CS/Network

DNS, URI(URI, URL)

용용띠용 2025. 5. 2. 14:36

DNS(Domain Name System)

: 도메인 이름과 IP 주소를 서로 변환하는 연할을 수행하는 시스템이다.

- 도메인 이름(사람이 읽을 수 있는 이름)을 IP 주소(컴퓨터가 읽을 수 있는 주소)로 변환

 

- 필요성

: 컴퓨터 간 통신을 위해선 IP 주소가 필요한데 외우기 어렵고 주소 변경 시 새로운 IP에 접근할 수 없다.

     - DNS 사용 시 IP 주소가 변경되면 DNS 서버에 등록된 IP 주소만 바꾸면 접근 가능하다.

     - 도메인 이름 형태로 웹에 접속하는 것이 더 쉽다.

          도메인 이름 예시:  https://spartacodingclub.kr/ 

 

- 작동 순서

1) 원하는 이름의 도메인 구매 후 DNS 서버에 등록

2) 도메인 이름 입력 시 DNS 서버가 IP 주소 반환

     - 클라이언트가 도메인 이름으로 요청 시 DNS 서버가 IP 주소를 반환해 응답

3) 반환받은 IP 주소로 접속

 

 

URI(Uinform Resource Identifier)

: 인터넷 자원을 식별할 수 있는 문자열로 고유 식별자이다.

     - Uniform: 자원을 식별하는 통일된 방식

     - Resource: 자원(페이지, 텍스트, 이미지, 동영상, 파일 등)

     - Identifier: 식별자

- URL과 URN을 포함한다.

 

 

URL(Uinform Resource Locator)

: 자원의 위치를 의미한다.

 

- 특징

     - 프로토콜을 포함한다.

          - 예시: https://spartacodingclub.kr/

     - 일반적으로 도메인 주소로 알려져있다.

     - 대부분 URI와 URL을 같은 의미로 사용한다.

     - 대중화되어 많이 사용하는 방식이다.

 

- 한계

     - 자원 위치 변경 시 기존 URL은 사용할 수 없다.

     - 주소 변경 시 변경된 주소를 모르면 페이지에 접근할 수 없다.

     => 한계 극복을 위해 URN 등장

 

- 구조

*[ ]는 생략이 가능하다.*

scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]

https://www.google.com:443/search?q=스파르타+코딩클럽

     - scheme: 주로 프로토콜을 사용한다.

          - ex) http, https 등...

 

      - user[:password]: 사용자 정보이다.

          - URL은 보안에 취약해 사용하지 않는다. 

 

      - host[:port]: 호스트명: 도메인 명 또는 IP 주소를 직접 사용한다.

          - ex) www.google.com111.115.121.11 등...

          - 포트는 일반적으로 생략한다.

 

      - [/path]: 리소스의 경로

          - ex) https://nbcamp.spartacodingclub.kr/backend 

          - 계층 구조로 구성되어 있다.

 

      - [?query]: Query Parameter 또는 Query String 이라고도 한다.

          - ex) ?key1=value1&key2=value2&key3=value

          - key = valude 형태로 구성된다.

          - ?로 시작되고 &로 구분된다.

 

      - [#fragment]:  특정 위치로 이동할 수 있도록 하는 기능이다.

          - ex) http://www.google.com/index.html#image

 

- 브라우저 URL 입력 시 요청 순서

1) URL 입력한다: https://www.google.com:443/search?q=스파르타+코딩클럽&hl=ko

2) DNS 서버를  조회해 www.google.com에 해당하는 IP 주소 응답 받는다.

3) 웹 브라우저에서 HTTP 요청 메세지를 생성한다.

4) HTTP 메세지가 포함된 요청 패킷을 IP 주소(구글 서버)로 전송한다.

5) 구글 서버에서 HTTP 요청 메세지를 기반으로 응답 HTTP 메세지를 만들어 응답한다.

6) 응답 패킷(HTML이 응답으로 온다)이 도착하면 응답 결과가 브라우저에 그려진다.

 

 

URN(Uinform Resource Name)

: 자원의 이름을 의미한다.

 

- 특징

     - 자원 위치가 변경되어도 이름으로 자원을 찾기 때문에 동작이 가능하다.

     - 프로토콜을 포함하지 않는다.

 

- 한계

     - URN으로 실제 자원에 접근하는 방법은 대중화 되어있지 않아 잘 사용하지 않는다.