본문 바로가기

코딩 노트/JAVASCRIPT

[ 웹 개념 ] URI / URL / URN 의 차이

 

URI (Uniform Resource Identifier)

서버 리소스 이름은 통합 자원 식별자(uniform resource identifier) 혹은 URI라고 불린다.

URI의 'I'가 Identifier(식별자)이다. 인터넷에 있는 자료의 id라고 생각하면 좋다.

서로 다른 자료가 같은 이름을 가지고 있으면 안되기 때문에 URI는 유일해야한다. 

그리고 이 URI에는 두 가지 형태가 있는데 이것이, URL, URN이라는 것이다.

 

URI를 정리하자면, 다음과 같다.

  • URI는 웹상의 자원들을 식별할 수 있는 이름표같은 역할을 한다.
  • URI의 하위 개념으로는 URL과 URN이 있다.

여기서 자원(Resource)이란, 웹상에서 우리가 보는 이미지, 이 블로그의 게시글, 기타 웹 상에 접근할 수 있는 모든 것들을 통틀어서 칭하는 단어이다.

 

 

URL (Uniform Resource Locator)

 

통합 자원 지시자(uniform resource locator)는 URI의 가장 흔한 형태이며,

네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다.

즉, 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다.

흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라

컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다.

URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술하며,

URL은 리소스가 정확히 어디에 있고, 어떻게 접근할 수 있는지 분명히 알려준다.

예를 들자면 아래와 같다.

 

  • http://naver.com - 네이버 사이트의 URL
  • http://img.naver.net/static/www/dl_qr_naver.png - 네이버 앱 QR 코드의 이미지에 대한 URL
  • http://news.naver.com/main/main.nhn?mode=LSD&mid=shm&sid1=104 - 네이버 뉴스에서 분류 중 "세계" 주제의 기사에 대한 URL

 

 

URI와 URL의 차이

위의 그림을 통해 URI와 URL의 차이를 정리해보자면,

예를 들어 http://opentutorials.org:3000/main?id=HTML&page=12 라고 되어있는 주소가 있다.

 

여기서 http://opentutorials.org:3000/main 까지는 URL이면서, URI이고,

http://opentutorials.org:3000/main?id=HTML&page=12 이것은 URL이 아닌, URI라고 할 수 있다.

 

그 이유는 URL 자원의 위치를 나타내 주는 것이고,

URI 자원의 식별자인데

?id=HTML&page=12 이 부분은 위치를 나타내는 것이 아니라

id값이 HTML이고 page가 12인 것을 나타내주는 식별하는 부분이기 때문이다.

 

통상적으로 URL이라고 얘기를 하지만, 정확하게는 URI라고 하는 것이 맞다.

 

차이에 대한 이해를 위한 다른 예

인터넷 상의 자원의 위치와 식별자.

언뜻 보면 같은 것을 의미하는 듯하다.

하지만 '자원의 위치'라는 것은 결국은 '하나의 파일 위치'를 나타내는 것이다.

 

http://img0.gmodules.com/ig/images/korea/logo.gif

이와 같은 형식은 logo.gif라는 인터넷상의 자원 위치를 의미 한다.

이는 URI이면서도 URL라고 말할 수 있다.

 

http://endic.naver.com/endic.nhn?docid=1232950 를 보면,

'http://endic.naver.com/'라는 서버에 위치한

endic.nhn파일은 query string인 docid의 값에 따라 여러가지 결과를 나타낸다.

여기서 URL은 endic.nhn의 위치를 표기한 http://endic.naver.com/endic.nhn까지이다.

원하는 정보에 도달 하기위해서는 ?docid=1232950라는 식별자(Identifier)가 필요한 것이다.

결국 위의 http://endic.naver.com/endic.nhn?docid=1232950 주소는 URI이긴 하지만 URL은 아니다.

 

또다른 예를 들면,

http://endic.naver.com/endic.nhn?docid=1232950

http://endic.naver.com/endic.nhn?docid=1232690

위 두 주소는 같은 URL이고 다른 URI라고 할 수 있다.



 

 

 

URN (Uniform Resource Name)


URI의 두 번째 형태는 유니폼 리소스 이름(uniform resource name)이다.

URN은 영속적이고, 위치에 독립적인 자원을 위한 지시자로 사용하기 위해

1997년도 RFC 2141 문서에서 정의되었다.

URN은 콘텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다.
이 독립적인 URN은 리소스를 여기저기로 옮기더라도 문제없이 동작한다.
리소스가 그 이름을 변하지 않게 유지하는 한,

여러 종류의 네트워크 접속 프로토콜로 접근해도 문제없다.

 


예를 들어, 다음의 URN은 인터넷 표준 문서 'RFC 2141'가 어디에 있든 상관없이 그것을 지칭하기 위해 사용할 수 있다.

 

  • urn:ietf:rfc:2141 - 'RFC 2141' 문서

 

URN은 아직 채택되지 않아 접할 기회가 없었을 것이다.

 

URN URL의 한계로 인해 생겨나게 되었다.

 

URL의 한계는 다음과 같다.


URL은 '주소'이지 '실제 이름'이 아니다.
이 뜻은 '특정 시점'에 어떤 것이 '위치한 곳'을 알려준다는 뜻이다.

 

예를 들어, 구글 검색에 노출된 http:/xxxxx.tistory.com/19 링크가 있는데,
주소를 바꾸고 싶어 http://xxxxx.tistory.com/test/19 로 URL을 바꾸었다고 한다면,
다른 사람이 노출된 검색 콘텐츠에 접근 시 그 페이지는 찾을 수 없게 된다.

즉, 리소스가 옮겨지면 해당 URL을 더는 사용할 수 없다는 단점이 있다는 것이다.

게다가, 그 시점 기존 URL이 가지고 있던 객체를 찾을 방법이 없어진다.

 

이런 문제를 예방할 수 있는 이상적인 방법은,

객체의 위치와 상관없이, 그 객체를 가리키는 실제 객체의 이름을 사용하는 것이다.

그렇게 되면, 위치가 바뀌더라도 리소스의 위치를 찾을 수 있게 된다.

 

그런 점을 보면 URN이 더 유용해보이지만,

이미 URL이 대중화되었고, 그 외 많은 이유가 있어 아직까지 URN은 표준이 되지 못했다.

 

 

 

 

요약 :

URL이 어떻게 리소스를 얻을 것이고,

어디에서 가져와야하는지에 대해 명시하는 URI라면,

URN은 리소스를 어떻게 접근할 것인지를 명시하지 않으며,

경로와 리소스 자체를 특정하는 것을 목표로 하는 URI이다.

정리하자면 다음과 같다.

 

1. URI는 네트워크 상 자원을 가리키는 일종의 고유 식별자(ID) 이다.

2. URL, URN 은 URI 에 포함되는 개념이며 URL은 자원의 위치, URN 은 자원의 이름을 의미한다.

3. URN에는 리소스 접근방법과, 웹 상의 위치가 표기되지 않는다.

4. URN은 리소스 자체에 부여된 영구적이고 유일한 이름으로, 변하지 않는다.

 

 

 

 

 

 

 

 

 

자료 출처:

 

 

URI vs URL vs URN :: 마이구미

이번 글은 URI, URL, URN 을 다뤄본다. URI와 URL은 아직도 많이 혼동되고 있다. 우리는 대부분 URL이라는 표현을 하고 있다. 우리가 보고 있고, 사용하고 있는 대부분이 사실 URL이기 때문이다. URI, URL, U

mygumi.tistory.com

 

[WEB] 🌐 URL & URI 차이

URI는 Uniform Resource Identifier URL은 Uniform Resource Locator URN은 Uniform Resource Name 설명과 같이 URI는 URL과 URN을 포함하고 있다. 각 뜻은 자원의 식별자(URI) 위치(URL) 이름(URN)으로 유추해..

inpa.tistory.com