URI, URL, URN ???

2019-08-13
  • web
  • URI? URL? URN? 뭐가 다른거지?

    URI : Uniform Resource Identifier

    URL : Uniform Resource Locator
    URN : Uniform Resource Name

    일단 URLURNURI 의 Subset 이다.

    URL 은 흔히 쓰는 웹상의 주소이고, 아래의 예제와 같이 어떤 자원의 위치를 알려주는 식별자이다.

    • https://www.google.com
    • https://herdin.github.io/assets/temp/house/20190729Offer_Notice_Doc___%EB%91%90%EC%82%B0%EC%9C%84%EB%B8%8C.pdf

    URN 은 잘 사용하지 않는데, 자원의 이름을 의미한다. 하지만 자원이 어디에 위치해 있는지 알려줄 필요는 없다. 보통 urn 으로 시작하며 아래와 같은 모양새를 하고 있다. from StackOverflow

    • urn:isbn:0451450523
    • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
    • urn:publishing:book

    문법이 있어?

    URIscheme, authority, path, query, fragment 로 이루어져있다.

    #Syntax Components of URI
    scheme ":" hier-part [ "?" query ] [ "#" fragment ]
    

    URL 을 보면 쉽게 이해가 가는데, google 에서 something 을 검색하면 나오는 URL 을 보면 다음과 같다.

    https://www.google.com/search?q=something&oq=something&aqs=chrome..69i57j0l4j69i65.3487j0j7&sourceid=chrome&ie=UTF-8

    scheme: https
    authority: www.google.com
    path: search
    query: q=something&oq=something&aqs=chrome..69i57j0l4j69i65.3487j0j7&sourceid=chrome&ie=UTF-8
    fragment:
    

    아래는 RFC 에 나온 URLURN 의 구성

    foo://example.com:8042/over/there?name=ferret#nose
    \_/   \______________/\_________/ \_________/ \__/
     |           |            |            |        |
    scheme     authority       path        query   fragment
     |   _____________________|__
    / \ /                        \
    urn:example:animal:ferret:nose