우리가 인터넷을 할때 URI와 URL이란 걸 아주 자주 접할겁니다.
하지만 URI URL 두 가지가 있는지 모르고 이 두가지를 하나로 혼용해 "인터넷 주소잖아" 라고 생각하는게 일반적입니다.
크게 문제는 없지만 이 둘의 차이점이 존재합니다.

사진을 통해 간단히 보자면 URI가 가장 큰 개념으로 URI의 하위 개념으로 URL과 URN을 포함하고있습니다.
이번 포스팅에선 URI와 URL,URN 각 개념과 차이점에 대해 알아보려합니다.
먼저 URL의 구조 부터 알아야 하기 때문에 URL 부터 설명해보겠습니다.
- URL
- URN
- 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
'◼ CS 기초 지식 > [네트워크]' 카테고리의 다른 글
SSL 이란 ? TLS 이란 ? (0) | 2022.09.22 |
---|---|
HTTP와 HTTPS의 개념 및 차이점에 대해 알아보자. (2) | 2022.09.22 |
TCP와 UDP란? 왜 사용하는지 알아보자 (0) | 2022.09.21 |
[네트워크] Class란 ? CIDR 란 ? 차이점 및 개념을 쉽게 이해해보자 (feat.서브넷팅, 슈퍼넷팅) (3) | 2022.09.20 |
OSI 7 계층(OSI 7 LAYER)이란 ? 개념 및 각 계층 역할구조 까지 쉽고 간단하게 알아보자. (1) | 2022.09.18 |