一个 URL、一个 URI 和一个 URN 的区别是什么?


当前回答

我一直在想同样的事情,我发现了这个: http://docs.kohanaphp.com/helpers/url。

您可以看到一个清晰的例子,使用 url::current() 方法. 如果您有此 URL: http://example.com/kohana/index.php/welcome/home.html?query=string 然后使用 url:current() 给您一个 URI,根据文档,是:欢迎/home

其他回答

我喜欢在思考URI时使用的另一个例子是XML文件的xmlns属性:

<rootElement xmlns:myPrefix="com.mycompany.mynode">
    <myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>

在这种情况下,com.mycompany.mynode 将是一个独特识别“myPrefix”名称空间的 URI 对所有在我的 XML 文档中使用的元素。

我一直在想同样的事情,我发现了这个: http://docs.kohanaphp.com/helpers/url。

您可以看到一个清晰的例子,使用 url::current() 方法. 如果您有此 URL: http://example.com/kohana/index.php/welcome/home.html?query=string 然后使用 url:current() 给您一个 URI,根据文档,是:欢迎/home

原来,URI计划分为URL(地址)和URN(名称),但然后有一个URL和URI之间很少的差异,而HTTP URI被用作名称空间,尽管它们实际上没有找到任何资源。

這些是幾個非常好寫的,但很長的答案. 以下是 CodeIgniter 所涉及的差異:

地址: http://example.com/some/page.html

URI - /some/page.html

简单地说,URL是识别任何资源的完整方式,并且可以有不同的协议,如FTP、HTTP、SCP等。

URI 是当前域的资源,因此需要找到更少的信息。

在每个例子中,CodeIgniter使用这个词URL或URI,这是他们正在谈论的差异,尽管在网格的格式中,它不是100%正确的。

URN 格式 : urn:[namespace identifier]:[namespace specific string] urn: and : stand for themselves. 示例: urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 urn:ISSN:0167-6423 urn:isbn:096139210x Amazon 资源名称(ARNs)是一个独特的识别 AWS 资源。