해당 게시물은 Baeharam님의 Must-Know-Frontend: URL과 URN을 포함하는 URI에서 주제를 가지고 와서 일부 내용과 제가 공부한 내용을 함께 정리한 것입니다. 프론트엔드 전반적인 지식들이 핵심만 요약되어 있으니 더 많은 개념들과 지식들은 이쪽을 참고해주세요!
MDN에서는 다음과 같이 URI를 정의하고 있습니다.
URI는 자원(Resource)을 나타내는 문자열입니다.
가장 일반적인 형태는 웹상의 주어진 위치에서 자원을 식별하는 URL이며, 이밖에도 URN은 자원을 이름의 형태(namespace가 주어진 형태)이다.
또한, 위키백과(Wikipedia)에서는 아래와 같이 정리되어 있습니다.
통합 자원 식별자(Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. URI의 하위개념으로 URL, URN 이 있다.
정리하자면, 다음과 같습니다.
여기서 자원(Resource)이란, 웹상에서 우리가 보는 이미지, 이 블로그의 게시글, 기타 웹 상에 접근할 수 있는 모든 것들을 통틀어서 자원이라고 부를 수 있습니다.
URI는 우리가 IP주소를 직접 치지 않고 웹상에서 도메인 명을 입력해서 원하는 자원을 획득하듯이 다음과 같이 자원을 식별해낼 수 있는 요소들로 구성되어 있습니다.
[EXAMPLES]
MDN에서 URL는 다음과 같이 정의되어있습니다.
URL(Uniform Resource Locator)은 인터넷에서 웹 페이지, 이미지, 비디오 등 리소스의 위치를 가리키는 문자열입니다.
HTTP 맥락에서 URL은 "웹 주소" 또는 "링크"라고 불립니다. 브라우저는 https://developer.mozilla.org 등 URL을 주소창에 표시합니다. 일부 브라우저는 URL에서 "//" 뒤의 일부분, 즉 도메인 이름만 표시합니다.
URL은 파일 전송(FTP), 이메일(SMTP) 등 다른 응용 프로그램에서도 사용할 수 있습니다.
URI는 URL의 상위 버전이지만, 통상적으로 쓰이는 URI는 URL의 형태입니다. Locator
라는 이름에 맞게 리소스의 위치를 가리키는 역할을 한다고 보면 되겠습니다. 주요 특징을 정리하자면 다음과 같습니다.
MDN에서는 URN을 다음과 같이 정의하고 있습니다.
URN(Uniform Resource Name)이란 URI의 표준 포맷 중 하나로, 자원(resource)의 존재 유무나 위치를 특정하는 것을 지칭한다.
RFC3986의 예시에 의하면 다음과 같이 표기한다:
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
Wikidedia에서는 URN을 다음과 같이 설명하고 있습니다.
URN(Uniform Resource Name)은 특정 namespace에 의해 이름으로 리소스를 특정하는 URI입니다. URN은 위치(주소)나 접근법에 대한 명시 없이 리소스에 대해 이야기할 때 사용할 수 있습니다. 예를 들면, ISBN 시스템에서 ISBN 0-486-27557-4은 셰익스피어의 작품 로미오와 줄리엣의 특정 에디션을 지칭합니다. 이를 URN으로 나타내면
urn:isbn:0-486-27557-4
으로 표기할 수 있습니다. 단, 이 표기법에는 어디에서 책의 사본을 찾아야 할지에 대한 정보는 포함하고 있지 않습니다.
즉, URL이 어떻게 리소스를 얻을 것이고, 어디에서 가져와야하는지에 대해 명시하는 URI라면, URN은 리소스를 어떻게 접근할 것인지를 명시하지 않으며 경로와 리소스 자체를 특정하는 것을 목표로 하는 URI입니다. 정리하자면 다음과 같습니다.