【URI和URL】的区别比较与理解

URI包括URL和URN两个类别,URL是URI的子集,所以URL一定是URI,而URI不一定是URL

URI = Universal Resource Identifier 统一资源标志符,用来标识抽象或物理资源的一个紧凑字符串。通过使用位置,名称或两者来标识Internet上的资源;它允许统一识别资源。有两种类型的URI,统一资源标识符(URL)和统一资源名称(URN)。同样定义了资源的标识。但不同点在于URI通常不会包含获取资源的方式。

URL = Universal Resource Locator 统一资源定位符,一种定位资源的主要访问机制的字符串,用于指示资源的位置以及用于访问它的协议。通俗来说,就是对于某种web资源的引用,并且包含了如何获取该资源的方式。 最常见到的场景就是指一个网站的地址,也就是你在浏览器地址栏见到的那个东西。 URL,用地址定位

URN = Universal Resource Name 统一资源名称,通过特定命名空间中的唯一名称或ID来标识资源。URN 用名称定位。

urI包括url和urn,后来urn没流行起来,导致几乎目前所有的uri都是url。
【URI和URL】的区别比较与理解_第1张图片

EX:

个人的身份证号就是URN,个人的家庭地址就是URL,URN可以唯一标识一个人,而URL可以告诉邮递员怎么把货送到你手里。

EX:

https://blog.csdn.net/是个URL,通过这个网址可以找到CSDN,并且还告诉用HTTP协议访问。

详细说明URI:

URI, 指能够唯一的标记一个网络资源的符号。不管用什么方法表示,只要能唯一标记某个资源,它就叫URI。

URI的组成:

URI通常由三部分组成:
①资源的命名机制;
②存放资源的主机名;
③资源自身的名称。

(注意:这只是一般URI资源的命名方式,只要是可以唯一标识资源的都被称为URI,上面三条合在一起是URI的充分不必要条件)

URI举例:

如:https://blog.csdn.net/qq_32595453/article/details/79516787
我们可以这样解释它:
①这是一个可以通过https协议访问的资源,
②位于主机 blog.csdn.net上,
③通过“/qq_32595453/article/details/79516787”可以对该资源进行唯一标识(注意,这个不一定是完整的路径)

注意:以上三点只不过是对实例的解释,以上三点并不是URI的必要条件,URI只是一种概念,怎样实现无所谓,只要它唯一标识一个资源就可以了。

详细说明URL:

URL, 是通过网络路径地址标记资源的符号。可以理解为:URL就是资源的地址。这个资源可以是一个 HTML 页面,一个 CSS 文档,一幅图像等等。
URL只是URI的实现方法之一。当然也可以使用其他方法实现URI,只是URL现在比较流行而已。可见,URL是URI的子集。

URL的一般格式为(带方括号[]的为可选项):

protocol : // hostname[:port] / path / [;parameters][?query]#fragment

URL的格式由三部分组成:( 协议+//+域名+端口+路径+文件+?+参数+#+锚定 )

①第一部分是协议(或称为服务方式)。
②第二部分是存有该资源的主机IP地址(有时也包括端口号)。
③第三部分是主机资源的具体地址,如目录和文件名等。

第一部分和第二部分用“: //”符号隔开,
第二部分和第三部分用“/”符号隔开。
第一部分和第二部分是不可缺少的,第三部分有时可以省略。

URL举例:

http://www.aspxfans.com:8080/news/day01/index.asp?boardID=5&pwd=24618&page=1#name

协议部分 http:
域名部分 www.aspxfans.com
端口部分 :8080
目录部分 /news/day01/
文件部分 index.asp
参数部分 boardID=5&pwd=24618&page=1
锚定部分 name

URI和URL的区别:

URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。

协议区别:

URL指定要使用的协议类型,而URI不涉及协议规范。

通俗来讲:

拿人做例子:身份证号才是URI,通过身份证号能让我们能且仅能确定一个人。
那统一资源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做类比,就可以有:动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人
可以看到,这个字符串同样标识出了唯一的一个人,起到了URI的作用,所以URL是URI的子集。URL是以描述人的位置来唯一确定一个人的。

参考链接:https://blog.csdn.net/zhangzhanbin/article/details/115337251

你可能感兴趣的:(java基础,笔记,其他,经验分享)