[Web] URI, URL, URN의 정의와 차이점에 대하여

오늘날의 인터넷에는 이미지, 동영상, 문서 등 다양한 종류들의 자원들이 웹 상에 존재하고 있습니다. 이렇게 다양한 자원들을 각각 식별하기 위해서 특별한 명칭 또는 주소가 필요하게 되었는데요. 이러한 고민에서 출발한 것이 URI, URL, URN이라는 용어들입니다. URN은 오늘날에는 거의 사용하지 않지만 웹 개발자라면 URI나 URL은 굉장히 많이 사용하게 되는 용어로 꼭 알아둬야 하는 개념입니다.

 

URI(Uniform Resource Identifier)란?

  • Uniform : 리소스 식별하는 통일된 방식
  • Resource : 자원, URL로 식별할 수 있는 모든 것
  • Identifier : 다른 항목과 구분하는데 필요한 정보

 

 

URI는 Uniform Resource Identifier의 줄임말로 번역해 보자면 리소스를 식별하는 통합된 방법, 즉 이미지, 동영상, 문서 같은 인터넷상의 자원을 식별하는 문자열을 의미합니다. 그래서 URI는 특정한 형식이 정해져있는게 아니라 추상적인 의미로써, URI는 URL과 URN을 포함하는 상위 개념이 됩니다. 따라서 URI는 URI가 사용하는 로케이터(locator), URN이 사용하는 이름(name) 또는 두 개 모두로 분류될 수 있습니다.

 

 

URL(Uniform Resource Locator)이란?

오늘날에 표준으로 사용되는 URL은 Locator(위치)라는 용어에서 유추할 수 있듯 URL은 인터넷에 자원의 위치를 지정하는데 사용되는 형식으로 어떤 자원이 어디에 위치해 있는지를 알려줍니다.

 

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

ex: https://www.example.com:8080/path/to/resource?name=value#section

 

  1. scheme(스킴) : 사용하는 프로토콜(HTTP, HTTPS)을 의미하고 리소스에 어떻게 요청 및 접근할 것인지를 명시하는 부분입니다.
  2. user, password(사용자정보) : 서버에 접근하기 위한 사용자의 이름, 비밀번호를 의미합니다.
  3. host(도메인 혹은 IP) : 접속하고 싶은 서버 컴퓨터를 의미합니다. ex) google.com (도메인)
  4. path(경로) : 서버에 제공하는 자원의 경로 요청하는 경로를 MVC패턴에서 숨길 수 있습니다.
  5. query(요청 메시지) : 클라이언트가 서버에 요청 시 전송할 데이터 (KEY+VALUE)입니다.
  6. fragment(세그먼트) : 서브 리소스에 대한 방향을 제공하는 식별자입니다.

 

 

URN(Uniform Resource Name)이란?

URN은 Name이라는 용어에서 유추할 수 있듯 인터넷상의 자원을 고유하게 식별하기 위한 표준화된 이름을 의미합니다. URL과 달리 URN은 자원의 위치 정보를 나타내지 않고, 자원의 고유한 식별자를 제공합니다. 그래서 자원의 이름이나 식별자가 변하지 않아야 합니다. 오늘날에는 잘 사용하지 않습니다.

 

형식 : urn:<NID>:<NSS>

ex: urn:isbn:0432550473

 

  1. urn : URN이라는 것을 명시하는 접두사입니다.
  2. NID : URN이 속해있는 네임스페이스를 의미합니다.
  3. NSS : 네임스페이스 내에서 자원을 고유하게 식별하는 문자열을 의미합니다.

즉 위의 예시에서의 urn:isbn:0432550473은 isbn 네임스페이스에서 "0432550473"이라는 문서를 식별하는 URN입니다.

 

 

댓글

Designed by JB FACTORY