URI는 Identifier고, URL은 Locator인데 http://johngrib.github.io/2017/03/13/uri-url.html같은 건 URI라 불러야 하나? 아니면 URL이라 불러야 하나?

느낌상으로는 URI가 더 큰 개념 같아서 뭐가 되었건 URI라고 하면 대충 맞을 것 같은데,
이런건 감으로 때려맞추면 안된다. 내가 추측한 걸 정답으로 생각하는 버릇은 위험하다.
공식 문서를 읽고 확인하는 습관이 들어야 한다.

그래서 공식 문서인 RFC3986을 찾아보았다.

1.1.3. URI, URL, and URN를 보니 다음과 같은 문장이 있다.

A URI can be further classified as a locator, a name, or both. The term “Uniform Resource Locator” (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism (e.g., its network “location”). The term “Uniform Resource Name” (URN) has been used historically to refer to both URIs under the “urn” scheme [RFC2141], which are required to remain globally unique and persistent even when the resource ceases to exist or becomes unavailable, and to any other URI with the properties of a name.

요약하자면 다음과 같다.

  • URI는 locator(URL)와 name(URN)으로 구분 가능하다.
  • 즉, URL 은 URI 의 부분집합이다.

즉 다음과 같은 URI 가 있을 때, locator를 의미하는 부분이 URL이 된다.

http://www.ietf.org/rfc/rfc2396.txt

그러므로 다음을 URL이라 부를 수 있다.

http://www.ietf.org

링크