URI、URL和URN的定义和关系

  • Post author:
  • Post category:其他


1. URI

URI = Universal Resource Identifier 统一资源标志符

URI采用一种特定语法标识一个资源的字符串。所标识的资源可能是服务器上的一个文件。不过,也可能是一个邮件地址、新闻消息、图书、人名、Internet主机或者任何其它内容。

通过URI找到资源是通过对名称进行标识,这个名称在某命名空间中,并不代表网络地址。

它包含URL和URN。

支持的协议有http、https、ftp、mailto、magnet、telnet、data、file、nfs、gopher、ldap等

java还大量使用了一些非标准的定制模式,如rmi,jar、jndi和doc,来实现各种不同用途。

2. URL

URL = Universal Resource Locator 统一资源定位符

URL唯一地标识一个资源在Internet上的位置。不管用什么方法表示,只要能定位一个资源,就叫URL。

示例:


http://www.jianshu.com/u/1f0067e24ff8



ftp://www.example.com/resource.txt

3. URN

URN = Universal Resource Name 统一资源名称

URN它命名资源但不指定如何定位资源,比如:只告诉你一个人的姓名,不告诉你这个人在哪。例如:telnet、mailto、news 和 isbn URI 等都是URN。

比如 urn:issn:1535-3613 则不属于URL(统一资源定位符),因为根据该标识符无法定位任何到资源。

示例:

urn:issn:1535-3613 (国际标准期刊编号)

urn:isbn:9787115318893 (国际标准图书编号)


mailto:jijs@jianshu.com

(简单邮件传输协议)

tel:+1-81-555-1212

URI、URL和URN区别

  1. URI 指的是一个资源
  2. URL 用地址定位一个资源;
  3. URN 用名称定位一个资源。

    举个例子:

    去寻找一个具体的人(URI);如果用地址:XX省XX市XX区…XX单元XX室的主人 就是URL;如果用身份证号+名字去找就是URN(身份证号+名字 无法确认资源的地址) 。

在Java类库中,URI类不包含任何访问资源的方法,只能标识资源。URL类可以访问资源,可以获取指定资源的流信息。

URL格式

在这里插入图片描述

1. 协议

指定使用的传输协议,如:http、https、ftp等

2. 登录信息

可选,指用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证)。

3. 服务器地址

可以是域名

www.jianshu.com

,也可以是ip:192.168.1.10

4. 服务器端口

可选,指定服务器连接的网络端口。,若省略则使用该协议的默认端口。

5. 文件路径

指定服务器上的路径来定位指定的资源。

6. 参数:

可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。

7. 片段:

可选,片段用于指定网络资源中的片断。html页面中片段则是描点。例如一个网页中有多个名词解释,可使用片段可直接定位到某一名词解释(描点的位置)。