This question already has answers here:
What is the difference between a URI, a URL and a URN?

(31个答案)


5年前关闭。




URI,URL和URN有什么区别?我读过很多站点(甚至是Wikipedia),但我听不懂。

URI:http://www.foo.com/bar.html
网址:http://www.foo.com/bar.html
URN:bar.html

这样对吗?

最佳答案

统一资源标识符(URI)是一个字符串,用于标识Internet上的名称或资源

URI通过位置或名称或两者来标识资源。 URI有两个专门的名称,分别是URL和URN。

统一资源定位符(URL)是统一资源标识符(URI)的子集,用于指定已标识资源的可用位置以及检索资源的机制。 URL定义了如何获取资源。它不必是HTTP URL(http://),URL也可以是(ftp://)或(smb://)。

统一资源名称(URN)是使用URN方案的统一资源标识符(URI),并且并不意味着已标识资源的可用性。 URN(名称)和URL(定位符)都是URI,并且特定的URI可以同时是名称和定位符。

URN是较大的Internet信息体系结构的一部分,该体系结构由URN,URC和URL组成。

bar.html不是URN 。 URN类似于人的名字,而URL就像街道地址。 URN定义事物的身份,而URL提供位置。本质上,“什么”与“哪里”。 URN的格式必须为<URN> ::= "urn:" <NID> ":" <NSS>,其中<NID>是命名空间标识符,而<NSS>是命名空间特定字符串。

换句话说:



我要说的是,让它100%清晰的唯一一件事就是拥有一个不是URL的URI示例。我们可以使用RFC3986中的示例:

URL: ftp://ftp.is.co.za/rfc/rfc1808.txt
URL: http://www.ietf.org/rfc/rfc2396.txt
URL: ldap://[2001:db8::7]/c=GB?objectClass?one
URL: mailto:[email protected]
URL: news:comp.infosystems.www.servers.unix
URL: telnet://192.0.2.16:80/
URN (not URL): urn:oasis:names:specification:docbook:dtd:xml:4.1.2
URN (not URL): tel:+1-816-555-1212 (?)

还要检查一下-https://quintupledev.wordpress.com/2016/02/29/difference-between-uri-url-and-urn/

关于http - URI,URL和URN有什么区别? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4913343/

10-09 03:37