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

반응형

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

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

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

images_jch9537_post_51dcc312-8ecb-4048-80df-cbde40865e7a_image.png
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:isbn:351234156

URN이 가르키는 것은 이름일 뿐 무엇인지 알 순 있다하더라도 직접 접 근할 순 없습니다.

따라서 실제 리소스에 접근하기 위해서는 URN을 URL로 변환하는 과정이 필요합니다.

GET urn:isbn:351234156 → GET https://example.com/book/351234156

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

 

URL의 한계란 ? 

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

 

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


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

URI는 자원에 대한 고유 식별자로서 URL,과 URN의 상위 개념 입니다.

즉, 모든 URL, URN은 URI라고 할 수 있습니다.

 

현실적으로 순수하게 URI이기만 한 URI는 매우 드물고 웹 개발에서는 리소스 위치를 식별하는 URL 형태의 URI를 사용하기 때문에

URI와 URL을 엄격하게 구분하기에는 무리가 있는 것 같습니다.

복잡하게 생각하지 않고 중요한 점은 "모든 URL은 URI이다"라는 것과 "모든 URN은 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