一个 URL、一个 URI 和一个 URN 的区别是什么?
当前回答
简而言之:一个 URI 会识别,一个 URL 会识别和找到。
考虑到莎士比亚的游戏罗密欧和朱丽叶的具体版本,你在你的家庭网络上有一个数字副本。
您可以将文本定义为 urn:isbn:0-486-27557-4. 这将是一个 URI,但更具体的是一个 URN* 因为它命名文本。
您也可以将文本定义为 file://hostname/sharename/RomeoAndJuliet.pdf. 这也将是一个 URI,但更具体的是一个URL,因为它会找到文本。
* 统一资源名称
(请注意,我的例子是从维基百科调整的)
其他回答
不要忘记 URNs. URIs 和 URLs 都是 URNs. URLs 有位置:
URI: foo
URL: http://some.domain.com/foo
URL: http://some.domain.com:8080/foo
URL: ftp://some.domain.com/foo
他们都是URN。
正如我所理解的那样,URI是某事的描述,按照接受的格式,可以定义某事或其位置的独特名称(识别)。
有两个基本子组:
URL,定义位置(特别是试图查看网页的浏览器)和URN,定义某事的独特名称。
我倾向于认为URN类似于GUID,它们只是一个标准化的方法来为事物提供独特的名称,就像在使用公司名称的名称空间声明中一样,它并不像在某个服务器上坐着的资源在某个地方相匹配于该文本线,它只是独特地识别某些东西。
我也倾向于完全避免URI的术语,并讨论事物只有在URL或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)代表一个大图像的东西. 你可以分 URIs / URIs 可以分类为位置(统一的资源识别器-URL),或名称(统一的资源名称-URN),或两者。 因此,基本上,一个URN 功能如一个人的名字和URL 描述这个人的地址. 如此长的故事短,一个URN 定义一个项目的身份,而URL 提供定义
维基百科将提供您所需的所有信息。 引用来自 http://en.wikipedia.org/wiki/URI:
URL 是一個 URI,除了識別資源之外,還提供行動或獲得資源的代表性的手段,描述其主要接入機制或網路「位置」。
推荐文章
- URL从Java中的类路径加载资源
- 为什么说“HTTP是无状态协议”?
- 我需要HTTP GET请求的内容类型报头吗?
- 单击url会打开默认浏览器
- 我如何得到一个Flask请求的url的不同部分?
- 用JavaScript检测文本中的url
- 如何让Chrome允许混合内容?
- 正确的方式删除cookies服务器端
- REST DELETE真的是幂等的吗?
- 如何使用jQuery从URL中获得锚?
- 了解Chrome网络日志“停滞”状态
- 用户代理字符串可以有多大?
- 什么是接受* HTTP报头q=0.5 ?
- HTTP状态码200(缓存)和状态码304之间有什么区别?
- HTTP POST返回错误:417“期望失败。”