Network Basis

[Network] URL? URI? URN?

DevPing9_ 2022. 4. 6. 18:06

URI에 대한 공식스펙 (https://www.ietf.org/rfc/rfc3986.txt)

 

URI, URL, URN 에 대해 명확히 알고 계시나요?

필자도 명확하게 몰라도 여태 지장없이 코딩을 해왔었는데
사실 한번쯤은 명확히 정리하고 싶었습니다.
(저는 명확하게 정리안하면 제 뇌가 기억을 안하더라구요 😩)

가시죠..!! 

 

URI (Uniform Resource Identifier)

URI 는 URL과 URN을 포함하는 상위개념이다.
영어 뜻을 그대로 해석해보자면, 리소스를 구분하는 통일된 규약 정도로 볼 수 있겠다.

아래는 포함관계를 보여주는 밴다이어그램이다.

 


URL과 URN

 

URL (Uniform Resource Locator)

리소스를 구분하는 규약(URI) 중 리소스가 있는 위치를 기준으로 구분하는 통일된 규약이다.

URN (Uniform Resource Name)

리소스를 구분하는 규약(URI) 중 리소스가 있는 위치를 기준으로 구분하는 통일된 규약이다.

 

URL 과 URN

아래는 URL로 표현된 규약과 URN으로 표기된 규약이다.

우리는 보통 URL을 많이 접한다.
//URI
[scheme(보통 프로토콜)]://[authority(도메인과 포트)][/path][?query][#fragment]

//URL
fts://example.com:8080/user?id=ping9#nose

//URN
urn:example:user:ping9:nose

 

 

 

URN 이 시장에서 뒤처진 이유

위치는 변할 수 있지만 이름은 변하지 않는다는 관점으로 보면
DNS 시스템이 필요한 이유와 같은 맥락이기에 URN이 우세해 보였으나
실제 리소스에 이름을 어떤식으로 붙일까에 대해서는 공통된 규약을 만들기가 힘들어
URL이 판정승을 거두었다.

예를 들자면, 책을 URN으로 만들기 위해선 book 으로도 표현될 수 있지만 isbn 으로 표현될 수도 있다.
인간의 단어는 많고 많기에 이걸 공통규약(보편화)으로 규정하기에는 많은 시간이 필요로 할 것이다.  

 

그래서 결론은

우리가 일상생활에서 "링크(URL) 보내줘~" 하는 것만 봐도
URI 는 이제 URL을 뜻하게 되었다. 

하지만 포함관계라는 것은 기억해두자 :D

 

fragment

fragment는 html 내부 북마크(네비게이터) 기능을 수행한다.

서버에 전송하는 정보는 아니며 html 내부에서 어느 위치에서 렌더링을 시작할지 알려주는 정보이다.

 

 

728x90