📜  JavaURI和URN的区别(1)

📅  最后修改于: 2023-12-03 15:01:49.497000             🧑  作者: Mango

JavaURI和URN的区别

在Java中,URI(Uniform Resource Identifier)和URN(Uniform Resource Name)是用来标识资源的标准的两种方式。虽然它们都用于标识资源,但是它们有着不同的含义和用途。

URI

URI是一个用于标识资源的字符串,它包含一个协议标识符,表示访问资源需要使用的协议,像是http、ftp等。URI同样还包含一个主机名或IP地址,用于定位资源存储的位置,以及资源的路径。URI跨越多个应用程序和协议,因此它可以指向本地资源或网络上的资源,像是文件、web页面、邮件等。

在Java中,可以使用java.net.URI类来表示URI,它提供了对URI进行操作的方法,如获取某一部分的值、解析URI等。

URI uri = new URI("http://www.example.com/index.html");
URN

URN是一个描述资源的字符串,而不是用于定位资源。与URI不同的是,URN只提供资源的名称和标识符,而不提供资源在网络上的具体位置和访问方式。因此,URN可以用于在不同的位置对资源进行不同类型的定位(例如不同的Web服务器)。

在Java中,可以使用java.net.URI类来表示URN,但由于URN不包含位置信息,因此URI类中的许多方法都不能用于URN。如果需要使用URN,建议使用扩展的URI类,如urn.java.net.URI。

URN urn = new URN("urn:example:resource");
总结

在Java中,URI和URN都是用于标识资源的标准方式,但它们有着不同的用途和定位方式。URI是用于标识并定位资源的标准,而URN是用于标识资源名称的标准,不涉及资源位置。无论是URI还是URN,都可以使用java.net.URI类来进行操作,但对于URN的操作需要使用扩展的URI类。