[네트워크] URI, URL, URN

Jung Wish·2020년 10월 23일
0

네트워크

목록 보기
6/7
post-thumbnail

URI, URL, URN

해당 게시물은 Baeharam님의 Must-Know-Frontend: URL과 URN을 포함하는 URI에서 주제를 가지고 와서 일부 내용과 제가 공부한 내용을 함께 정리한 것입니다. 프론트엔드 전반적인 지식들이 핵심만 요약되어 있으니 더 많은 개념들과 지식들은 이쪽을 참고해주세요!

🐰 URI (Uniform Resource Identifier)

URI의 정의

MDN에서는 다음과 같이 URI를 정의하고 있습니다.

URI는 자원(Resource)을 나타내는 문자열입니다.
가장 일반적인 형태는 웹상의 주어진 위치에서 자원을 식별하는 URL이며, 이밖에도 URN은 자원을 이름의 형태(namespace가 주어진 형태)이다.

또한, 위키백과(Wikipedia)에서는 아래와 같이 정리되어 있습니다.

통합 자원 식별자(Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. URI의 하위개념으로 URL, URN 이 있다.

정리하자면, 다음과 같습니다.

  • URI는 웹상의 자원들을 식별할 수 있는 이름표같은 역할을 한다.
  • URI의 하위 개념으로는 URL과 URN이 있다.

여기서 자원(Resource)이란, 웹상에서 우리가 보는 이미지, 이 블로그의 게시글, 기타 웹 상에 접근할 수 있는 모든 것들을 통틀어서 자원이라고 부를 수 있습니다.

URI의 문법

URI는 우리가 IP주소를 직접 치지 않고 웹상에서 도메인 명을 입력해서 원하는 자원을 획득하듯이 다음과 같이 자원을 식별해낼 수 있는 요소들로 구성되어 있습니다.

  • scheme는 프로토콜 명칭 또는 사용되는 스키마 명칭을 표기합니다.
  • []로 묶여있는 것은 option이며, 통상적으로 알려진 것이다. 식별해 내는데 굳이 필요없는 정보라면 표기하지 않아도 된다는 의미입니다.

[EXAMPLES]

🐰🐰 URL (Uniform Resource Locator)

URL이란

MDN에서 URL는 다음과 같이 정의되어있습니다.

URL(Uniform Resource Locator)은 인터넷에서 웹 페이지, 이미지, 비디오 등 리소스의 위치를 가리키는 문자열입니다.

HTTP 맥락에서 URL은 "웹 주소" 또는 "링크"라고 불립니다. 브라우저는 https://developer.mozilla.org 등 URL을 주소창에 표시합니다. 일부 브라우저는 URL에서 "//" 뒤의 일부분, 즉 도메인 이름만 표시합니다.

URL은 파일 전송(FTP), 이메일(SMTP) 등 다른 응용 프로그램에서도 사용할 수 있습니다.

URI는 URL의 상위 버전이지만, 통상적으로 쓰이는 URI는 URL의 형태입니다. Locator라는 이름에 맞게 리소스의 위치를 가리키는 역할을 한다고 보면 되겠습니다. 주요 특징을 정리하자면 다음과 같습니다.

  • URL은 인터넷에서 웹 리소스의 위치를 가리키는 주소이다.
  • URL은 절대 경로와 상대경로가 있으며 일반적으로 쓰이는 인터넷 주소들은 모두 절대경로를 의미하며 상대경로는 보통 파일 시스템에서 쓰이는 것처럼 특정 루트 디렉토리에서의 경로를 표시하는 형태이다.
  • URL은 파일 전송(FTP)와 이메일(SMTP) 등 다른 응용 프로그램에서도 사용할 수 있다.
  • URL은 인간이 이해할 수 있는 웹상의 주소를 나타내는 문자열들이기 때문에 많은 장점을 가지고 있다. 따라서, 더 효율적인 방식으로 접근에 대한 명확한 주소 표기를 위해 Clean URL을 작성하기 위한 방법론들이 생겨났고 REST API도 이 중 하나라고 볼 수 있겠다.
  • URL은 어떻게 자원에 접근하는지(Scheme)에 대한 정보도 함께 제공한다.
  • URL은 자원의 형태나 환경이 변경될때마다 수정될 수 있다.
    👉🏻 URN이 등장하게 된 배경이기도 하다.

🐰🐰🐰 URN (Uniform Resource Name)

URN이란

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입니다. 정리하자면 다음과 같습니다.

  • URN은 리소스를 영구적이고 유일하게 식별할 수 있는 URI이다.
  • URN에는 리소스 접근방법과, 웹 상의 위치가 표기되지 않는다.
  • URN은 리소스 자체에 부여된 영구적이고 유일한 이름으로, 변하지 않는다.

해당 내용은 개인적으로 공부하고 의역한 부분이 많습니다. 오역 또는 오타 및 제안사항이 있으시다면 댓글로 지적 부탁드리겠습니다!🙇🏻‍♀️

Reference

profile
Frontend Developer, 올라운더가 되고싶은 잡부 개발자, ISTP, 겉촉속바 인간, 블로그 주제 찾아다니는 사람

0개의 댓글