All Articles

URI

URI URL URN

자주 혼동되어 사용되는 URI 와 URL에 대해 알아봄으로써
개념을 확실히 다져보자.

좋은 웹 개발자가 되기 위해서는 인터넷 동작에 관한 이해는 필수이다. URI와 URL은 네트워크의 기본이 되는 개념이지만 여전히 적지 않은 사람들이 이 두 단어를 혼동하여 사용한다. 이 두 단어가 혼동이 된 채로 사용이 되는 이유는 서로 어느정도의 연관성이 있기 때문이다. URL은 URI에 포함되는 개념이다. 모든 URL은 URI 이지만, 모든 URI 는 URL이 아니다.

자 그럼 URI, URL을 비롯하여 URN에 대해 알아보겠다.

Table of Contents

링크를 클릭하면 해당 내용으로 이동합니다

URI

Uniform Resource Identifier 통합 자원 식별자
광활한 웹세상에서 우리가 원하는 특정 자원(Resource)을 어떻게 찾아낼 것인가?
한국인은 주민등록번호, 미국인은 SSN로 개개인의 유니크한 번호를 부여받는다. 이처럼 웹의 수많은 정보들 또한 하나 하나 유니크하게 구분짓는 식별법이 필요하다. 이는 URI를 통해 가능해진다. URI는 URL과 URN을 포함한 개념이다. 즉, URI는 이름이나 로케이터가 될 수 있다.

Diffrences between URI URN URN

URI Format

URI는 자원을 식별하기 위해 사용되는 표준이니 만큼 정해진 포멧이 있다.
<scheme>://<authority><path>?<query>
* Scheme은 프로토콜일 필요가 없다.

e.g.

URI Parameter

  • Scheme
    Scheme은 Client가 원하는 리소스에 접근하는 방법을 알려준다.
    어떤 프로토콜을 사용하여 서버에 접근해야 하는가에 관한 정보이다.
    대소문자를 구분하지 않는다.
  • userInfo
    User name and authorization information
  • host
    host name 이나 IP Address
    리소스를 호스팅하고 있는 장비에 관한 정보이다.
  • port
    Port number.
    대부분의 Scheme은 기본 port를 갖고 있다.

    PortApplicationProtocol
    20FTP dataTCP
    21FTP control
    22SSH
    23Telnet
    25SMTP
    53DNSTCP, UDP
    67, 68DHCPUDP
    69TFTP
    80HTTPTCP
    110POP3
    161SNMPUDP
    443SSLTCP
  • path
    Resource의 경로.
    서버에 위치한 수많은 리소스중 요청받은 리소스가 어떤 것인지 명시한다. 경로의 계층은 / 문자로 구분해준다. 경로조각마다 자체 파라미터를 가질 수 있다.
  • parameter
    이름 : 값으로 구성된다.
    여러개를 명시할때는 ;(semicolon)으로 구분하여 준다. 경로만으로는 원하는 리소스를 찾기에는 정보가 부족할 경우 파라미터를 통해 접근한다.
  • query
    Scheme에서 App(검색엔젠, DB, 게시판 등)에 파라미터를 전달하는데 쓰인다. URL의 끝에 ? 문자로 구분한다. 질의를 통해 찾는 리소스의 범위를 정해줄 수 있다.
  • fragment
    # 문자로 구분한다.
    리소스를 좀더 작은 조각으로 나누어 접근하도록 도와준다. 텍스트 문서의 특정 구절에 접근하고자 하는 경우에 사용되기도 한다.

Return to the ToC

URL

Uniform Resource Locator 통합 자원 위치
리소스 로케이터 즉 주소를 의미한다. “리소스를 어디서 찾을 수 있는지”에 대한 위치 정보를 알려준다. 위치 기반이기에 해당 위치에 존재했었던 자원이 사라지거나 변경될 수 있다. 그로 인해 특정 주소를 입력하여 자료를 찾아보았지만 원하는 정보를 얻지 못할 수도 있다.

URL 문법

URL 문법은 어떤 Scheme을 사용하느냐에 따라 달라진다. 각각의 문법은 아래와 같다.

Return to the ToC

URN

Uniform Resource Name 통합 자원 이름
특정 리소스에게 주어진 유니크한 이름이다. 이 이름은 영속성을 지닌다. 중복되는 값이 존재하지 않는다. URN을 이용한다는 것은 자원을 이름을 통해 찾는 것을 의미한다. URN은 URL로 부터 독립적이다. 하지만 URL보다 많이 사용되지 않는데 그 이유는 파일에 대한 위치를 저장할 장비가 필요할 뿐더러 대부분 URL을 사용하는 환경에서 URN으로 표준화하는 것은 많은 시간과 변화를 필요로 하기 때문이다.

Return to the ToC

리소스 찾기

원하는 리소스 (document, images, videos, books etc) 를 찾기 위해 어떻게 접근할 것인가?
우리는 누군가를 찾을때 그 사람의 이름이나 그 사람이 살고 있는 주소를 통해서 찾는다. 대부분의 사람들은 살아가면서 개명을 잘 하지 않는다. 하지만 살고 있는 장소는 자주 변경된다. 인터넷 상에서 존재하는 리소스도 이와 같다.

예를 들어보겠다.
지구상에서는 Ironman이라는 유일무이한 영웅이 살고 있다. 우리는 Ironman을 찾아야 하는데 전 세계적으로 아이언맨이라는 이름 (URN) 을 가진 자는 한 명 뿐이기에 해당 이름을 통해 쉽게 찾을 수 있다. 혹은, 아이언맨이 살고 있는 주소를 아는 경우라면 주소 (URL) 로 찾아가면 된다.

이름: Ironman (Tony Stark)
주소: 10880 Malibu Point, CA 90265

Find Ironman
Ironman illustrated by.Yuri Krasnoshchock

2019년 Ironman이 플로리다로 이사했다고 한다. 현재 10880 말리부에는 Captain America가 이사하였다. 누군가가 아이언맨을 만나기 위해 기존의 주소로 찾아간다면 엉뚱하게도 캡틴 아메리카를 만나게 될 것이다. 이처럼 URL에 있는 리소스는 충분히 변경될 수 있다.

Find Captain America
Captain America illustrated by.Yuri Krasnoshchock

Return to the ToC

References