URI , URL, URN

박찬영·2024년 4월 14일
post-thumbnail

인터넷을 이용하는 사람이라면 또는 개발자라면 URL이란 단어를 자주 접하고 들었을 것입니다.
URL은 많은 사람들이 흔히 웹 사이트 주소로 알고 있습니다.

그렇다면 이와 비슷한 URI라는 용어도 들어보셨나요?
구체적으로 무슨 뜻이며 이 둘 사이에 어떤 차이점이 있는지 알아보겠습니다.

URI

URI 는 uniform Resource Identifier 라는 뜻으로 통합 자원 식별자 라고 합니다.
URI의 존재는 인터넷에서 요구되는 기본조건으로써 인터넷 프로토콜에 항상 붙어다니며,
URI의 하위 개념으로 URL과 URN이 있습니다.

만약에 인터넷이 큰 도서관이라면, 각 책마다 고유한 번호가 있는데 그것이 인터넷에서는
URI 라고도 합니다.

URL

URL 은 uniform Resource Locater 의 약자로 네트워크 상에서 리소스의 위치를 나타내기 위한 규약 입니다.
쉽게 이야기 하자면 Resource의 정확한 위치 정보(파일의 위치)를 나타내며 URL을 통해 Resource가 어디에 있는지 어떻게 접근할 수 있는 지 알 수 있습니다.
특정 웹 페이지의 주소에 접속하기 위해서는 웹 사이트의 주소뿐만 아니라 프로토콜(https, http, sftp, smp 등)을 함께 알아야 접속이 가능한데, 이들을 모두 나타내는 것이 URL입니다.

프로토콜(protocol)이란, 리소스에 접근하는 방법을 지정하는 방식이며 http, https,ftp, file 등이 해당됩니다.

예시

https://www.naver.com/ - 네이버의 URL
https://search.shopping.naver.com/best/today?rankedDate=20220922 - 네이버 쇼핑의 오늘의 베스트 카테고리 URL
https://www.youtube.com/feed/subscriptions - 유튜브의 구독한 목록 URL

URI와 URL의 차이점

URI와 URL를 쉽게 구분하는 방법은 URI 는 통합 자원 식별자로 주소에 식별자가 있으면 URI
URL은 리소스 주소를 나타내므로 리소스 위치까지만 나타내면 URL 입니다.

다음 예시를 통해 비교하며 이해해봅시다.

https://hstory0208.tistory.com/category

hstory0208.tistory.com 에서 category 라는 경로를 나타냅니다.
category는 리소스의 실제 위치이므로 이 주소는 URL 입니다.

https://hstory0208.tistory.com/category/12

hstory0208.tistory.com 에서 category 라는 자원의 경로를 나타내는 부분까진 URL 이지만
/12 는 식별자 이므로 https://hstory0208.tistory.com/category URL을 포함한 URI라고 할 수 있습니다.

https://hstory0208.tistory.com/category?page=12

위와 마찬가지로 https://hstory0208.tistory.com/category 까지는 자원의 실제 위치를 나타내기 때문에 URL이고, 뒤의 query ( ?page=12 ) 가 붙었으므로 https://hstory0208.tistory.com/category URL을 포함한 URI 입니다.

즉, URL은 어떻게 위치를 찾고 도달할 수 있는지까지 포함되어야 하기 때문에 프로토콜 + 이름(또는 번호)의 형태여야만 하며 URI 는 프로토콜을 제외하더라도 URI 라고 할 수 있습니다.

Scheme: 리소스에 접근하는 데 사용할 프로토콜. 웹에서는 http 또는 https를 사용
Host: 접근할 대상(서버)의 호스트 명
Path: 접근할 대상(서버)의 경로에 대한 상세 정보

URN

Resource의 위치와 상관없이 식별 가능한 고유한 이름 역할을 합니다.
URN은 이름이 변하지 않는한, 리소스 위치가 변경되더라도 문제없이 동작합니다.
즉, 리소스 위치와 상관없이 이름만으로 식별할 수 있다는 개념입니다.

URN은 URL의 한계로 인해 생긴 것으로 아직까진 URL이 대중화가 되어 채택되지 못했습니다.

profile
오류는 도전, 코드는 예술

0개의 댓글