一个 URL、一个 URI 和一个 URN 的区别是什么?
当前回答
从 RFC 3986:
“Uniform Resource Locator”(URL)是指URI的子组,除了识别资源之外,它还提供了通过描述其主要访问机制(例如,其网络的“位置”)来定位资源的手段。
因此,所有URL都是URI,所有URL都是URI,但URL和URL都是不同的,所以你不能说所有URL都是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 是您的地址,您的姓名在订单中与您沟通。
我的名字是 Loyola Loyola 是 URI 我的地址是 TN, Chennai 600001.
TN, Chennai 600 001, Loyola 是 URL
希望你明白,
让我们来看看一个准确的例子。
HTTP://www.google.com/fistpage.html
在上述情况下,您可以使用下面的 http://www.google.com/fistpage.html(URL)联系一个名为 firstpage.html(URI)的页面。
因此,URI是URL的子组,而不是相反。
简而言之:一个 URI 会识别,一个 URL 会识别和找到。
考虑到莎士比亚的游戏罗密欧和朱丽叶的具体版本,你在你的家庭网络上有一个数字副本。
您可以将文本定义为 urn:isbn:0-486-27557-4. 这将是一个 URI,但更具体的是一个 URN* 因为它命名文本。
您也可以将文本定义为 file://hostname/sharename/RomeoAndJuliet.pdf. 这也将是一个 URI,但更具体的是一个URL,因为它会找到文本。
* 统一资源名称
(请注意,我的例子是从维基百科调整的)
原来,URI计划分为URL(地址)和URN(名称),但然后有一个URL和URI之间很少的差异,而HTTP URI被用作名称空间,尽管它们实际上没有找到任何资源。
对于已经发表的答案,这里有一个Venn的图表来总结理论(从Prateek Joshi的美丽解释):
此分類上一篇
还有一个例子(也来自Prateek的网站):
此分類上一篇
推荐文章
- URL中的“#:~:text=”位置哈希值到底是什么?
- 什么是HTTP“主机”报头?
- 哪个HTTP状态代码表示“尚未准备好,稍后再试”?
- 如何从URL获取参数与JSP
- 如何阻止恶意代码欺骗“Origin”报头来利用CORS?
- 从URI获取真实路径,Android奇巧新的存储访问框架
- URL从Java中的类路径加载资源
- 为什么说“HTTP是无状态协议”?
- 我需要HTTP GET请求的内容类型报头吗?
- 单击url会打开默认浏览器
- 我如何得到一个Flask请求的url的不同部分?
- 用JavaScript检测文本中的url
- 如何让Chrome允许混合内容?
- 正确的方式删除cookies服务器端
- REST DELETE真的是幂等的吗?