-
URI, URL, URN의 개념과 차이점Web Programming 2022. 2. 16. 17:12
안녕하세요 이번 포스팅은 URI, URL, URN의 개념에 대해서 알아보겠습니다
꼭 개발자가 아니더라도 URI, URL과 같은 용어들을 많이 들어봤을 용어입니다. 종종 다른 사람들과 대화를 하다 보면 URI라고 말하는 사람도 있고 URL이라고 말하는 사람도 있는데요 그 의미가 굉장히 헷갈립니다.
그럼 우선 URI에 대해서 알아보겠습니다.
URI(Uniform Resource Identifier, 통합 자원 식별자)는 무엇인가요?
URI는 우리말로 통합 자원 식별자가 부르는데 URL과 URN을 포함하는 상위개념이라고 생각하면 됩니다.
URI는 인터넷 상에 존재하는 자원을 구분하는 식별자라 할 수 있고 웹 상에서 자원을 식별하는 모든 수단이 곧 URI라고 할 수 있습니다.
예를 들어서, 제 티스토리 블로그 주소인 https://tate91.tistory.com/2를 들어가게 되면 다른 사이트가 나오면 안 되고 반드시 저의 블로그에 있는 2번째 게시글이 나와야 합니다. 이렇게 인터넷 자원을 특정 지을 수 있는 것을 URI라고 합니다.
그렇기 때문에 URI는 반드시 유일해야 합니다.
URL(Uniform Resource Locater, 통합 자원 지시자)은 무엇인가요?
사실 모든 IT용어는 미국에서 왔기 때문에 영어로 이루어져 있고 이를 한국어로 직역을 하면 꽤 어색한 문장이나 단어가 생깁니다. 저도 공부를 하면 이런 추상적이고 어려운 단어들 때문에 감히 잘 안 잡힐 때가 많은데요, 쉽게 생각하면
인터넷 상에서 주소라 하면은 99%는 이 URL을 의미한다고 생각하면 됩니다.
URL의 Locater라는 단어처럼 인터넷 상에 존재하는 자원의 위치(path)를 나타내는 식별자라고 할 수 있습니다.
여기서는 위치라는 말이 중요한데 URL은 자원의 위치정보를 가지므로 자원의 위치가 변경된다면 본래의 URL은 더 이상 자원을 찾을 수 없으며 변경된 위치를 추적할 수도 없습니다. 이때 나타나는 HTTP 오류가 저희가 개발하다 보면 자주 접하는 404 Page Not Found error입니다.
URL의 단 한 글자만 바뀌어도 해당 자원에는 접근할 수 없습니다.
URN(Uniform Resource Name, 통합 자원 이름)은 무엇인가요?
URN은 인터넷 상에 존재하는 자원의 이름을 나타내는 식별자입니다. 자원의 이름은 고유한 값을 가지기 때문에 인터넷 상의 수많은 자원들 중 특정 자원을 식별할 수 있는 것입니다.
URN은 URL와 URI와 달리 굉장히 생소한 개념인데 그 이유는 두 가지 개념보다 훨씬 나중에 나온 것이기 때문입니다. URL보다 3년 뒤에 출범해서 역사가 다소 짧습니다.
URL의 치명적인 단점은 위치정보 외에 다른 정보를 저장하지 않는다는 것입니다. 이런 상황에서 URL이 변경되면 더 이상 해당 자원을 인터넷상에서 찾을 수 없는데 이런 것들을 보완 하고자 URN이 등장했습니다.
위치가 아무리 변경된다 하더라도 자원의 고유한 이름을 통해서 찾기 때문에 해당 자원이 웹 상에서 완전히 삭제된 것이 아니라면 쉽게 찾아낼 수 있습니다.
그러나 URN은 아직 채택되지 않아서 접할 기회가 많이 없습니다. 이미 URL이 많이 대중화되어있고 그 외의 많은 이유로 아직까지 표준이 되고 있지는 않다고 합니다.
정리
위의 개념들을 실제 세상에 비교를 해봅시다.
구분 현실 값 자원 나 자신 나 URI 나를 식별할 수 있는 모든 식별자 - URL 내가 사는 주소 서울특별시 A구 가동 URN 나의 주민등록번호 000000-0000000 나의 정보가 위의 표에 들어가 있는 것들이라고 가정을 한다면 '나'라는 자원을 찾기 위한 경로는 URL은 내가 현재 거주하고 있는 주소가 됩니다. 내가 다른 곳으로 이사를 가게 되면 '나'라는 자원을 더 이상 찾을 수가 없습니다(404 에러).
또한, 내가 전에 살던 주소만으로 내가 이사 간 주소를 유추할 수도 없습니다.
반면, 내 주민등록번호(URN)를 통해 확인할 경우, 주민등록번호와 매칭 되는 사람을 찾는 것이기 때문에 주소와 관계없이 나를 식별할 수 있습니다.
URI는 나를 식별할 수 있는 모든 식별자이기 때문에 URL, URN을 모두 포함하고 있습니다.
결론으로는 URL과 URN은 URI의 종류이며, 모든 URL은 URI이고 모든 URN은 URI입니다.
URL와 URN은 다르고 모든 URI는 URL이라고 말할 수 없습니다.
단순하게 말하자면 URI는 규약이고 URL은 규약에 대한 형태라고 할 수 있습니다.
'Web Programming' 카테고리의 다른 글
HTML, HTTP API, CSR, SSR의 간략한 개념과 정의 (0) 2022.03.11 서블릿(Servlet)과 멀티 쓰레드(Multi Thread)의 간략한 개념과 정의 (0) 2022.03.11 DNS(Domain Name System)의 개념과 정리 (0) 2022.02.15 Web Server와 WAS(Web Application Server)의 차이점 파악하기 (0) 2022.02.12