본문 바로가기
Computer & Program/잡다한 이모저모

[WEB]URI? URL? URN? 차이는?

by TDRemon 2020. 3. 24.
반응형

안녕하세요. TDR입니다.

웹쪽을 보면 URI, URL등의 이름을 들어보셨을 겁니다. IT업계에 종사하시는 분이라면 더더욱 많이 들어보셨을 거고요. 회사에서 회의를 하다보면 URI, URL을 혼영해서 쓰고 있는데 정확한 정의가 궁금했습니다. 그래서 찾아보다보니 URN이라는 것도 있더군요. 그래서 오늘은 이 3개를 간략하지만 정확히 정리해 볼까 합니다.

URI : Uniform Resource Identifier

한글로하면 "통합자원식별자"입니다. 인터넷에 있는 자원을 나타내는 유일한 주소를 뜻합니다.

URL : Uniform Resource Locator

한글로하면 "통합파일식별자" 또는 "유일자원지시기"라고 합니다. 쉽게 얘기해서 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약입니다.

URN : Uniform Resource Name

한글로하면 "통합자원이름"이라고 합니다. urn:scheme 을 사용하는 URI를 위한 역사적인 이름이라고 합니다.

이렇게만 보면 "그래서 차이가 뭔데?"라는 말이 나올 수 밖에 없습니다. 이를 이해하기 위해서는 URI의 구성요소 및 형태를 알아야 합니다.

[scheme or protocol]:[//[user[:password]@]host[:port]][/path][?query][#fragment or anchor]

결론부터 말씀드리면 URI는 URL와 URN의 상위 집합입니다.

< URI, URL, URN >

위 URI의 구조에서 URL이 해당하는 범위는 아래와 같습니다.

[scheme or protocol]:[//[user[:password]@]host[:port]][/path][?query][#fragment or anchor]

즉, fragment(또는 anchor)를 제외한 나머지 부분이 URL이 됩니다. 참고로 저 fragment라는 것은 페이지 내에서 특정 위치를 가리키는 것이기 때문에, 없어도 해당 페이지로는 이동하는데는 문제가 없습니다.

그리고 URN의 범위는 아래와 같습니다.

[scheme or protocol]:[//[user[:password]@]host[:port]][/path][?query][#fragment or anchor]

즉, scheme를 제외한 나머지 부분 전체가 URN이라고 보시면 됩니다. 더 정확히 얘기하면 URN은 정확한 리소스의 위치를 나타내는 것이지만 여기서는 해당 설명은 생략하겠습니다.

https://docs.python.org/3/reference/datamodel.html#object.__bool__ 이 URI로 간단한 예시를 하나 들자면,

URI : https://docs.python.org/3/reference/datamodel.html#object.__bool__

URL : https://docs.python.org/3/reference/datamodel.html

URN : docs.python.org/3/reference/datamodel.html#object.__bool__

이렇게 됩니다.

결론적으로, 뭐가 뭔지 모를때는 그냥 URI라고 하시면되고, 업무상 정확한 표현이 필요할 때는 위 차이를 이해하시면 될 것 같습니다.

참고로 위 글은 위키백과를 참고했음을 알려드립니다.

이상 TDR이었습니다.

반응형

댓글