一个 URL、一个 URI 和一个 URN 的区别是什么?
当前回答
请参见本文,具体而言,
URL 是一个类型的 URI,通过其主要访问机制(例如,其网络“位置”)的代表来识别一个资源,而不是它可能具有某些其他属性。
这不是一个非常清晰的术语,真的。
其他回答
下面是我的简化:
URN:独一无二的资源名称,即“什么”(例如 urn:issn:1234-5678 ) 这个意思是独一无二的.. 因为在没有两个不同的文件可以有相同的 urn。
URL: “在哪里”找到它(例如 https://google.com/pub?issnid=1234-5678.. 或 ftp://somesite.com/doc8.pdf )
URI:可以是URN或URL,这种混乱的定义是由于W3C和IETF生产的RFC 3986。
URI的定义在过去的几年里改变了,所以对于大多数人来说是有意义的混淆。 但是,你现在可以放松的是,你可以提到 http://somesite.com/某些东西,无论是URL还是URI......你都会是正确的,无论如何(至少是时光,无论如何...)
例子
罗杰·帕特
这是我的名字,这是一个识别器,它就像一个URI,但不能是一个URL,因为它告诉你什么关于我的位置或如何联系我。
民间混乱
从维基百科:
乌尔纳
我的名字,罗杰·帕特,可能像一个URN(统一资源名称),除此之外,这些是更有规律的,旨在在在空间和时间上独一无二。
但是,即使没有其他家庭使用这个名字,我被命名为我的祖父,所以它仍然不会是独一无二的时间。
在这种严格的独特性限制中,URN与URL不同,尽管它们都分享了URI的合成。
此分類上一篇
URI、URL、URN
如上图所示,这里有三个不同的组成部分,通常最好在讨论这些问题时去源头,所以这里是由Tim Berners-Lee, et. al.在RFC 3986: Uniform Resource Identifier(URI): Generic Syntax:
统一资源识别器(URI)是识别一个抽象或物理资源的字符的微型序列,URI可以进一步分类为一个位置,一个名称,或两者。
从 RFC 3986:
“Uniform Resource Locator”(URL)是指URI的子组,除了识别资源之外,它还提供了通过描述其主要访问机制(例如,其网络的“位置”)来定位资源的手段。
因此,所有URL都是URI,所有URL都是URI,但URL和URL都是不同的,所以你不能说所有URL都是URL。
如果你还没有阅读罗杰·帕特的答案,我会建议你这样做。
由于难以清楚地区分URI和URL,我记得W3C不会再区分URI和URL(http://www.w3.org/Addressing/)。
推荐文章
- URL中的“#:~:text=”位置哈希值到底是什么?
- 什么是HTTP“主机”报头?
- 哪个HTTP状态代码表示“尚未准备好,稍后再试”?
- 如何从URL获取参数与JSP
- 如何阻止恶意代码欺骗“Origin”报头来利用CORS?
- 从URI获取真实路径,Android奇巧新的存储访问框架
- URL从Java中的类路径加载资源
- 为什么说“HTTP是无状态协议”?
- 我需要HTTP GET请求的内容类型报头吗?
- 单击url会打开默认浏览器
- 我如何得到一个Flask请求的url的不同部分?
- 用JavaScript检测文本中的url
- 如何让Chrome允许混合内容?
- 正确的方式删除cookies服务器端
- REST DELETE真的是幂等的吗?