URI와 URL 비슷해보이는데 차이점이 뭘까? ( 완벽 정리 )

우리가 인터넷을 할때 URI와 URL이란 걸 아주 자주 접할겁니다.

하지만 URI URL 두 가지가 있는지 모르고 이 두가지를 하나로 혼용해 "인터넷 주소잖아" 라고 생각하는게 일반적입니다.

크게 문제는 없지만 이 둘의 차이점이 존재합니다.

URI 는 식별하고, URL은 위치를 가르킨다.

사진을 통해 간단히 보자면 URI가 가장 큰 개념으로 URI의 하위 개념으로 URL과 URN을 포함하고있습니다.

이번 포스팅에선 URI와 URL,URN 각 개념과 차이점에 대해 알아보려합니다.

먼저 URL의 구조 부터 알아야 하기 때문에 URL 부터 설명해보겠습니다.

  1. URL
  2. URN
  3. URI

URL ( Uniform Resource Locator ) - 통합 자원 지시자

URL은 우리가 가장 흔히 보는 것으로

URL은 Resource의 정확한 위치 정보(파일의 위치)를 나타냅니다.

URL을 통해 Resource가 어디에 있는지 어떻게 접근할 수 있는 지 알 수 있습니다.

 

URL 예시

https://www.naver.com/ - 네이버의 URL

https://search.shopping.naver.com/best/today?rankedDate=20220922 - 네이버 쇼핑의 오늘의 베스트 카테고리 URL

https://www.youtube.com/feed/subscriptions - 유튜브의 구독한 목록 URL

 

 

URL의 구조

다음과 같은 URL이 있다하고 이 URL을 부분별로 나누어 하나씩 살펴보겠습니다.

 

https://hstory0208.tistory:3000/category?category=network&page=5#url차이

 

scheme host(domain) :port /path  ?query #fragment
https:// hstory0208.tistory :3000 /category ?category=network&page=5 #url차이

 

명칭 설명 부분
scheme 통신 (방식) 프로토콜 결정 file://, http://, https://
host 웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP 127.0.0.1, www.google.com
:port 웹 서버에 접속하기 위한 통로 :80, :443, :3000
/path  웹 서버의 루트 디렉토리로부터 웹 페이지,
이미지, 동영상 등의 파일이 위치까지의 경로
/search, /Users/username/Desktop
?query 리소스의 형식 범위를 좁히기 위한 추가 질문 ( key=value 형식 ) q=JavaScript
#fragment URL이 지정하는 자원의 세부 부분을 지정할 때 ( 세부 주제를 찾을 때 ) #secetion1

 


URN ( Uniform Resource Name ) - 통합 자원 이름

Resource의 위치와 상관없이 식별 가능한 고유한 이름 역할을 합니다.

URN은 이름이 변하지 않는한, 리소스 위치가 변경되더라도 문제없이 동작합니다.

즉, 리소스 위치와 상관없이 이름만으로 식별할 수 있다는 개념입니다.

 

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

 

URL의 한계란 ? 

리소스의 위치를 옮기면 해당 URL을 더 이상 사용할 수 없는것.

 

만약, 구글 검색에 노출된 hstory0208.tistory.com/10 이라는 링크가 있다고 가정해봅시다.
이 주소를 바꾸고 싶어 hstory0208.tistory.com/network/10 으로 주소를 바꾼다면
다른 사람이 기존에 노출된 링크(hstory0208.tistory.com/10)에 접속 시 주소가 바뀌었기 때문에 해당 페이지는 찾을 수가 없게되는것입니다.
이게 바로 URL의 한계 입니다. 


URI ( Uniform Resource Identifier ) - 통합 자원 식별자

자원의 위치뿐만 아니라 자원에 대한 고유 식별자로서 URL을 의미를 포함합니다.

URI의 존재는 인터넷에서 요구되는 기본조건으로써 인터넷 프로토콜에 항상 붙어다니며,

URI의 하위 개념으로 URL,과 URN이 있습니다.

 


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 입니다.

 


참고자료

https://mygumi.tistory.com/139
https://velog.io/@torang/URL%EA%B3%BC-URI%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90