URI、URL、URN的区别及联系
URL和URN都是URI的子集,都是URI的一种特俗表现形式,URL和URN都是URI,但是URI不一定是URL或者URN
图片出处:https://danielmiessler.com/study/difference-between-uri-url/
URI——统一资源标识符:标识网络中一个资源,只是起到了标识的作用,代表网络中的某个资源,如一个文件,也可能是一个邮件地址、新闻消息、图书、人名、Internet主机或者任何其它内容,通过URI找到资源是通过对名称进行标识,这个名称在某命名空间中,并不代表网络地址
如:
https://blog.csdn.net/weixin_41755556
URL——统一资源定位符:URI的一种特殊表现形式,在URI的基础上,还具有定位功能,描述了怎么获取该资源即访问方式(协议(protocol):如ftp、http),及该资源在网络中的具体位置(主机地址IP或域名(host) + 端口号(port) + 资源路径如:images/hello.png),也可以加上查询参数字符串:type=png
如:
https://blog.csdn.net/weixin_41755556/images/hello.png
URN——统一资源名称:URI的一种特殊表现形式,它命名资源但不指定如何定位资源,比如:只告诉你一个人的姓名,不告诉你这个人在哪
如:
urn:issn:1535-3613 (国际标准期刊编号)
urn:isbn:9787115318893 (国际标准图书编号)
mailto:jijs@jianshu.com (简单邮件传输协议)
tel:+1-81-555-1212
通俗的讲,URI就好比一整张名片,名片上记录着这个人的姓名(URN),记录着这个人的地址
——那么通过这张名片(URI),自然能找到这个人
——通过记录的地址信息,去找姓名为xxx的人的这个方式就是(URL)
——只通过姓名(RUN)不能找到这个人
在Java类库中,URI类不包含任何访问资源的方法,只能标识资源。URL类可以访问资源,可以获取指定资源的流信息