URI、 URL 和 URN 的区别

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。

示例:

//www.greatytc.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格式

URL格式
1. 协议

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

2. 登录信息

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

3. 服务器地址

可以是域名www.greatytc.com,也可以是ip:192.168.1.10

4. 服务器端口

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

5. 文件路径

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

6. 参数:

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

7. 片段:

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

想了解更多精彩内容请关注我的公众号

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (原话)谈谈对HTTP协议的理解:超文本传输协议,应用于OSI网络模型中的应用层,是用于服务器传输超文本到本地浏览...
    24_yu阅读 921评论 0 1
  • 曾经我天真的以为URI和URL是一样的,只是不同叫法而已,然后某一天有人告诉我这两个不一样,so我发现是时候好好研...
    你叫呆小瓜阅读 49,314评论 8 28
  • HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于...
    加油码农阅读 734评论 0 1
  • 下文是对维基百科中URI介绍的粗略翻译。原文 Uniform Resource Identifier统一资源标识符...
    胡不归vac阅读 871评论 0 0
  • 系统环境: centos73.10.0-514.26.2.el7.x86_64 机器数量:五台 硬盘:四块一块为系...
    think_lonely阅读 4,808评论 0 5