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。

EX:

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

EX:

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

URI:

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

URI的组成: 主要由资源的标志符,主机名以及相对URI。

1.主机名:

主机名是由路径表示,一般是指存放资源的名称,例如:http://php.cn/a/b

就表示在php主机上,通过URI的字符串去访问主机上的a中的文件夹,并且b要求访问主机上的/a/b文件。

2.标识符:

在一般情况下,有的URI是指向内部,一定要以"#"进行结束,并且紧跟着anchor。

3.相对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举例:

javascript 复制代码
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

URL的分类:

URL一般是分大小写的,但是服务器收到不同大小写请求的时候,服务器的回复是相同的。

1.相对URL

文件所在路径和其他文件的路径关系,用于表示文件的位置,如果在同一个目录下,这个文件的url就是当前文件的名字,相对路径的url比较简短。

2.绝对URL

绝对的URL会显示文件的完整路径,前面一般会包含一个域名。

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

相关推荐
qq_4419960529 分钟前
Mybatis官方生成器使用示例
java·mybatis
巨大八爪鱼35 分钟前
XP系统下用mod_jk 1.2.40整合apache2.2.16和tomcat 6.0.29,让apache可以同时访问php和jsp页面
java·tomcat·apache·mod_jk
静止了所有花开1 小时前
SpringMVC学习笔记(二)
笔记·学习
码上一元2 小时前
SpringBoot自动装配原理解析
java·spring boot·后端
计算机-秋大田3 小时前
基于微信小程序的养老院管理系统的设计与实现,LW+源码+讲解
java·spring boot·微信小程序·小程序·vue
魔道不误砍柴功4 小时前
简单叙述 Spring Boot 启动过程
java·数据库·spring boot
失落的香蕉5 小时前
C语言串讲-2之指针和结构体
java·c语言·开发语言
枫叶_v5 小时前
【SpringBoot】22 Txt、Csv文件的读取和写入
java·spring boot·后端
wclass-zhengge5 小时前
SpringCloud篇(配置中心 - Nacos)
java·spring·spring cloud
路在脚下@5 小时前
Springboot 的Servlet Web 应用、响应式 Web 应用(Reactive)以及非 Web 应用(None)的特点和适用场景
java·spring boot·servlet