V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Livid
V2EX  ›  问与答

URL 和 URI 究竟有什么区别呢?

  •  
  •   Livid · 2013-06-08 02:17:11 +08:00 · 4871 次点击
    这是一个创建于 4191 天前的主题,其中的信息可能已经有所发展或是发生改变。
    11 条回复    1970-01-01 08:00:00 +08:00
    aveline
        1
    aveline  
       2013-06-08 02:21:06 +08:00
    Sunyanzi
        2
    Sunyanzi  
       2013-06-08 02:21:53 +08:00   ❤️ 1
    如果我说 you need google 会不会被封号 ..?

    http://www.google.com/search?q=what+the+difference+between+URL+URI
    itommy
        3
    itommy  
       2013-06-08 02:22:56 +08:00
    @aveline 哈哈哈 我正在读同一篇讨论呢
    xavierskip
        4
    xavierskip  
       2013-06-08 02:40:41 +08:00
    翻了下http权威指南。

    一个是标示符(Uniform Resource Identifier)。

    一个是定位符( Uniform Resource Locator)。

    URI 有两种形式,为URL和URN。

    几乎所有的URI都是URL

    我理解就是只有URN的存在,这两个的区别这种问题才有意义。
    我从没见过URN。所以管他呢!
    yyfearth
        5
    yyfearth  
       2013-06-08 09:10:59 +08:00
    我记得URI包括URL,但是范围更广些,不过大多数情况下都是URL用的多
    Loerise
        6
    Loerise  
       2013-06-08 09:26:35 +08:00
    soli
        7
    soli  
       2013-06-08 09:30:11 +08:00   ❤️ 3
    URI 唯一标识某一个资源;URL 唯一定位某一个资源。

    "Livid@V2EX" 这个字符串能唯一标识你这个人,应该是 URI,但通过这个字符串找不到你,所以应该不是 URL;

    "某国某区某市某街道某社区某楼某房间的某人" 这个字符串能唯一定位你这个人的位置,应该是 URL。

    另外,唯一定位你这个人了,也就能唯一标识你这个人了。

    所以,URL ⊂ URI 。
    rrfeng
        8
    rrfeng  
       2013-06-08 09:35:52 +08:00
    URI Standard (RFC3986) 在 1.1.3 小节“URI, URL, and URN”中澄清了这一区别:

    URI 可以进一步分为定位器、名称,或者二者兼具。术语“Uniform Resource Locator” (URL) 涉及的是 URI 的子集,除识别资源外,它还通过描述其最初访问机制(比如它的网络“位置”)来提供定位资源的方法。 术语“Uniform Resource Name” (URN) 在历史上曾用于引用“urn”方案 [RFC2141] 下的 URI,这个 URI 需要是全球惟一的,并且在资源不存在或不再可用时依然保持不变,对于其他任何拥有名称的一些属性的 URI,都需要使用这样的 URI。
    对于单独的方案,没有必要将其分为仅仅是一个 “名称”或者是一个“定位器”。 来自任意特定方案的 URI 实例可能有名称或定位器的特征,或两者兼而有之, 这通常取决于标识符分配中的持久性和命名机构对其关注程度, 而不取决于其他方案的质量。未来的规范和相关的文档应当使用通用术语“URI”,而不是使用有更多限制的条目“URL”和“URN” [RFC3305]。
    davepkxxx
        9
    davepkxxx  
       2013-06-08 10:17:11 +08:00   ❤️ 1
    url: http://www.v2ex.com/t/71664
    uri: /t/71664

    个人认为是绝对定位和相对定位的区别,这点从JavaEE中HttpServletRequest的getRequestURI方法可以看出。
    clowwindy
        10
    clowwindy  
       2013-06-08 11:06:50 +08:00
    http://v2ex.com/ 带主机地址的属于 URL
    电驴连接、BT 磁力链接,或者 urn:ietf:rfc:2648 这种跟资源存在的主机无关的标识符属于 URN

    N = name
    L = location
    I = identifier
    URI = URL + URN
    hz251
        11
    hz251  
       2013-06-08 11:41:47 +08:00
    URI = URL + URN
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2946 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:06 · PVG 23:06 · LAX 07:06 · JFK 10:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.