URI

5th July 2017 at 10:07am

URI

URI 包含了 URL (Uniform Resource Locator) 和 URN (Uniform Resource Name)。

简单地说,URI 是一种标识,而 URL 表示某种东西的位置。但是这个位置本身也是一种标识,所以 URL 也是一种 URI。URN 表示一种物件的唯一标识,比如 urn:isbn:0451450523

例子

URL:

  1. http://example.com/mypage.html
  2. ftp://example.com/download.zip
  3. mailto:user@example.com
  4. file:///home/user/file.txt
  5. tel:1-888-555-5555
  6. http://example.com/resource?foo=bar#fragment
  7. /other/link.html (A relative URL, only useful in the context of another URL)

URN:

  1. urn:isbn:0451450523 to identify a book by its ISBN number.
  2. urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 a globally unique identifier
  3. urn:publishing:book - An XML namespace that identifies the document as a type of book.

URI:

  1. data:,Hello%20World Data URI
  2. onlyice My nickname

使用 URI 的地方

  1. 规范上定义了 HTML a 标签的 src 属性使用的是 URI(而不是 URL),所以你给它写一个 url:isbn:0451450523 也是符合规范的,只是没有浏览器会去处理它
  2. XML 的 SYSTEM 关键字后面的系统标识符,使用的是 URI

参考文献

  1. URI - Wikipedia
  2. What is the difference between a URI, a URL and a URN? - StackOverflow
  3. RFC 3986 - Uniform Resource Identifiers
  4. RFC 2396 - Uniform Resource Identifiers (URI): Generic Syntax
  5. RFC 1738 - Uniform Resource Locators (URL)